我将检查用户是否正在移动任何窗口(我的应用程序没有接口)并做出相应的响应。您认为最好的方法是什么?我可以确定用户是否点击了标题栏吗?我可以确定窗口是否正在移动?然后,当我知道它被移动后,我需要抓住窗口的hWnd。
答案 0 :(得分:6)
要获取所有窗口的通知,而不仅仅是Windows窗体,您需要使用SetWindowsHookEx()API函数设置的挂钩。您需要WH_CALLWNDPROC
挂钩,以便可以看到Windows发送到窗口的WM_MOVE消息。
不幸的是,这是一个全球性的钩子。实现钩子回调的代码需要打包到DLL中,以便可以将其注入到所有目标进程中。这为你使用C#计划了一个漏洞,你不能注入CLR。 DLL必须以非托管代码编写。
这个code project提供了一种方法,包括你需要的非托管可注射DLL。
答案 1 :(得分:4)