Prozesse auslesen

Newbie8

Mitglied
Hallo,

bin gerade am verzweifeln, ich möchte alle Prozesse, die gerade laufen auslesen, um einen bestimmten zu killen. Hoffe, dass ich über den Namen den richtigen herausfinden kann. Allerdings habe ich EnumProcesses probiert, dann sagt er mir immer obwohl ich #include <psapi.h> aufgenommen habe, dass er EnumProcesses ein nichtdeklarierter Bezeichner ist. Jetzt hatte ich auf einer anderen Seite gelesen, dass wenn man XP hat, man lieber CreateToolhelp32Snapshot verwenden sollte, aber auch hier das gleiche Spiel, habe oben #include <tlhelp32.h> eingebunden, aber der Compiler sagt wieder nichtdeklarierter Bezeichner. Habe jetzt echt schon viel Zeit investiert und auch sehr viel gegoogelt, aber ich komme einfach nicht weiter. Ich hoffe, ihr könnt mir weiterhelfen.

Das Programm wird unter XP kompiliert, ich arbeite mit Visual Studio C++ 6 und wenn möglich, sollte das Programm auch unter Vista funktionieren.

Für Enumerating Processes hatte ich zB folgendes ausprobiert:
http://msdn.microsoft.com/en-us/library/ms682623.aspx
und für CreateToolhelp32Snapshot zB folgendes Beispiel:
http://weseetips.com/tag/createtoolhelp32snapshot/

Ich hoffe, ihr könnt mir weiterhelfen. Vielen lieben Dank im Voraus
Viele Grüße
 
Zuletzt bearbeitet:
Hi.

Schau doch mal in deiner Version der psapi.h nach, ob dort die EnumProcesses Funktion deklariert wird.

Willst du denn nicht einen neueren C/C++ Compiler verwenden?

Gruß
 
Hi,

muss sagen wenn ich auf meiner Festplatte nach psapi.h suche, finde ich nur unter C:\windows\system32 eine psapi.dll. Fehlt mir hier eine Bibliothek? Wenn ja, wo bekomme ich die her? Habe mal etwas bei Microsoft heruntergeladen, weil ich dachte mir fehlt evtl die psapi.h aber das war dann wieder die dll oder ist die psapi.h in der dll enthalten? Bzw wie finde ich die Version der psapi.h heraus? Sorry dass ich mich so wenig auskenne:(

Schau doch mal in deiner Version der psapi.h nach, ob dort die EnumProcesses Funktion deklariert wird.

Ist der Compiler so sehr überaltet? In der Firma, wo ich arbeite, verwenden wir diesen Compiler
Viele Grüße
 
muss sagen wenn ich auf meiner Festplatte nach psapi.h suche, finde ich nur unter C:\windows\system32 eine psapi.dll. Fehlt mir hier eine Bibliothek?
Die DLL ist die Bibliothek. Irgendwo muss allerdings auch die Headerdatei sein. Der Compiler würde sich beschweren, wenn er die Datei nicht finden könnte.

Die Datei ist Teil des Platform SDKs. Sollte also unter %programfiles%\Microsoft SDKs\Windows\vX.Y\include zu finden sein...

Ansonsten starte mal filemon (kann man bei MS runterladen), trage als Filter "*psapi.h" ein und starte das Kompilieren. So findest du genau raus wo der Compiler die Datei findet.
Ist der Compiler so sehr überaltet?
Veraltet ist gar kein Ausdruck. Und schlecht war der schon immer.
In der Firma, wo ich arbeite, verwenden wir diesen Compiler
Lauf schnell weg... ;)

Gruß
 
Anfangs hatte er auch gemeckert, dass er die psapi.h nicht findet, dann hatte ich gegoogelt und da hatte jmd mal geschrieben, dass man unter den Projekteinstellungen unter C/C++->Allgemein unter Präprozessor-Definitionen DPSAPI_VERSION=1 eintragen soll und unter Linker->Eingabe Zusätlicher Bibliothekspfad Psapi.lib und danach hatte er zwar nicht mehr gesagt, dass er psapi.h nicht findet, aber er kannte EnumProcesses, EnumProcessModules und GetModuleBaseName trotzdem nicht. Selbst als ich das jetzt rückgängig gemacht habe, trotzdem meckert er nicht die psapi.h an sondern EnumProcesses,...Habe soviel ausprobiert, da hab ich wohl irgendwo noch was verstellt :( Vielleicht sollte ich es sonst nochmal neu installieren lassen?

http://technet.microsoft.com/en-us/sysinternals/bb896642 hier stand dass filemon durch ProcessMonitor ersetzt wurde, habe es heruntergeladen und den Filter gesetzt und es läuft schon ewig. (wobei ich eh nicht weiß, was ich beim Filter auswählen muss, Architecture?), wollte gern einen Screenshot anhängen aber das ist wohl nicht erlaubt oder?

;-)
Gruß
 
Path ends with psapi.h
Danke :) then include oder?

Als ich vorhin auf antworten gegangen bin, hat er immer direkt antworten angezeigt, da fehlten dann ein paar Buttons zB zum Anhängen von Grafiken. jetzt zeigt er die normale Oberfläche an :)
Gruß
 
Zuletzt bearbeitet:
Hm irgendwie kommt der gar nicht vorwärts - ist das normal? Apply Event Filter 23% - 139.07 remaining (06.05.2011 14:15:21)

Allerdings steigt 139.07 und 14:15:21 weiter an und die Prozente gehen gar nicht mehr hoch :(
 
Zuletzt bearbeitet:
Hm irgendwie kommt der gar nicht vorwärts - ist das normal? Apply Event Filter 23% - 139.07 remaining (06.05.2011 14:15:21)

Allerdings steigt 139.07 und 14:15:21 weiter an und die Prozente gehen gar nicht mehr hoch :(
Ich weiß nicht genau wovon du redest.

Normalerweise startet man Procmon mit dem entsprechenden Filter, startet das Kompilieren, beendet das Monitoring in Procman (F5) und schaut sich das Resultat an. Die Angelegenheit dauert vielleicht 2-3 min.

\edit: Hast du denn mal in %programfiles%\Microsoft SDKs\Windows\vX.Y\include geschaut?

Gruß
 
Vorhin hat sich dann sogar mein PC aufgehängt, kam ein Bluescreen mit Hard Error. war ganz schön geschockt, aber gott sei dank ist er ohne Probleme hochgefahren.

Also ich starte Procman.exe, dann erscheint folgende Anzeige: Zwischenablage02.jpg

Vorhin hatte ich Path ends with psapi.h then Include ausgewählt und Add geklickt. Jetzt versuche ich lieber mal Path ends with psapi.h then exclude, also bei mir läuft das dann schon länger als 2-3min, jetzt läufts nämlich schon 10min und unten steht dann "the current filter exclues all 2.684.745 events" und die zahlt steigt sekündlich.

Ok jetzt gings doch noch schnell, wenn ich then include angebe, dann ist das Ergebnis no events (capture disabled) und wenn ich exclude angebe, werden einige Prozesse angezeigt.
 

Anhänge

  • Zwischenablage02.jpg
    Zwischenablage02.jpg
    138,7 KB · Aufrufe: 24
Zuletzt bearbeitet:

Neue Beiträge

Zurück