2014-02-12 27 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_存儲句柄的值,但是你可以,當然,使用非靜態字段爲好。

相關問題