Delphi - Win7窗口焦点问题

도현우*_*도현우 1 delphi focus windows-7

我通过CreateProcess()执行exe文件,并通过SetForegroundWindow()设置前台进程.但它在Win7中不起作用,所以我必须单击任务栏中的图标.

如何实现我想要的行为(即Launch和BringToForeground)?

Ken*_*ite 8

你甚至不应该尝试这样做.SetForegroundWindow中的更改是故意的 - 它可以防止应用程序从用户想要关注的内容中窃取焦点.请参阅上面链接的备注部分.

Win7可能不会让非管理用户更改所需的注册表设置,更不用说重新启动系统了.

您应该使用FlashWindow来引起用户的注意,正如Microsoft建议的那样.任何坚持将注意力从我选择的东西上移开的应用程序都会立即被卸载.

  • @Sam,它不限制它,实际上默认行为是使新创建的进程成为前台进程(并给它键盘焦点).这个问题让我想起了这个:http://blogs.msdn.com/b/oldnewthing/archive/2011/03/10/10138969.aspx (2认同)