我在win7 64位操作系统中使用VB6。此应用程序是从 xp 迁移的..
Me.WindowState = vbMinimized
WaitForProcess Shell(launchapp, vbNormalFocus)
Me.WindowState = vbNormal
在启动 launchapp 之前,我的代码会最小化主应用程序并启动一个 exe。一旦用户关闭 exe,我的主应用程序就必须从最小化状态恢复到正常状态。这在 xp 中工作正常,但在 win 7 中,我最小化的主应用程序只是闪烁并再次返回到最小化状态。
有任何想法吗?
Thanks.
Windows 7 不允许应用程序使用 SetForegroundWindow 来获取焦点,如文档 http://msdn.microsoft.com/en-us/library/windows/desktop/ms633539%28v=vs.85%29.aspx。见备注。
一种解决方法是暂时AttachThreadInput
到确实具有焦点的线程,给自己焦点,然后再次分离。卡尔·E·彼得森 (Karl E Peterson) 提供了插入式模块 http://vb.mvps.org/samples/ForceFore/去做这个here http://vb.mvps.org/samples/ForceFore/伴随着杂志文章 http://vb.mvps.org/articles/ap199902.pdf.
免责声明:Windows 大师 Raymond Chen 指出此解决方法可能会导致您的程序停止响应 https://stackoverflow.com/a/8081858/15639在某些情况下。然而我自己从未遇到过这些错误。 YMMV。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)