哦,我一直在尝试制作一个程序来查看在这种情况下chrome是否正在运行然后切换到它,我一直在尝试遵循类似的线程(线程一,线程二)不幸的是我遇到了问题看起来像是切换到 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());
如果我打印 Process.GetProcessesByName("chrome")[0].Handle;,则 Writeline 的输出是“System.Diagnostics.Prosess (chrome)” 结果是 572
但使用:
var proc = Process.GetProcessesByName("chrome")[0].Handle;
Console.WriteLine(proc.ToString());
SetForegroundWindow(proc);
没有将当前窗口设置为 chrome,也没有给我任何错误