실행 파일명만을 가지고 현재 실행되어 있는 프로그램 죽이기
예) "C:\Program Files\Borland\Delphi\Bin\Delphi.exe"가 실행되었을 경우에 "Delphi.exe" 실행 파일명을 가지고
프로세스를 종료할 수 있음
마찬가지 방법으로 실행파일명을 가지고 해당 프로그램이 실행중인지 알 수 있겠지요?(실행중이라면 해당 프로세스 아이디까지 얻지머)
function KillTask(ExeFileName: string): Integer; //출처 http://www.delphi3000.com/articles/article_4324.asp?SK= const PROCESS_TERMINATE = $0001; var ContinueLoop: BOOL; FSnapshotHandle: THandle; FProcessEntry32: TProcessEntry32; begin Result := 0; FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); FProcessEntry32.dwSize := SizeOf(FProcessEntry32); ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); while Integer(ContinueLoop) <> 0 do begin if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) = UpperCase(ExeFileName))) then Result := Integer(TerminateProcess( OpenProcess(PROCESS_TERMINATE, BOOL(0), FProcessEntry32.th32ProcessID), 0)); ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32); end; CloseHandle(FSnapshotHandle); end;
마찬가지 방법으로 실행파일명을 가지고 해당 프로그램이 실행중인지 알 수 있겠지요?(실행중이라면 해당 프로세스 아이디까지 얻지머)
function isOpen(ExeFileName: string): integer; //출처 http://www.delphi3000.com/articles/article_4324.asp?SK= const PROCESS_TERMINATE = $0001; var ContinueLoop: BOOL; FSnapshotHandle: THandle; FProcessEntry32: TProcessEntry32; begin Result := 0; FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); FProcessEntry32.dwSize := SizeOf(FProcessEntry32); ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); while Integer(ContinueLoop) <> 0 do begin if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) = UpperCase(ExeFileName))) then begin result := FProcessEntry32.th32ProcessID; break; end; ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32); end; CloseHandle(FSnapshotHandle); end;
'프로그래밍 > Delphi' 카테고리의 다른 글
virtual 과 dynamic 그리고 override 의 내부 메카니즘 소개 (2) | 2010.08.04 |
---|---|
DLL을 이용한 마우스 전역 후킹(Hooking) (1) | 2010.07.16 |
프로세스 아이디(ProcessID)로 윈도우 핸들(Handle) 얻기 (0) | 2010.05.27 |
키보드 후킹 예제 (2) | 2010.05.27 |
뮤텍스를 이용한 세션에 상관없이 중복 실행방지 방법 (0) | 2010.04.16 |