2016-09-06 70 views
0

我必須啓動該應用程序的多個實例,並且稍後必須以某種方式識別它。如何使用自定義標識符啓動進程/實例

是否有可能啓動一些自定義實例TAG所以以後我可以找到我需要的實例?

Process p = new Process(); 
// p.TAG = "Guid"; ?????? 
p.StartInfo.FileName = "path"; 
p.Start(); 

更新1

我開始在WPF應用程序的加載事件幾個過程。有時無法獲取當前應用的進程ID。所以我在尋找方法來區分一個實例在一些自定義的方式,如果有可能...

因此模型的樣子

ParentApp.exe 
    ----> Sun.exe 
    ----> Moon.exe 


ParentApp.exe 
    ----> Sun.exe 
    ----> Moon.exe 

而且我用LOAD事件ParentApp.exe的傳遞到太陽.exe和Moon.exe正確的進程ID,以便他們可以創建正確的MSMQ並與ParentApp.exe交換數據,同時ParentApp.exe可以關閉這些應用程序。

更新2

願我們的應用程序中保存一些自定義的數據在這裏

p.Domain = "mydomain?????"; 
p.EnvironmentVariables.Add("MY_NEW_VARIABLE", "SOME_TEXT????"); 

http://blog.gapotchenko.com/eazfuscator.net/reading-environment-variables

+0

看看這個:HTTP :// stackoverf low.com/questions/611094/async-process-start-and-wait-for-it-to-finish?rq=1 啓動進程後返回的變量,您可以將其存儲在列表中,然後用它來確定該過程是否仍在運行。 – Versatile

+0

@多才多藝這與這個問題有什麼關係? –

+0

@Dimi爲什麼除了'Process'對象本身之外還需要其他一些標識符?除非您重複使用同一個對象來啓動多個進程,否則每個Process對象都對應於它啓動的進程。你可以得到進程'PID由Id屬性返回 –

回答

0

執行你可以存儲Process.Id

Process p = Process.Start("notepad.exe"); 
MessageBox.Show(p.Id.ToString()); 
+0

你不需要存儲身份證,當你有過程對象本身。 –

+0

這種方法的主要問題有時它不返回Id,所以我正在尋找另一種方法。如果有可能的話...... –

+0

@Dimi你是什麼意思「有時」?如果你的進程終止,或者它產生了另一個進程然後終止,那麼ID無論如何都是無效的。除了ID –

相關問題