再利用されたプロセスのハンドル


まうす  2013-09-10 23:52:38  No: 148222

Process.Start(ProcessStartInfo)

再利用された場合のプロセスのハンドルが取得出来ますか?


魔界の仮面弁士  2013-09-18 07:05:39  No: 148223

再利用されたということは、既存のプロセスが存在するわけですから、
  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 プロパティで判断するとか。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加