它是一个 c# winform 应用程序。我已将 ShowInTaskbar 属性设置为 false,因为我不希望程序出现在任务栏中,但像这样的 SetForegroundWindow 或 ShowWindowAsync 不起作用。
最佳答案
Raymond Chen 在他的经典文章 Foreground activation permission is like love: You can't steal it, it has to be given to you 中解释了 Windows 中围绕前台激活的规则。 .粗略地说,您不能使用像 SetForegroundWindow
这样的调用来窃取前台激活,您需要从已经具有前台激活的进程中获得它。
在您的情况下,当您设置了在任务栏中显示时,任务栏能够为您的应用程序提供前台激活,因为当您单击窗口的任务栏图标时,这将(短暂地)为任务栏提供激活.如果您没有在任务栏中显示激活,则需要找到一种方法让应用程序提供给您。一种明确允许的方法是使用通知窗口(托盘)图标。
关于c# - 如果 SetForegroundWindow 和 ShowWindowAsync 不起作用,我该如何设置前景窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/741514/