我正在寻找使用 FindWindow()
和 SetForegroundWindow()
切换到不同应用程序的旧 User32.dll
版本的替代方案.
我确实找到了使用 Process.GetProcessesByName()
的第一个替代方法,但我没有看到切换(设置事件/前景)到该应用程序的相应方法。
有没有一种方法可以不使用 User32.dll
的旧方法来做到这一点?
感谢您的帮助。
编辑
虽然这不是我要找的答案,但我接受了@Sorceri 的回答。
最佳答案
回答:没有
但是,为了帮助下一个寻找窗口并从 C# 激活它的好奇者,您必须执行以下操作:
[DllImport("user32.dll")]
static extern bool SetForegroundWindow(IntPtr hWnd);
void ActivateApp(string processName)
{
Process[] p = Process.GetProcessesByName(processName);
// Activate the first application we find with this name
if (p.Count() > 0)
SetForegroundWindow(p[0].MainWindowHandle);
}
例如,要将记事本置于最前面,您可以调用:
ActivateApp("notepad");
作为旁注 - 对于那些试图将应用程序中的窗口 带到前台的人,只需调用 Activate() method .
关于c# - FindWindow 和 SetForegroundWindow 替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11512373/