2014-02-12 25 views
0

在Chromium开源代码, 的方面,我正在开发从content::BrowserChildProcessHostDelegateIPC::Sender扩展一个类。里面的我类的方法之一,我推出一个子进程,像这样:如何获得后BrowserChildProcessHostImpl-浏览器子进程的进程ID>启动

scoped_ptr<BrowserChildProcessHostImpl> process_; 
... 
process_->Launch(
#if defined(OS_WIN) 
    new MySandboxedProcessLauncherDelegate, 
#elif defined(OS_POSIX) 
    false, // don't use zygote 
    env, 
#endif 
    cmd_line); 

问:如何才能获得正由该Launch函数创建子进程的PID?

编辑:简单地调用Launch后立即以下功能不起作用:

base::ProcessHandle child_handle = process_->GetHandle(); 

回答

0

我解决了这个通过调用process_->GetHandle();我的类中,在覆盖的方法:如下面的代码virtual void OnProcessLaunched() OVERRIDE;

void MyProcessHost::OnProcessLaunched() { 
     MyProcessHost::child_process_handle_ = this->process_->GetHandle(); 
} 

我用一个静态字段:static base::ProcessHandle child_process_handle_存储句柄的值,但是你可以,当然,使用非静态字段为好。