我正在寻找替代老User32.dll版本的与切换到不同的应用程序FindWindow()和SetForegroundWindow().
我确实找到了第一个使用的替代方法,Process.GetProcessesByName()但我没有看到相应的方法切换(设置活动/前台)到该应用程序.
有没有办法这样做而不使用旧方式User32.dll?
谢谢您的帮助.
编辑
我接受了@Sorceri的答案,虽然这不是我想要的答案.
noe*_*cus 33
答:没有.
但是,为了帮助下一个想要找到一个窗口并从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);
}
Run Code Online (Sandbox Code Playgroud)
例如,要将记事本放在前面,您可以致电:
ActivateApp("notepad");
Run Code Online (Sandbox Code Playgroud)
作为旁注 - 对于那些试图将应用程序中的窗口带到前台的人来说,只需调用Activate()方法即可.
| 归档时间: |
|
| 查看次数: |
55517 次 |
| 最近记录: |