我正在寻找User32.dllFindWindow()切换到其他应用程序的旧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即可。

08-18 16:09