我假设我需要使用 pinvoke,但我不确定需要调用哪些函数。
场景:遗留应用程序将运行,我将拥有该应用程序的句柄。
我需要:
- 将该应用程序置于顶部(在所有其他窗口之前)
- 使其成为事件窗口
需要调用哪些 Windows 函数?
最佳答案
如果您没有窗口句柄,请在之前使用它:
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
现在假设您有应用程序窗口的句柄:
[DllImport("user32.dll", SetLastError = true)]
static extern bool SetForegroundWindow(IntPtr hWnd);
如果另一个窗口有键盘焦点,这将使任务栏闪烁。
如果你想强制窗口到前面,使用ForceForegroundWindow (示例实现)。
关于c# - 如何将非托管应用程序窗口置于最前面,并使其成为(模拟)用户输入的事件窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6228089/