【问题标题】:Can anyone help me to get handle of process which is called by func Process.Start();?谁能帮我处理由 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。我能拿到它的手柄吗?如果我只保留一个浏览器窗口,这是真的吗?

标签: c# winforms process get handle


【解决方案1】:

Process.Start() 返回新创建进程的Process 对象。

在下面的示例中,myProcess.Handle 将成为所述进程的句柄。

var myProcess = Process.Start("notepad.exe");
Console.WriteLine(myProcess.Handle);

【讨论】:

  • 就像salt on chips,如果只有一行,description 的答案总是更好。
  • 感谢您添加盐。 :) 我希望你不介意,但我把你的描述放在首位。 +1
  • 好的,我明白了,谢谢大家。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-17
  • 2013-02-06
  • 2017-07-12
  • 2022-08-10
  • 1970-01-01
相关资源
最近更新 更多