我将检查用户是否在移动任何窗口(我的应用程序没有界面),并根据需要做出响应。你认为最好的方法是什么?我能确定用户是否点击标题栏吗?我能确定窗口是否正在被移动吗?然后,我需要在知道它正在被移动后获取窗口的hWnd。
要想接收所有窗口(不仅限于Windows Forms窗口)的通知,您需要使用由SetWindowsHookEx() API函数设置的钩子。您需要一个WH_CALLWNDPROC钩子,这样您就可以看到Windows发送到窗口的WM_MOVE消息。不幸的是,那是一个全局钩子。实现钩子回调的代码需要打包成DLL,以便可以将其注入到所有目标进程中。这打破了您使用C#完成此操作的计划,因为您无法注入CLR。该DLL必须用非托管代码编写。该code project提供了一种方法,包括所需的可注入非托管DLL。