유창원님(?)맞죠?? 이분이 비슷한질문올리시면서 같이 올리신 코드보구
구현하려다가 실패하구 (ㅡ.ㅜ) 이틀동안 머리 싸메구 이것저것 시도해보다가
여기저기 게시판 뒤지고 끝내는 머리가 공황상태에 빠져서 아무것도 할수없게
되어 이렇게 도움요청합니다 ㅠ.ㅠ
예를들면 ABC.exe라는 파일이 있는데요. 이 실행파일에 대한
프로세스 이름??(Ctrl+Alt+Del 누르면 목록에 나오는거 있잖아여) 하고
프로세스ID랑 프로세스에 대한 경로를 알려구 그러거든요??
밑에 두개 가지고 고민해봤는데 잘모르겠어서.. ^^;
1)
====================================================================
이건 저 위에 유창원님이 예전에 올리신 글보구 해본건데요.. 밑에처럼 하면
프로세스 ID랑 경로는 가져오는거 같던데 프로세스명을 알수는 없을까요 ??
혹시 프로세스ID가지구 프로세스명 가져오는 API함수는 없을까요 O.Oa
procedure Process32List;
var
Process32: TProcessEntry32;
SHandle: THandle;
Next: BOOL;
slist : TStringList;
begin
slist := TStringList.Create;
Process32.dwSize := SizeOf(TProcessEntry32);
SHandle := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if Process32First(SHandle, Process32) then begin
// 실행화일명과 process object 저장
Slist.AddObject(Process32.szExeFile, TObject(Process32.th32ProcessID));
repeat
Next := Process32Next(SHandle, Process32);
if Next then Slist.AddObject(Process32.szExeFile, TObject(Process32.th32ProcessID));
// 여기는 리스트에 실행파일목록 볼려구 만든겁니다..
Form1.lbx3.Items.Add(Process32.szExeFile);
until not Next;
end;
CloseHandle(SHandle);
end;
==================================================================
2)
==================================================================
이건요 프로세스명긁어와서 프로세스 ID까지 알아내는데는 성공했는데
다음에 프로세스 경로를 알아야 하는데 그걸모르겠어요 ㅡ.ㅜ
function EnumWindowsCode(Wnd : hWnd;Form : TCustomForm) : Boolean; Export; StdCall;
var
Buffer : Array[0..99] of char;
ProcessTitle : string;
TheWindow : HWND;
ProcessID : DWORD;
tmp : string;
begin
GetWindowText(Wnd,Buffer,100);
if StrLen(Buffer) <> 0 then begin
ProcessTitle := StrPas(Buffer);
TheWindow := FindWindow(PChar(nil), PChar(ProcessTitle));
GetWindowThreadProcessId(TheWindow, @ProcessID);
tmp := IntToStr(ProcessID-(ProcessID*2)) + '|'+ ProcessTitle;
Form1.lbx2.Items.Add(tmp);
end;
Result := True;
end;
procedure TForm1.btn_pro_loadClick(Sender: TObject);
begin
lbx2.Clear;
EnumWindows(@EnumWindowsCode, LongInt(Self));
end;
===================================================================
제가 초보고 이것저것 막 해보다가 코드도 이상할지 모르지만 조금만 도와
주세요~!! 네? ㅡ.ㅜ 부탁드립니다... 힌트라도.. 전부다 가르켜주시기 귀찮
으시다면 운만 띄워주세요 제가 연구해볼께요
http://www.michbak.com/english/informatics/programming/delphi/ProcessList.php3
uses psapi 사용