我正在尝试创建一个基本的宏录制/回放系统.如果我想选择一个打开的应用程序(如记事本)将其带到前面进行输入,我将如何通过名称或其他一些可靠的属性来调用它?
这是一个例子.基本上,获取Process,然后在它的MainWindowHandle上调用SetForegroundWindow:
using System;
using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
namespace StackOverflow.Test
{
class Program
{
static void Main(string[] args)
{
var proc = Process.GetProcessesByName("notepad").FirstOrDefault();
if (proc != null && proc.MainWindowHandle != IntPtr.Zero)
SetForegroundWindow(proc.MainWindowHandle);
}
[DllImport("user32")]
private static extern bool SetForegroundWindow(IntPtr hwnd);
}
}
Run Code Online (Sandbox Code Playgroud)
你应该知道这些限制:
系统限制哪些进程可以设置前景窗口.仅当满足下列条件之一时,进程才能设置前台窗口: