앱 실행 여부를 제어하는 업데이터를 만들었습니다.Process.GetProcessessByName doesnt 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 -이 대답은 그 블록에 둘 다 * 프로세스 호출을 시도하는 것처럼 보이는 두 개의 함수 호출이 있다는 것을 지적하려고합니다. 'StartProcess' 및/또는'StartProcessAsCurrentUser'는 * 정말로 * 잘못 명명되었거나 두 프로세스를 시작하려고합니다. –
예. 나는 그것을 완전히 놓쳤다. 백그라운드에서 StartProcess 응용 프로그램을 열면 startProcessAsUser가 추가되어 잊어 버릴 수 있습니다. 도와 줘서 고마워. –