AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Läuft ein Prozess mit einer bestimmten PID?
Thema durchsuchen
Ansicht
Themen-Optionen

Läuft ein Prozess mit einer bestimmten PID?

Offene Frage von "delphis spassbremse"
Ein Thema von delphis spassbremse · begonnen am 30. Jun 2007 · letzter Beitrag vom 30. Jun 2007
Antwort Antwort
delphis spassbremse

Registriert seit: 7. Jun 2007
Ort: Enger
104 Beiträge
 
Delphi 7 Enterprise
 
#1

Läuft ein Prozess mit einer bestimmten PID?

  Alt 30. Jun 2007, 04:25
und glich die nächste Frage xD

und zwar ich möchte ermitteln, ob ein prozess mit einer
bestimmten Prozess ID läuft.

Habe mir folgenden Code geschrieben, der leider nur Teilweise
funktioniert...

Delphi-Quellcode:
function pid_da (pid: Integer) : Bool;
var
  pidhandle: THandle;
begin
  pidhandle := OpenProcess(PROCESS_QUERY_INFORMATION, False, pid);
  if pidhandle <> 0 then
  begin
   result := false;
  end else
  begin
   result := true;
  end;
  CloseHandle(pidhandle);
end;
Wenn ich den Prozess damit prüfe und
er wirklich läuft, dann geht es...

wenn er aber nach der prüfung beendet wurde,
und erneut geprüft wird, bleibt das ergebnis immer
noch auf true....

Weiß vllt. jemand, woran das liegt?

MFG

Björn
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Läuft ein Prozess mit einer bestimmten PID?

  Alt 30. Jun 2007, 08:00
CloseHandle solltest/brauchst du nur aufrufen wenn du auch ein gültiges Handle bekommen hast.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Läuft ein Prozess mit einer bestimmten PID?

  Alt 30. Jun 2007, 08:44
Zitat von delphis spassbremse:
wenn er aber nach der prüfung beendet wurde,
und erneut geprüft wird, bleibt das ergebnis immer
noch auf true....
Hi,

wenn das Processhandle bei dir 0 ist, also der Process nicht geöffnet worden ist, dann wird bei deiner Funktion Result = true zurückgegeben wenn ich das richtig sehe.

EDIT: Du könntest es auch so abändern:
result := LongBool(pidhandle);
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Läuft ein Prozess mit einer bestimmten PID?

  Alt 30. Jun 2007, 13:58
Muss es nicht umgekehrt lauten? Wenn das von OpenProcess zurückgelieferte Handle ungleich null ist, dann existeirt der Prozess?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
delphis spassbremse

Registriert seit: 7. Jun 2007
Ort: Enger
104 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Läuft ein Prozess mit einer bestimmten PID?

  Alt 30. Jun 2007, 14:11
jo hab mich verschrieben...

ist aber leider nicht das Problem...

[EDIT=1] Und irgendwie ist das Handle IMMER 1928 => [/EDIT]

[EDIT=2]
Da fällt mir grad was ein...
ich könnte alle laufenden ProzessID´s
in eine StringList packen und
dann mit einer schleife pid mit pid vergleichen...

nur müsst ich jetzt wissen, wie ich alles PID´s in
eine StingList packe...

Links wären evtl hilfreich
[/EDIT]

MFG

Björn
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Läuft ein Prozess mit einer bestimmten PID?

  Alt 30. Jun 2007, 14:26
Mit MSDN-Library durchsuchenEnumProcesses kannst du alle Prozesse auflisten. Beispielcode sollte es auch im Forum geben.

Was ist den ndas für ein Prozess? Eventuell fehlen dir die nötigen Rechte.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
delphis spassbremse

Registriert seit: 7. Jun 2007
Ort: Enger
104 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Läuft ein Prozess mit einer bestimmten PID?

  Alt 30. Jun 2007, 14:45
ich hab zum testen notepad und mspaint genommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:02 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