首页 > 解决方案 > 如何为另一个应用程序捕获 WM_MINIMIZE?

问题描述

我目前正在寻找 C# 中的解决方案,如何为我没有任何源代码的另一个应用程序(例如记事本)捕获像 WM_MINIMIZE 这样的窗口消息。我的目标是防止用户或系统最小化某个应用程序。所以我的基本想法是运行一个过滤所有窗口消息的进程,并且什么都不做,除非将消息发布到我定义的应用程序(例如通过知道应用程序主窗口的窗口句柄),然后查看如果此消息是特定大小的操作,例如 WM_MINIMIZE。只有在这种情况下,才应从 Windows 消息队列中删除该消息。

实现这一目标的第一种方法是什么?目前,我在寻找在线资源方面有点困难,因为大多数关于调整大小的主题都涉及自己应用程序的消息,而不是控制发布到同一台计算机上运行的其他外部应用程序的消息。

标签: c#resizesendmessagepostmessagewindow-messages

解决方案


您可以通过创建一个执行全局挂钩(在 C++ 中)的 dll 来捕获 Windows 的所有消息(降低操作系统速度的风险)

要么你有东西可以挂钩程序,在这种情况下:

EasyHook是您的朋友


推荐阅读