私はちょうどアプリケーションを実行している場合、ウィジェットがコントロールするアップデータを作成しました。Process.GetProcessessByName does not work
Process[] processOfApp = Process.GetProcessesByName(setting.ExeName);
if (processOfApp.Length == 0)
{
Program = StartProcess(realPath + "\\" + setting.ExeName + ".exe");
AppDir = realPath + "\\" + setting.ExeName + ".exe";
ProcessExtensions.StartProcessAsCurrentUser(AppDir);
}
アプリプロセスがない場合はプロセスを開始します。しかし、これらのコードは複数のインスタンスを開始します。
どうしたのですか?
編集:これらのコードブロックはwhile(true)にあり、コード内の唯一の開始プロセスです。
実際にはありません。プロセスを開始する機能だけがこのブロックです。 –
@MarijkeBuurlage - この答えは、そのブロックに、プロセスを開始しようとするように見える* 2つの*関数呼び出しがあることを指摘しようとしています。 'StartProcess'と' StartProcessAsCurrentUser'のどちらかが*本当に悪い名前になっているか、2つのプロセスを開始しようとしています。 –
ええ。私はそれを完全に逃した。バックグラウンドでStartProcessアプリケーションを開くと、startProcessAsUserが追加され、それを忘れてしまいます。サポートありがとうございます。 –