如果SetForegroundWindow和ShowWindowAsync不起作用,如何设置前景窗口?

Man*_*anu 1 .net c# windows winapi

它是一个ac#winform应用程序.我已将ShowInTaskbar prop设置为false,因为我不希望程序出现在任务栏中,但是像这样的SetForegroundWindow或ShowWindowAsync不起作用.

180*_*ION 7

Raymond Chen在他的经典文章中解释了Windows中关于前景激活的规则的事情.前景激活许可就像爱:你不能偷它,它必须给你.粗略地说,您不能使用类似的调用来窃取前台激活SetForegroundWindow,您需要从已经具有前台激活的进程中获取它.

在您的情况下,当您在任务栏设置中显示时,任务栏可以为您的应用程序提供前台激活,因为当您单击窗口的任务栏图标时,这将(简要地)激活任务栏.如果您没有在任务栏中显示激活,则需要找到一种方法来让应用程序为您提供.明确允许的一种方法是使用通知窗口(托盘)图标.