delphi – 如何将我的应用程序带到前面?

前端之家收集整理的这篇文章主要介绍了delphi – 如何将我的应用程序带到前面?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道这是一个坏主意的所有原因。如果一个应用程序窃取输入焦点,我不喜欢,但这是纯粹的个人使用,我想要它发生;它不会打扰任何东西。 @H_403_2@(为了好奇:我在NetBeans中运行单元测试,它会生成一个日志文件。当我的后台应用程序看到日志文件的时间戳更改时,我希望它解析日志文件显示结果)。

@H_403_2@This question没有帮助,也没有谷歌搜索。看来BringToFront()没有工作很长时间,我找不到任何替代方法

@H_403_2@有任何想法吗?

解决方法

你不能可靠地做到这一点。 Windows XP有一个允许它的解决方法,但是从那时起,版本大部分都禁止它(见下面的注释)。在 SetForegroundWindow的MSDN文档的备注部分明确说明:
@H_403_2@The system restricts which processes can set the foreground window. A process can set the foreground window only if one of the following conditions is true:

  • The process is the foreground process.
  • The process was started by the foreground process.
  • The process received the last input event.
  • There is no foreground process.
  • The foreground process is being debugged.
  • The foreground is not locked (see LockSetForegroundWindow).
  • The foreground lock time-out has expired (see SPI_GETFOREGROUNDLOCKTIMEOUT in SystemParametersInfo).
  • No menus are active.
@H_403_2@An application cannot force a window to the foreground while the user is working with another window. Instead,Windows flashes the taskbar button of the window to notify the user.

@H_403_2@请注意引用文件的最后一段,特别是第一句。

@H_403_2@的问题

@H_403_2@this is for purely personal use and I want it to happen; it will not disturb anything.

@H_403_2@任何应用程序都可以尝试做同样的事情。 “纯粹的个人使用”如何告诉您是个人而不是任何应用程序?

猜你在找的Delphi相关文章