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

标签 c# windows winapi hook

我将检查用户是否正在移动任何窗口(我的应用程序没有界面)并做出相应的响应。你认为最好的方法是什么?我可以确定用户是否单击了标题栏吗?我可以确定窗口是否正在移动吗?然后我需要在知道它正在移动后捕获窗口的 hWnd。

最佳答案

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

不幸的是,这是一个全局钩子(Hook)。实现hook回调的代码需要打包成一个DLL,这样才能注入(inject)到所有目标进程中。这给你为此使用 C# 的计划打了个洞,你不能注入(inject) CLR。 DLL 必须用非托管代码编写。

code project提供了一种方法,包括您需要的非托管可注入(inject) DLL。

关于C# - 确定用户是否正在移动窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1777041/

相关文章:

c# - 使用用户名/密码验证与 activeMQ 的连接

c# - .Net 跳码

c# - 查询在 SQL Server 2005 中有效,但在 SQL Server 2000 中出现语法错误

c# - RavenDB - 与 Sql Server 数据库同步

windows - 如果组策略阻止 7zip,我该如何使用 Chocolatey?

c++ - 将文件系统路径转换为 ​​const BYTE* 的问题

asp.net - 对于Rich Text编辑器并转换为HTML,有什么好的免费解决方案?

c# - 用 C# 为 Windows API 编写 COM 服务器,从哪里开始?

c# - SQL Server 2012 中的 128 位 Int?

python - Django: ConnectionAbortedError: [WinError 10053] 已建立的连接被主机中的软件中止