|
아래는 VC가 아닌 Delphi 코드입니다. VC인 경우에는 그냥 컴파일 하면 대부분 전부 돌아가고,
델파이의 경우에는 문법만 C에 맞게 고쳐 주신다면 동작합니다.
또한, 한가지 주의점을 드리자면, 파일이름을 받아서 현재 동작하고 있는지의 여부를 검사하고
있는 소스 같은데요
CreateToolhelp32Snapshot API는 98 계열에서는 전체 경로를 돌려주지만, NT 계열에서는
실행 파일의 이름만 리턴합니다. 그래서 서로 다른 경로를 내보내지요.
문제 해결 방법은 PSAPI.DLL 에서 GetModuleFileNameExA 함수를 불러다 쓰면 해결이 되지만
98에서는 PSAPI.DLL NT와 호환성이 없으므로 98에서는 CreateToolhelp32Snapshot API를 그대로
사용하셔야 합니다.
cuperido
알려줘여 님이 쓰신 글 :
: function FindProcess( Str : String) : Boolean;
: var
: Process32: TProcessEntry32;
: SHandle : THandle; // the handle of the Windows object
: Next : BOOL;
: ProcId : DWORD;
: begin
: result := False;
: Process32.dwSize := SizeOf(TProcessEntry32);
: SHandle := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
: if Process32First(SHandle, Process32) then
: begin
: // 실행화일명과 process object 저장
: repeat
: Next := Process32Next(SHandle, Process32);
: if Next then
: begin
: GetWindowThreadProcessID( SHandle, @ProcId );
: if UpperCase(Process32.szExeFile) = Str then
: begin
: Result := True;
: exit;
: end;
: end;
: until not Next;
: end;
: CloseHandle(SHandle); // closes an open object handle
: end;
:
: 이걸 어떻게 API로 바꿀수 있져??? 방법좀 알려주세여
|