Checken ob ein Task da ist [gelöst]

Antworten
andone
Beiträge: 7
Registriert: Mi 28. Sep 2011, 23:42
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: 77694 Kehl

Checken ob ein Task da ist [gelöst]

Beitrag von andone »

Hallo miteinander,

ich möchte prüfen ob eine bestimmtes Programm gestartet ist. Erste Idee wäre den Taskmanager abzufragen. Oder was mit TProcess machen ? Hab hier im Forum noch nix dazu gefunden.

Gruß
AndOne

P.S. Bin übrigens neu hier. Bin gerade erst von Delphi auf Lazerus umgestiegen 8)
Zuletzt geändert von andone am Fr 14. Okt 2011, 12:28, insgesamt 1-mal geändert.

MmVisual
Beiträge: 1466
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: Checken ob ein Task da ist

Beitrag von MmVisual »

EleLa - Elektronik Lagerverwaltung - www.elela.de

andone
Beiträge: 7
Registriert: Mi 28. Sep 2011, 23:42
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: 77694 Kehl

Re: Checken ob ein Task da ist

Beitrag von andone »

Hallo MmVisual,

sieht so nicht schlecht aus. Für Lazerus wahrscheinlich aber nicht nutzbar da die Unit PsApi nicht da ist, und Lazerus HWND nicht kennt. Vielleicht gibts Alternativen ?

Ich habs in Delphi bisher so gemacht:

Code: Alles auswählen

var   Snap      : THandle;
      ProcessE  : TProcessEntry32;
-----------------------
Snap:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  ProcessE.dwSize:=SizeOf(ProcessE);
  if Process32First(Snap,ProcessE) then begin
      StrDummy:=  string(ProcessE.szExeFile); // 1. Prozess
      // Wenn Task gefunden
      if StrDummy = 'XXXXXX.exe' then Gestartet := True;
      while Process32Next(Snap,ProcessE) do begin // alle restlichen Prozesse
        StrDummy:=string(ProcessE.szExeFile);
        if StrDummy = 'XXXXXX.exe' then Gestartet := True;
      end;
  end
  else ShowMessage('Fehler!');
  CloseHandle(Snap);

Geht aber wegen TProcessEntry32 auch nicht
Gibts dazu ggf. ne Alternative ?

Gruß
andone
Zuletzt geändert von Lori am Di 4. Okt 2011, 20:40, insgesamt 1-mal geändert.
Grund: Highlighter

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Checken ob ein Task da ist

Beitrag von theo »

Du könntest die benötigten Funktionen selber importieren.
Ideen dazu gibt's hier:
http://www.koders.com/delphi/fid941A861 ... 60A65.aspx

andone
Beiträge: 7
Registriert: Mi 28. Sep 2011, 23:42
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: 77694 Kehl

Re: Checken ob ein Task da ist

Beitrag von andone »

Der Code von mir läuft jetzt. Habe folgendes gemacht:

1. {$MODE Delphi}

2. Die Unit Windows eingebunden

3. TlHelp32.pas aus Delphi eingebunden (Die gibts auch im WWW)

Danke Euch

Antworten