C# - 确定用户是否正在移动窗口

Luk*_*uke 5 c# windows hook winapi

我将检查用户是否正在移动任何窗口(我的应用程序没有接口)并做出相应的响应.您认为最好的方法是什么?我可以确定用户是否点击了标题栏吗?我可以确定窗口是否正在移动?然后,当我知道它被移动后,我需要抓住窗口的hWnd.

Han*_*ant 6

要获取所有窗口的通知,而不仅仅是Windows窗体,您需要使用SetWindowsHookEx()API函数设置的钩子.您需要一个WH_CALLWNDPROC钩子,以便您可以看到Windows发送到窗口的WM_MOVE消息.

不幸的是,这是一个全球性的钩子.实现钩子回调的代码需要打包到DLL中,以便可以将其注入到所有目标进程中.这为你使用C#计划了一个漏洞,你不能注入CLR.DLL必须以非托管代码编写.

代码项目提供了一种方法,包括您需要的非托管可注入DLL.


And*_*ith 4

这是一种监视窗口句柄的技术。您可以检查所有打开的句柄并等待移动消息。

编辑

.NET 间谍代码