FindWindow和SetForegroundWindow的替代品?

fdo*_*mig 17 .net c# process

我正在寻找替代老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()方法即可.