Announcement

Collapse
No announcement yet.

Programm per EXE-Name suchen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Programm per EXE-Name suchen

    Hallo Leute,

    ich möchte gerne verschiedene Programme über den EXE-Namen (zum Bleistift "win.exe") suchen - also prüfen, ob die laufen.

    Na, und für den Fall, dass es da ne Lösung gibt, hätte ich gleich noch ne Anschlußfrage:
    Kann man dann dieses Programm über den EXE-Namen auch in den Vordergrund rufen?

    Besten Dank für Anregungen
    Oezhan

  • #2
    Ich habe hier eine kleine aber feine Funktion für Dich.

    Der Aufruf wäre dann:

    if TaskIsRunning('win.exe') then
    ......

    Viele Grüsse
    Bruno

    <PRE>
    function TaskIsRunning(TaskName: string): boolean;
    {This function checks if the passed program is running or not. The name must be
    passed as name.exe}
    var
    handler: THandle;
    data: TProcessEntry32;
    dummy: TForm;
    lb: TListBox;
    i: integer;

    function GetName: string; //local function
    var
    i: byte;
    begin
    Result := '';
    i := 0;
    while data.szExeFile[i] <> '' do
    begin
    Result := Result + data.szExeFile[i];
    inc(i);
    end;
    end;

    begin
    Result := false;

    dummy := TForm.Create(nil); //dummy form to assign lb to
    lb := TListBox.Create(dummy);
    lb.Parent := dummy;
    lb.Visible := false;

    try
    handler := CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
    data.dwSize := SizeOf(data);
    if Process32First(handler, data) then
    begin
    lb.Items.Add(GetName());
    while Process32Next(handler, data) do
    lb.Items.Add(GetName());

    for i := 0 to lb.Items.Count - 1 do
    begin
    if (UpperCase(ExtractFileName(lb.Items[i])) = UpperCase(TaskName))
    or (UpperCase(lb.Items[i]) = UpperCase(TaskName)) then
    begin
    Result := true;
    break;
    end;
    end;
    end;
    finally
    FreeAndNil(lb);
    FreeAndNil(dummy);
    CloseHandle(handler);
    end;
    end;
    </PRE&gt

    Comment

    Working...
    X