실수로 CreateProcess를 계속 호출하는 프로그램을 작성하여 무한 루프가 발생했습니다.Windows : 스스로 생성하는 프로그램을 종료하십시오.
이 프로그램을 실행하기 시작하면 어떻게해야합니까? 필자는 작업 관리자를 통해이 작업을 중단하려고 시도했지만 프로그램이 시작되어 즉시 죽기 때문에 작업 관리자에서 사라지고 다시 나타나서 멈추지 않습니다.
이 문제를 막을 수있는 유일한 방법은 매우 불편할 수있는 PC를 재부팅하는 것입니다. 보기의 최종 사용자 관점에서
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow)
{
using namespace std;
CreateProcess(L"self.exe",
NULL, // No command line arguments
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
NULL, // Set handle inheritance to NULL
NULL, // No creation flags
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&lpStartupInfo, // Pointer to STARTUPINFO structure
&lpProcessInfo // Pointer to PROCESS_INFORMATION structure
);
return 0;
//return (int)msg.wParam;
}
PC를 재부팅하고 실행 파일을 다시 실행하지 마십시오 ...? – user463035818
앱의 다른 인스턴스가 이미 실행 중인지 확인하기 위해 뮤텍스를 만듭니다. 실행중인 경우 다른 프로세스를 만들기 전에 종료하십시오. 힌트 :'CreateMutex'와'GetLastError'를 사용하십시오. – Asesh
@ tobi303 다른 방법이 있는지 묻고 싶습니다. 나는 내 질문을 명확하게 정리했다고 믿을 때 downvotes를 이해하지 못한다. – dk123