谁能帮我处理由 func Process.Start(); 调用的进程?
Posted
技术标签:
【中文标题】谁能帮我处理由 func Process.Start(); 调用的进程?【英文标题】:Can anyone help me to get handle of process which is called by func Process.Start();? 【发布时间】:2022-01-09 15:55:11 【问题描述】:例如,我想从浏览器获取句柄。
private void button1_Click(object sender, EventArgs e)
Process.Start("https://google.com/");
//How to get handle of this process?
【问题讨论】:
Process.Start
返回一个Process
对象,而该对象又具有一个Handle
属性
Process.Start
为其启动的进程返回一个Process
对象,该对象具有Handle
属性。也就是说,浏览器倾向于在单个进程中显示多个页面(作为不同的选项卡),因此,如果您正在运行一个浏览器进程并尝试启动一个新进程,那么新进程可能会告诉现有进程打开该页面作为一个新选项卡然后退出,这意味着您从Process.Start
返回的Process
可能不会存在很长时间。您对此无能为力。
是的。我知道...因此,如果我将网站浏览器另存为 file.html。我能拿到它的手柄吗?如果我只保留一个浏览器窗口,这是真的吗?
【参考方案1】:
Process.Start()
返回新创建进程的Process
对象。
在下面的示例中,myProcess.Handle
将成为所述进程的句柄。
var myProcess = Process.Start("notepad.exe");
Console.WriteLine(myProcess.Handle);
【讨论】:
就像salt on chips,如果只有一行,description 的答案总是更好。 感谢您添加盐。 :) 我希望你不介意,但我把你的描述放在首位。 +1 好的,我明白了,谢谢大家。以上是关于谁能帮我处理由 func Process.Start(); 调用的进程?的主要内容,如果未能解决你的问题,请参考以下文章
尝试挂钩“TerminateProcess”函数时出错。目标进程崩溃。谁能帮我?
“502错误网关,服务器作为网关或代理,从上游服务器收到了无效的响应”怎么处理?谁能帮我?