vb6 - 在 VB6 中等待进程退出后恢复窗口

标签 vb6 window process

我在 win7 64 位操作系统中使用 VB6。此应用程序从 xp 迁移..

Me.WindowState = vbMinimized
WaitForProcess Shell(launchapp, vbNormalFocus)
Me.WindowState = vbNormal

在启动 launchapp 之前,我的代码最小化了主应用程序并将启动一个 exe。用户关闭 exe 后,我的主应用程序必须从最小化状态恢复到正常状态。这在 xp 中工作正常,但在 win 7 中,我最小化的主应用程序只是闪烁并再次返回到最小化状态。

有什么想法吗?

谢谢。

最佳答案

Windows 7 将不允许应用使用 SetForegroundWindow 获取焦点,如 documentation 中所述。 .看备注。

一种解决方法是暂时将 AttachThreadInput 到具有焦点的线程,给自己焦点,然后再次分离。 Karl E Peterson 提供了一个 drop-in module这样做here伴随 magazine article .

免责声明:Windows 大师 Raymond Chen 指出此解决方法 can cause your program to stop responding在某些情况下。但是我自己从未遇到过这些错误。 YMMV。

关于vb6 - 在 VB6 中等待进程退出后恢复窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12576821/

相关文章:

VB/VBA 中的 XML 反序列化

sql-server - 间歇性 SQL Server ODBC 超时已过期

visual-studio - 如何防止VS中的Output窗口消失?

python - 保存绘图时更改 Matplotlib 图窗口的分辨率?

c# - 从控制台读取 C# 中的 jar 流

java - 执行显示控制台窗口的命令并获取进程的句柄

unix - 有没有办法从 Node.js 程序调用 exec(2) 函数?

.net - VB6 App + .Net 组件作为编译应用程序工作,但不在 VB6 IDE 中工作

vb.net - VB6关键字Set是什么意思?

extjs:使用FormPanel提交功能时打开一个新窗口