5

在使用自定义/自制 explorer.exe 文件时,我需要帮助处理最小化的程序。因为除非处理得当,否则最小化的程序只会缩小到 100x50 像素并留在屏幕上。我在 C# 中设计了一个计时器来检查“标志性”进程,列出它们的 mainWindowHandler,并使用“MoveWindow”将它们移出屏幕。为了把它们带回来,我使用了处理程序和“ShowWindow”函数,它的工作原理很棒……但正如我所说,它涉及一个不断运行的计时器,所以必须有一种更清洁/更简单的方法来实现这一点。

有任何想法吗?当窗口最小化时,某种方式来挂钩和引发事件?

*请注意:show 和 movewindow 是来自 user32.dll 的函数。我不是想抓住我的表格何时最小化,而是其他程序何时最小化。

4

1 回答 1

1

您可以创建一个挂钩来检查窗口何时被最小化。

我发现了一篇 CodeProject 文章 ,它使用钩子来检查用户何时在任何窗口上打开系统菜单 ( ALT+ SPACE),然后向其附加一个额外的项目。您可以使用该代码检查用户何时点击最小化按钮,并在那里运行您需要的任何代码。

CodeProject 文章是用 C++ 编写的,但您可以为 C# 调整相同的方法(或使用 P/Invoke)。

于 2012-03-28T08:19:16.693 回答