function GetProcessExeName( ProcessId: DWord ): String;
var
Process32: TProcessEntry32;
Handle: THandle;
function Check: Boolean;
begin
Result := False;
if Process32.th32ProcessID = ProcessId then
begin
GetProcessExeName := Process32.szExeFile;
Result := True;
end;
end;
begin
Result := '';
Process32.dwSize := SizeOf( TProcessEntry32 );
Handle := CreateToolHelp32SnapShot( TH32CS_SNAPPROCESS, 0 );
try
if Process32First( Handle, Process32 ) then
while Process32Next( Handle, Process32 ) do
if Check then Exit;
finally
CloseHandle( Handle );
end;
end;
function ExeName( Wnd: HWnd ): String;
var
ProcessId: DWord;
begin
GetWindowThreadProcessId( Wnd, @ProcessId );
Result := GetProcessExeName( ProcessId );
end;
양병규님의 비주얼멘더 소스에서 핸들값으로 실행파일명을 구하는 부분입니다.
EnumWindows나 EnumChildWindows를 이용해 모든 핸들값에 대해 실행파일명을 구하면 특정프로그램이 실행중인지 알 수 있겠지요..
function GetProcessExeName( ProcessId: DWord ): String;
var
Process32: TProcessEntry32;
Handle: THandle;
function Check: Boolean;
begin
Result := False;
if Process32.th32ProcessID = ProcessId then
begin
GetProcessExeName := Process32.szExeFile;
Result := True;
end;
end;
begin
Result := '';
Process32.dwSize := SizeOf( TProcessEntry32 );
Handle := CreateToolHelp32SnapShot( TH32CS_SNAPPROCESS, 0 );
try
if Process32First( Handle, Process32 ) then
while Process32Next( Handle, Process32 ) do
if Check then Exit;
finally
CloseHandle( Handle );
end;
end;
function ExeName( Wnd: HWnd ): String;
var
ProcessId: DWord;
begin
GetWindowThreadProcessId( Wnd, @ProcessId );
Result := GetProcessExeName( ProcessId );
end;
양병규님의 비주얼멘더 소스에서 핸들값으로 실행파일명을 구하는 부분입니다.
EnumWindows나 EnumChildWindows를 이용해 모든 핸들값에 대해 실행파일명을 구하면 특정프로그램이 실행중인지 알 수 있겠지요..