Process.Start(ProcessStartInfo)
再利用された場合のプロセスのハンドルが取得出来ますか?
再利用されたということは、既存のプロセスが存在するわけですから、
Dim p As Process = Process.Start(psi)
If p Is Nothing Then
'再利用された
End If
あるいは
Dim p As New Process()
p.StartInfo = psi
If Not p.Start() Then
'再利用された
End If
などのタイミングで、Process.GetProcessesByName や .GetProcesses から
検索してみてはいかがでしょうか。
ただし、既存のプロセスが複数ある場合、それらをどのように
特定していくのかは、それぞれのアプリケーションによって
異なってくるかと思います。
たとえば Internet Explorer なら、ShellWindows コレクションを
列挙した上で、LocationUrl や Document プロパティなどから判断するとか、
Excel であれば、IRunningObjectTable からインスタンスを拾ってきて
Workbook の FullName プロパティで判断するとか。
ツイート | ![]() |