我正在寻找User32.dll
和FindWindow()
切换到其他应用程序的旧SetForegroundWindow()
版本的替代方案。
我确实找到了第一种替代方法,即使用了Process.GetProcessesByName()
,但没有看到用于切换(设置 Activity /前景)到该应用程序的相应方法。
有没有一种方法可以不使用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即可。