Articles of c + +

在QueueUserAPC中指定的callback不会被调用

在我的代码中,我使用QueueUserAPC来中断他当前工作中的主线程,以便在返回他之前的工作之前先调用一些callback。 std::string buffer; std::tr1::shared_ptr<void> hMainThread; VOID CALLBACK myCallback (ULONG_PTR dwParam) { FILE * f = fopen("somefile", "a"); fprintf(f, "CALLBACK WAS INVOKED!\n"); fclose(f); } void AdditionalThread () { // download some file using synchronous wininet and store the // HTTP response in buffer QueueUserAPC(myCallback, hMainThread.get(), (ULONG_PTR)0); } void storeHandle () { HANDLE hUnsafe; DuplicateHandle(GetCurrentProcess(), GetCurrentThread(), GetCurrentProcess(), […]

Windows需要什么来更新“文件修改”时间戳?

显然它在写操作期间得到更新,但是是否有任何非破坏性操作也会强制更新? 基本上看能够做相当于* nix touch命令,但在C#中以编程方式。

是否有shell扩展点击处理程序

在经历了MSDN Shell扩展之后,我不太确定是否可以扩展Shell Click或Click Event Explorer的行为。 任何build议或代码Snipet,文章或走过?

获取C#中的子窗口句柄

我正在C#中启动一个进程,然后通过SendMessage向Windows进程发送Windows消息。 通常我发送消息到Process.MainWindowHandle,但在某些情况下,我可能需要find一个子窗口句柄,并在那里发送消息。 我将如何做到这一点在C#和寻找儿童窗口的选项是什么(即需要知道窗口的名称或有其他的select)?

如何才能检测卷上已删除,已更改和已创build的文件?

我需要知道是否有一个简单的方法来检测只有在NTFS卷上删除,修改或创build的文件。 我用C ++编写了一个非现场备份程序。 在第一次备份之后,我检查每个文件的存档位以查看是否有任何更改,并仅备份已更改的文件。 此外,它从VSS快照备份以防止文件locking。 这似乎在大多数文件系统上都可以正常工作,但对于有很多文件和目录的文件系统来说,这个过程需要很长时间,而且备份通常需要一天以上才能完成备份。 我尝试使用更改日志来轻松检测NTFS卷上所做的更改,但更改日志会显示大量logging,其中大部分与创build和销毁的小临时文件有关。 另外,我可以获得文件名,文件引用号和父文件引用号,但无法获得完整的文件path。 父文件引用号是不知何故给你的父目录path。 编辑:这需要每天运行,所以在每次扫描开始时,它应该只logging自上次扫描以来发生的变化。 或者至less,从某个时间和某个date开始,应该有一种说法。

__stdcall typedef g ++问题

此代码编译(如我所料): typedef void __stdcall (*Func)(); struct A { static void __stdcall f() { } }; int main() { Func p = A::f; } 但是这个: struct A { typedef void __stdcall (*Func)(); static void __stdcall f() { } }; int main() { A::Func p = A::f; } 失败并不是非常有用的错误消息: error: invalid conversion from `void (*)()' to `void […]

活动窗口上是否有Windows系统事件更改?

我正在开发的桌面应用程序需要知道在应用程序运行时哪些窗口处于活动状态。 目前它每250毫秒执行GetForegroundWindow()调用( user32.dll )。 这个方法不是很准确。 是否有任何Windows(WINAPI?)事件每次激活(聚焦)窗口更改时触发? 我想订阅我的callback函数。 谢谢。

获取login和注销Windows用户的日志

我想写一个胜利的程序,我想保存login和注销任何用户(如时间,用户名,date,…)日志,每天使用我的电脑,但也许我的应用程序不运行?我可以从操作系统获得这个日志文件吗?如果是的话? 请帮助和指导我。谢谢。

使用Qt5(来自WId)在windows上获取HWND

我正试图将Qt4应用程序转换为Qt5。 唯一我无法弄清楚的是如何获得Widget的HWND 。 该程序使用EcWin7来显示任务栏图标上的胜利7 +的进展,但期望一个HWND 。 在将Q_WS_WIN更改为Q_OS_WIN之后,lib本身似乎编译正常)在Windows上的Qt4中,只是HWND的一个typedef,所以这没有问题。 在Qt5中,情况并非如此。 我发现了一些邮件列表发布 ,可能会提供一个线索,但似乎QPlatformNativeInterface不再是Qt5的公共API的一部分。 该程序调用EcWin7.init(this-> winId()); 我需要一些方法来将此ID转换为HWND ID或其他方式来获得这个。

Qwindows.dll从来没有find

当我在其他机器上运行我的应用程序时,如果我重命名Qt目录,我得到“此应用程序无法启动,因为它无法find或加载Qt平台插件”窗口“重新安装应用程序可能会解决此问题。 这是包含应用程序的文件夹的布局: app.exe icudt53.dll icuin53.dll icuuc53.dll Qt5Core.dll Qt5Gui.dll Qt5Widgets.dll msvcp110.dll platforms/qwindows.dll 有没有可能强制searchqwindows.dll目录而不是QT目录我的应用程序的目录?