哦,我一直在尝试创建一个程序,看看这个案例中的程序是否正在运行chrome然后切换到它,我一直在尝试遵循类似的线程(thread one,{{3} })不幸的是我有句柄问题,因为它似乎喜欢切换到Windows资源管理器(文件管理器)
[DllImport("User32.dll")]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("User32.dll")]
static extern int SetForegroundWindow(IntPtr hWnd);
IntPtr ptrFF = FindWindow(null, "chrome");
SetForegroundWindow(ptrFF);
Process proc = Process.GetProcessesByName("firefox")[0];
IntPtr ptrFF = proc.Handle;
SetForegroundWindow(ptrFF);
这些是我一直在玩的两段代码,但是我只有第二个才能真正做某事,使用基本的控制台应用程序我测试了天气当我使用“chrome”时,它正在寻找合适的行为名字和这似乎是这种情况 测试代码:
var proc = Process.GetProcessesByName("chrome")[0];
Console.WriteLine(proc.ToString());
Writeline的输出是“System.Diagnostics.Prosess(chrome)” 如果我打印Process.GetProcessesByName(“chrome”)[0] .Handle; 它出来是572
但使用:
var proc = Process.GetProcessesByName("chrome")[0].Handle;
Console.WriteLine(proc.ToString());
SetForegroundWindow(proc);
不会将当前窗口设置为chrome,也不会给我任何错误