pid でプロセス パスを取得しようとしていますが、Win32Exception (アクセス ID が拒否されました) が発生します。
コードは次のようになります。
string path = Process.GetProcessById(pid).MainModule.FileName
GetModuleFileNameEx で OpenProcess を使用しようとしましたが、OpenProcess は 0 を返しています。
上記のコードはほとんどのプロセスで機能しますが、SynTPHelper.exe (Synaptics Pointing Device Helper) でエラーがスローされます。アプリケーションはコードと同じユーザー名で実行されています。アプリケーションとプロセスの両方が 64 ビットで実行されます。
アプリケーションを管理者として実行せずにパスを取得することはできますか?
編集
管理者として実行していなくても、タスク マネージャーは「ファイルの場所を開く」ことができます。