【发布时间】:2013-06-26 14:16:37
【问题描述】:
我已经阅读了一些使用 C# 强制窗口显示在前台的方法,利用 Win32 的 user32.dll。
- How do I bring an unmanaged application window to front, and make it the active window for (simulated) user input
- https://shlomio.wordpress.com/2012/09/04/solved-setforegroundwindow-win32-api-not-always-works/
除了一种情况外,这些都可以正常工作。 在 Windows 8 上,如果“开始”菜单或 Windows 应用商店应用程序在前台,这些都将失败。
不过,我只需要在“开始”菜单位于前台时进行这项工作。 有没有隐藏的方法来做到这一点?
【问题讨论】:
-
我可能错了,但我相信您可以使用msdn.microsoft.com/en-us/library/windows/desktop/… 完成此操作。问题是搜索窗口已经位于最顶层,因此您需要获取该窗口的句柄并将其更改为 zOrder,然后使用相同的函数将您的窗口也设置为最顶层。
-
我自己没有尝试过,但我遇到了一些报告说它没有:stackoverflow.com/questions/15850230/…
-
我也无法尝试,因为我没有 Windows 8,但您需要了解的是,所有 Windows 8 窗口最终都是使用 GDI 构建的,它们具有正常的句柄,您可以像以前一样使用Win32功能,所以我相信值得你尝试。
标签: c# .net winapi dllimport user32