【发布时间】:2010-12-19 02:55:17
【问题描述】:
我将检查用户是否正在移动任何窗口(我的应用程序没有界面)并做出相应的响应。您认为最好的方法是什么?我可以确定用户是否点击了标题栏?我可以确定是否正在移动窗口吗?然后,在我知道它被移动后,我需要抓住窗口的 hWnd。
【问题讨论】:
我将检查用户是否正在移动任何窗口(我的应用程序没有界面)并做出相应的响应。您认为最好的方法是什么?我可以确定用户是否点击了标题栏?我可以确定是否正在移动窗口吗?然后,在我知道它被移动后,我需要抓住窗口的 hWnd。
【问题讨论】:
要获取所有窗口的通知,而不仅仅是 Windows 窗体的通知,您需要使用由 SetWindowsHookEx() API 函数设置的挂钩。您需要一个 WH_CALLWNDPROC 挂钩,以便您可以看到 Windows 发送到窗口的 WM_MOVE 消息。
不幸的是,这是一个全球性的钩子。实现钩子回调的代码需要打包成DLL,以便注入到所有目标进程中。这给您使用 C# 的计划带来了一个漏洞,您不能注入 CLR。 DLL 必须用非托管代码编写。
code project 提供了一种方法,包括您需要的非托管可注入 DLL。
【讨论】:
【讨论】: