【问题标题】:C# - Determine if user is moving a windowC# - 确定用户是否正在移动窗口
【发布时间】:2010-12-19 02:55:17
【问题描述】:

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

【问题讨论】:

    标签: c# windows winapi hook


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      编辑

      .NET spy code

      【讨论】:

      • 这是我用过一次的好工具。该项目是 DOA,但我是谁却放弃了学习监视应用程序的机会。 :-)
      猜你喜欢
      • 1970-01-01
      • 2011-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-04
      • 1970-01-01
      • 2011-03-01
      • 2011-03-16
      相关资源
      最近更新 更多