Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Prozess beenden und wieder starten (https://www.delphipraxis.net/61304-prozess-beenden-und-wieder-starten.html)

oXmoX 19. Jan 2006 18:04


Prozess beenden und wieder starten
 
Hallo!

Hier mein (Anfänger-)Problem: Ich würde gerne einen laufenden Prozess beenden, dessen Exe-Namen ich kenne. Danach soll die gerade beendete Anwendung wieder neu gestartet werden. Ich kenne nur den Exe-Namen des Prozesses, nicht den Ort der Exe-Datei.

Kann jemand helfen?

ManuMF 19. Jan 2006 18:06

Re: Prozess beenden und wieder starten
 
Beenden eines Prozesses:

Delphi-Quellcode:
function KillTask(const AExeName: string): boolean;
var
  p: TProcessEntry32;
  h: THandle;
begin
  Result := false;
  p.dwSize := SizeOf(p);
  h := CreateToolHelp32Snapshot(TH32CS_SnapProcess, 0);
  try
    if Process32First(h, p) then
      repeat
        if AnsiLowerCase(p.szExeFile) = AnsiLowerCase(AExeName) then
          Result := TerminateProcess(OpenProcess(Process_Terminate,
                                                 false,
                                                 p.th32ProcessID),
                                     0);
      until (not Process32Next(h, p)) or Result;
  finally
    CloseHandle(h);
  end;
end;
Um ein Programm zu starten, ist Hier im Forum suchenShellExecute geeignet.

Wenn du den Pfad nicht kennst, musst du ihn aber irgendwie vorher auslesen.

Gruß,
ManuMF

oXmoX 19. Jan 2006 18:09

Re: Prozess beenden und wieder starten
 
Zitat:

Zitat von ManuMF
Wenn du den Pfad nicht kennst, musst du ihn aber irgendwie vorher auslesen.

Genau so hab ich mir das auch schon gedacht ...ich dachte nur, es geht evtl. auch etwas geschickter.

Jetzt suche ich aber immernoch nach einer Möglichkeit, den Pfad herauszufinden.

Edit:
Okay, auf die Gefahr einer Verwarnung hin kokretisier ich mal mein Problem (auch wenn das dann am Thema vorbei ist): Der Prozess, der neu gestartet werden soll ist die Anwendung ICQ 5. Vielleicht kann mir ja jemand sagen, sie ich den Installationspfad ermittle ...in der Registry bin ich noch nicht fündig geworden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz