podam na przykładzie:
uruchamiam własny program ktory działa w tle i który sprawdza czy został uruchomiony inny proces w ten sposób że podaje się ścieżkę do aplikacji:
function GetProcessFileName(const pID: DWORD): string;
var
hProc: HWND;
buffer: array[0..1023] of Char;
snap: THandle;
pe32: TProcessEntry32;
begin
Result := '';
if (Win32Platform = VER_PLATFORM_WIN32_NT) and (Win32MajorVersion > 3) then
begin
hProc := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, pID);
if hProc <> 0 then
begin
FillChar(buffer, SizeOf(buffer), 0);
GetModuleFileNameEx(hProc, 0, buffer, SizeOf(buffer));
Result := buffer;
end;
CloseHandle(hProc);
end
else
begin
snap := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
pe32.dwSize := SizeOf(TProcessEntry32);
if integer(Process32First(snap, pe32)) <> 0 then
repeat
if integer(pID) = integer(pe32.th32ProcessID) then
begin
Result := pe32.szExeFile;
Break;
end;
until integer(Process32Next(snap, pe32)) = 0;
CloseHandle(snap);
end;
end;
function CheckApp(const FileName: string): boolean;
var
snap: THandle;
pe32: TProcessEntry32;
begin
Result := False;
snap := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
pe32.dwSize := SizeOf(TProcessEntry32);
if integer(Process32First(snap, pe32)) <> 0 then
repeat
if UpperCase(FileName) = UpperCase(GetProcessFileName(pe32.th32ProcessID)) then
begin
Result := True;
Break;
end;
until integer(Process32Next(snap, pe32)) = 0;
CloseHandle(snap);
end;
poprzez podanie ścieżki do aplikacji sprawdzam sobie czy (jej) proces jest uruchomiony i tu gwóźdź programu :>
potrzebuje wiedziec czy ten uruchomiony proces jest zminimalizowany czy nie ?!?
moze jakos da się to osiąganąć poprzez wyciągnięcie tej informacji z powyższej (pierwszej) funkcji ? ?