我的例子類似於此:啓動瀏覽器進程,並通過進程ID將其關閉後
Process.Start("http://www.webpage.com?processId=");
如何獲得進程ID過程開始之前?或者我可以設置一些Guid作爲將會持續的另一個標識符嗎?
我的例子類似於此:啓動瀏覽器進程,並通過進程ID將其關閉後
Process.Start("http://www.webpage.com?processId=");
如何獲得進程ID過程開始之前?或者我可以設置一些Guid作爲將會持續的另一個標識符嗎?
Process p = Process.Start("cmd.exe");
int processId = p.Id;
我不明白 – karaxuna
這是一個如何獲取剛剛啓動的進程ID的示例。 –
沒有測試
我想你應該嘗試以下方法:
var instances = Process.FindByName("firefox.exe")
來做到這一點 - 你可能需要本地firefox安裝的完整路徑。之後instances
包含當前正在運行的所有firefox實例的句柄。從這裏,我們有三種情況包括:
instances
是一個空數組。這意味着瀏覽器沒有運行。然後你用var processHandle = Process.Start("firefox.exe")
啓動瀏覽器。然後你運行下面的命令行$"firefox.exe -new-tab http://myurl.com/?id={processHandle.Id}"
(希望)能夠識別出firefox的一個實例已經在運行,並打開現有實例中的頁面。 (執行該命令,也可以用過程來完成,但你必須不啓動它來創建一個流程實例,在StartInfo specifing參數並啓動它,然後)
instances
只包含一個條目。因此,我們所要做的就是運行與案例1相同的命令行:$"firefox.exe -new-tab http://myurl.com/?id={instances[0].Id}"
instances
包含多個條目。這意味着多個firefox窗口打開。我沒有解決這個問題。你必須檢查-new-tab
選擇目標總是相同的窗口或不...
你想傳遞一個出了在顯示網頁的網站瀏覽器的進程ID瀏覽器實例(會依賴於瀏覽器)還是想從應用程序中打開網頁,然後關閉所有創建的實例? – Michael
@Michael我想要打開這樣的網址:http://webpage.com?processId=123123其中processId是標籤的URL標識的URL打開。 – karaxuna
@karaxuna int processId = Process.GetCurrentProcess()。Id; –