2016-09-06 66 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 –

相关问题