0

哦,我一直在尝试制作一个程序来查看在这种情况下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,也没有给我任何错误

4

0 回答 0