次の方法を使用しています
[DllImport("kernel32.dll", SetLastError=true)] static extern int GetProcessId(IntPtr hWnd);
実行中のプロセスのprocessIdを取得しようとしましたが、私が持っている唯一の情報はHWNDです。私の問題は、常に ERROR_INVALID_HANDLE であるエラー コード 6 を返すことです。パラメータをint型に変更するかもしれないと思ったのですが、それもうまくいきませんでした。一度に複数のインスタンスが実行されている可能性があるため、実行中のプロセスを列挙できません。
私が何か間違ったことをしているかどうか、誰でも見ることができますか?
注意: プロセスは、フレームワークに公開されたオートメーション オブジェクトから生成され、HWND プロパティのみを提供します。おそらく、私が書いたコードが最初にそれを実行する責任を負っていたので、processID を取得する別の方法があるでしょうか?
私のコードはこれに似ています...
AutomationApplication.Application extApp = new AutomationApplication.Application(); extApp.Run(); ...