【发布时间】:2014-05-10 04:44:54
【问题描述】:
我有一个自助服务终端式应用程序,用户/操作员可以在其中使用特殊键选择应用程序。
我有一个管理应用程序,它监控密钥(通过另一个 API)并尝试根据需要最小化和最大化其他应用程序窗口。
对于任何给定的应用程序,伪代码如下所示:
foreach(var process in NotCurrentProcess())
{
ShowWindowAsync(process.MainWindowHandle, SW_FORCEMINIMIZE);
}
ShowWindowAsync(myProcess.MainWindowHandle, SW_SHOWMAXIMIZED);
这很适合测试。
对于部署,我的应用程序成为HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 的外壳
现在,当我最小化一个应用程序时,它没有任务栏可以转到,它浮动在顶部窗口上方。
谁能帮助解决这个问题的根本原因/修复?
【问题讨论】:
-
你的shell需要响应HSHELL_GETMINRECT。
-
@RaymondChen 你能告诉我这个的意义吗?
-
该通知控制最小化窗口的显示位置。
-
@RaymondChen 谢谢你 - 这种方法也可以奏效,但代价是必须通过 P/Invoke 处理另一条 WinApi 消息。
标签: windows winapi windows-7 registry