Und wo kriegst du die schlefe her? Dafür muss du noch ein extra programm schreiben. Vielleicht passt das geisi nicht...k.a.
Wenn die Lösung passt, dann hier der quellcode dafür:
Delphi-Quellcode:
function FindTask(ExeFileName: string): boolean;
const
PROCESS_TERMINATE=$0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
result:=false;
FSnapshotHandle := CreateToolhelp32Snapshot
(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,
FProcessEntry32);
while integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeFileName))
or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
Result := true;
ContinueLoop := Process32Next(FSnapshotHandle,
FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
Eigentlich wurde die funktion dazu gedacht, tasks zu killen, aber ich habe sie ein bischen verändert... aus diesem grund geht das vielleicht auch einfacher. Die prozedur funktioniert aber.
Jetzt braucht man mit einem Timer, oder so,
Delphi-Quellcode:
if FindTask('
winamp3.exe')=true
then
ShellExecute(
Handle,'
open',PChar('
c:\MySoft\BlaBla.exe'),
nil,
nil,SW_RESTORE);
aufzurufen und das war's.