它是一个c#winform应用程序。我已将ShowInTaskbar prop设置为false,因为我不希望程序出现在任务栏中,但是像这样的SetForegroundWindow或ShowWindowAsync不起作用。
答案 0 :(得分:7)
Raymond Chen在他的经典文章Foreground activation permission is like love: You can't steal it, it has to be given to you中解释了围绕前景激活的Windows规则。粗略地说,你不能使用像SetForegroundWindow
之类的调用来窃取前台激活,你需要从已经有前台激活的进程中获取它。
在您的情况下,当您在任务栏设置中显示时,任务栏能够为您的应用程序提供前台激活,因为当您单击窗口的任务栏图标时,这将(简要地)激活任务栏。如果您没有在任务栏中显示激活,则需要找到一种方法来让应用程序为您提供。明确允许的一种方法是使用通知窗口(托盘)图标。