处理最小化的程序。

5
我需要帮助处理使用自定义/自制的explorer.exe文件时最小化程序的问题。因为如果没有正确处理,最小化的程序只会缩小到大约100x50像素,并停留在屏幕上。我已经用C#编写了一个定时器来检查“图标式”进程,列出它们的mainWindowHandler,并使用“MoveWindow”将它们移到屏幕外。要将它们带回来,我使用handler和“ShowWindow”函数,非常有效。但是正如我所说,这涉及不断运行的计时器,因此必须有一种更清洁/更容易实现的方法。
有什么想法吗?有没有一种方式可以钩取并在窗口最小化时引发事件?
*请注意:show和movewindow是从user32.dll中获取的函数。我不是在试图捕获我的窗体最小化时的情况,而是捕获其他程序的情况。
1个回答

1

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接