Ścieżka do exe, proces i okno

0

Cześć. Chcę sprawdzić, czy aplikacja(mamy jedynie ścieżkę do exe) jest uruchomiona?
Nasuwa się, że trza przejrzeć listę procesów. Rozumiem, że innej opcji nie ma, tak?

Teraz drugie pytanie. Zakładając, że aplikacja jest uruchomiona. Czy można jakoś zdobyć handla do jej okna? Powtarzam, że znamy jedynie ścieżkę do exe.

0

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;
0

Zmienne PR i I są zbędne.

Sprawdzenie powinno nastąpić w pierwszej pętli i tam też powinna zostać przerwana gdy wynik porównania wyjdzie pozytywnie.

Poza tym nie sprawdzana jest wielkość liter.

0

Już to zrobiłem inaczej.
EnumWindows i GetWindowModuleFileName

0

Tylko, że właśnie nie_xD_bardzo wiem jak pobrać pełną ścieżkę procesu

to powinno rozjaśnić wasze umysły :
http://www.swissdelphicenter.ch/torry/showcode.php?id=616

0

a ja do takich rzeczy polecam madCollection, o ile pamietam darmowy do zastosowan niekomercyjnych.

0

a przeglądałeś linka, którego ci wysłałem?
http://4programmers.net/Forum/viewtopic.php?id=160526

1 użytkowników online, w tym zalogowanych: 0, gości: 1