現在、多重起動防止のためのwindow強制終了の処理にて困っております。
プロセス名によせてPIDを取得しまくり、同プロセス名、違PIDのwindowを強制削除しまくる事で多重起動防止できると考え、調べてみました。検索すると沢山、同様の処理が出てまいりますので参考にしてみたところprocess.CloseMainWindowの箇所にて表題のエラーが発生します。
不思議と、成功する事もあるのでかえって厄介です。
以上、宜しくお願いいたします。
System.Diagnostics.Process hThisProcess = System.Diagnostics.Process.GetCurrentProcess();
System.Diagnostics.Process[] hProcesses = System.Diagnostics.Process.GetProcessesByName(hThisProcess.ProcessName);
int iThisProcessId = hThisProcess.Id;
foreach (System.Diagnostics.Process hProcess in hProcesses){
if (hProcess.Id != iThisProcessId){
if (!hProcess.CloseMainWindow()){
hProcess.Kill();
}
else{
Logger.Info("CloseMainWindow成功:" + hProcess.Id);
}
}
}