Forum: Win32/Win64 API (native code)
by Luckie,
28. Mär 2011
Und ich würde mich nicht darauf verlassen, dass MS nicht die Implementierung ändert und irgendwann mal erst die Prozesse mit ungeraden IDs zu erst ausgibt und dann die mit den geraden. ;)
@Heiko: Irgendwo muss man einen Schnitt machen. Man ja nicht alle gewünschten Eventualitäten von zukünftigen Programmierer aufnehmen.
Forum: Win32/Win64 API (native code)
by Luckie,
29. Nov 2010
@Delphi-Laie: Du beziehst dich da gerade auf veralteten Code.
Forum: Win32/Win64 API (native code)
by Luckie,
22. Nov 2010
Immer langsam mit den jungen Pferden. Man muss sich ja noch für Version 2 was aufheben. ;)
Forum: Win32/Win64 API (native code)
by Luckie,
21. Nov 2010
Ein Prozess ist mich keine Instanz.
Für mich hat eine Klasse schon dann eine Daseinsberechtigung, wenn sie mehrere zusammen gehörende Routinen kapselt.
Das wäre eine Möglichkeit, die es sich lohnt noch mal zu überdenken. Aber selbst dann hast du, wenn du sauber programmieren willst mindestens zwei Routinen.
Das ergibt Sinn.
Forum: Win32/Win64 API (native code)
by Luckie,
21. Nov 2010
Es ist eben nicht nur eine Funktion, sondern mindestens zwei, wenn man den Prozess über den Dateinamen beenden will. Da diese zusammen gehören, bietet sich eine Klasse an.
Falls du die Klasse TMain meinst, die wird in der Konsolenanwendung nur benötigt, wegen des Ereignisses.
Das wäre eine andere Baustelle.
Meiner Meinung nach nicht, da das Ermitteln von Informationen und das Beenden...
Forum: Win32/Win64 API (native code)
by Luckie,
21. Nov 2010
Gut, dass ihr noch mal drüberguckt. Das CloseHandle habe ich übersehen.
Braucht man für SE_DEBUG_NAME nicht bestimmte rechte? Ich werde es aber mal ausprobieren. Scheint zu gehen.
Danke für die Hinweise.
Allerdings habe ich immer noch das Problem mit der Vollzugsmeldung beim erfolgreichen beenden bei WAIT_TIMEOUT.
Forum: Win32/Win64 API (native code)
by Luckie,
19. Nov 2010
@himitsu: Wenn ich mich recht erinnere steht pe32.szExeFile nur der Prozessname, also kein Pfad.
@Mirage: Erster Vorschlag angenommen, zweiter muss noch überdacht werden.
Forum: Win32/Win64 API (native code)
by Luckie,
19. Nov 2010
Da muss ich um eine nähere Erklärung bitten. Man könnte aber einen Setter einführen, um die Klasse bei mehreren Gebrauch hintereinander nicht immer neu erstellt werden muss. Aber macht man das auch?
Forum: Win32/Win64 API (native code)
by Luckie,
19. Nov 2010
Autsch, das passiert, wenn man alten Code per Copy and paste übernimmt.
Eine Datei oder Verzeichnis ist kein Prozess und taucht nict in der Prozessliste auf. Was soll da passieren, außer, dass der Prozess nicht gefunden wird?
Das wäre wohl sinnvoll.
Warum so umständlich?
if LowerCase(FProcessFile) = LowerCase(pe32.szExeFile)...
Forum: Win32/Win64 API (native code)
by Luckie,
18. Nov 2010
Es wird der Prozess beendet, der zu erst in der Liste gefunden wird.
Welche Daten meinst du? Den Fenstertitel? Dann wäre es aber ein Fenster-Schließer. ;)
Wenn der Prozess auch nach dem TimeOut nicht geschlossen werden konnte, dann wird es danach mit hoher Wahrscheinlichkeit auch nicht funktionieren.