Thema: Delphi Prüfen ob Delphi läuft

Einzelnen Beitrag anzeigen

A-M-X

Registriert seit: 29. Sep 2005
Ort: Karlsruhe
152 Beiträge
 
#4

Re: Prüfen ob Delphi läuft

  Alt 15. Okt 2005, 15:45
Erstmal folgendes in die Uses Liste einbinden:

uses TlHelp32;
Das die Funktion wo überprüft , ob eine EXE datei läuft:

Delphi-Quellcode:
function IsExeRunning(const AExeName: string): boolean;
var
  h: THandle;
  p: TProcessEntry32;
begin
  Result := False;

  p.dwSize := SizeOf(p);
  h := CreateToolHelp32Snapshot(TH32CS_SnapProcess, 0);
  try
    Process32First(h, p);
    repeat
      Result := AnsiUpperCase(AExeName) = AnsiUpperCase(p.szExeFile);
    until Result or (not Process32Next(h, p));
  finally
    CloseHandle(h);
  end;
end;
Zu guter Letzt der Beispielaufruf:

Delphi-Quellcode:
 if IsExeRunning('Notepad.exe') then
   ShowMessage('Notepad läuft')
 else
   ShowMessage('Notepad läuft nicht');



_____________________

DANN kannst du noch Prüfen , ob ein Window "läuft":

Delphi-Quellcode:
var
  Handle: THandle;
begin
  Handle := FindWindow(PChar('Unbekannt - Editor'),nil);
  if Handle<>0 then
    Showmessage('Editor ist schon gestartet')
  else
    Showmessage('Editor wurde noch nicht gestartet');

_____________________

1. Moeglichkeit
Läuft Delphi IDE?

Delphi-Quellcode:
  If FindWindow('TAppBuilder',nil) <= 0 then
    ShowMessage('Delphi läuft nicht')
  else
    ShowMessage('Delphi läuft');
2. Moeglichkeit

Delphi-Quellcode:
  if DebugHook <> 0 then
    ShowMessage('Inside IDE')
  else
    ShowMessage('StandAlone');
___________________


Du kannst natürlich auch die laufendne Prozesse ermitteln und Delphi rauspicken:

Uses Liste einbinden:
Delphi-Quellcode:
uses
 tlhelp32;
Die Funktion:
Delphi-Quellcode:
procedure GetProcessList(const aProcessList: TStrings);
var
  Snap: THandle;
  ProcessE: TProcessEntry32;
begin
  aProcessList.Clear;
  Snap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  try
    ProcessE.dwSize := SizeOf(ProcessE);
    if Process32First(Snap, ProcessE) then
      Repeat
        aProcessList.Add(ProcessE.szExeFile);
      Until not Process32Next(Snap, ProcessE)
    else
      RaiseLastOSError;
  finally
    CloseHandle(Snap);
  end;
end;
Beispielaufruf:

 GetProcessList(listbox1.Items);
  Mit Zitat antworten Zitat