我在 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/