Sollte eigentlich relativ einfach zu lösen sein...
Die wirklich _einfachste_ Version Wäre:
Code:
{$APPTYPE CONSOLE}
uses
Windows,
SysUtils,
TlHelp32,
Dialogs;
function processExists(exeFileName: string): Boolean;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
Result := False;
while Integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
begin
Result := True;
end;
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
begin
if processExists('delphi32.exe') then ExitProcess(0)
else
// bla bla bla
ShowMessage('process is not running')
end.
Wie gesagt das wäre die billigste var. Wenn man sich ein wenig näher mit befasst kommen einem sicherlich noch bessere Ideen um das ganze zu perfektionieren...
btw: Die funktion " processExists" ist vom "swissdelphicenter.ch" (Andy) :wink: