Co do uzyskania uchwytu HWND na podstawie nazwy procesu to pod ów linkiem - masz mój gotowiec.
Da się również na podstawie tego kodu po przerobieniu sprawdxić, czy proces jest teraz uruchomiony.
http://4programmers.net/Delphi/Gotowce/Uchwyt_na_podstawie_nazwy_pliku_exe_programu
Albo do sprawdzenia czy proces jest uruchomiony można wykorzystać poniższa funkcję. I do sekcji
uses dodaj moduł TLHelp32. Tylko, że właśnie niebardzo wiem jak pobrać pełną ścieżkę procesu, ale
wiem że da się to jakoś zrobić, musiał być poszukać, bo na przykład LordPE ma taką możliwośc, no
ale nie jest on z pewnością pisany w Delphi. Może ktoś inny, coś tutaj Tobie więcej pomoże z tym ;/
function CzyJestProces(NazwaProcesu : string) : boolean;
var
I : Integer;
Uchwyt : THandle;
PR : TStringList;
Proces : TProcessEntry32;
begin
Result := False;
Uchwyt := CreateToolHelp32SnapShot(TH32CS_SNAPALL, 0);
Proces.dwSize := SizeOf(Proces);
PR := TStringList.Create;
if Integer(Process32First(Uchwyt, Proces)) <> 0 then
begin
repeat
PR.Add(Proces.szExeFile);
until Integer(Process32Next(Uchwyt, Proces)) = 0;
end;
for I := 0 to PR.Count - 1 do
if (PR[I] = NazwaProcesu) then
begin
Result := True;
Break
end;
CloseHandle(Uchwyt);
PR.Free;
end;