Hallo zusammen,
ich habe folgendes Problem:
Ich möchte unter Windows NT überprüfen, ob ein bestimmtes Programm geöffnet ist. Wenn ja, möchte ich in diesem Programm eine Datei öffnen.
Meine Idee:
Überprüfen, ob es einen solchen Prozess gibt, wenn ja, die Prozess-ID herausfinden, dann Datei öffnen
Bis zur Prozess-ID komm ich noch, dann weiß ich nicht weiter. Wie kann ich eine Datei nun einem laufenden Prozess übergeben? Mir würde es schon ausreichen, wenn ich wüßte aus welchem Verzeichnis das Programm gesartet wurde (da verschiedene Versionen des Programms in unterschiedlichen Verzeichnissen installiert sein können). Dann würde ja ein WinExec-Aufruf funktionieren.
Hat jemand eine Lösung oder vielleicht eine bessere Idee?
Prozesse unter Win NT
Hi,
ich habe ein ähnliches Problem, allerdings
weiß ich noch nich mal, wie man die Prozesse
bzw. die Prozess-IDs herausfindet...
Könntest du vielleicht kurz beschreiben, wie
du das gemacht hast?
ich habe ein ähnliches Problem, allerdings
weiß ich noch nich mal, wie man die Prozesse
bzw. die Prozess-IDs herausfindet...
Könntest du vielleicht kurz beschreiben, wie
du das gemacht hast?
Die Prozess-IDs zu einem bestimmten Prozessnamen bekommst Du mit
pids = win32.win32pdhutil.FindPerformanceAttributesByName(procname)
Eine Liste aller laufenden Prozesse (bzw. deren Namen) bekommst Du mit
win32.win32pdhutil.ShowAllProcesses()
Ich hoffe, das hilft Dir.
pids = win32.win32pdhutil.FindPerformanceAttributesByName(procname)
Eine Liste aller laufenden Prozesse (bzw. deren Namen) bekommst Du mit
win32.win32pdhutil.ShowAllProcesses()
Ich hoffe, das hilft Dir.
-
- User
- Beiträge: 120
- Registriert: Dienstag 8. Oktober 2002, 19:04
- Wohnort: Dinslaken
- Kontaktdaten:
Ich hab das hier gefunden und auch installiert:
http://starship.python.net/crew/mhammon ... loads.html
Aber da war kein Modul win32 dabei
Woher bekomme ich das?
http://starship.python.net/crew/mhammon ... loads.html
Aber da war kein Modul win32 dabei

Woher bekomme ich das?
hier --> http://www.aifb.uni-karlsruhe.de/Lehran ... ll-132.exe <-- gibts win32 modul
Hallo!LuScHe hat geschrieben:hier -->
Das Teil ist grottenalt und dürfte kaum mit einem aktuellen Python laufen (behaupte ich einfach mal). Es gibt auch gar kein Modul win32, zumindest nicht in den "Python Win32 Extensions" von Mark Hammond.
So müsste es gehen, zumindest vom Prinzip (von den Funktionen selbst habe ich keine Ahnung):
import win32pdhutil
...
win32pdhutil.ShowAllProcesses()
...
pids = win32pdhutil.FindPerformanceAttributesByName(procname)
Jan
-
- User
- Beiträge: 120
- Registriert: Dienstag 8. Oktober 2002, 19:04
- Wohnort: Dinslaken
- Kontaktdaten:
geht nicht 
bei
kommt
What shall I do?

bei
Code: Alles auswählen
>>> import win32pdhutil
>>> win32pdhutil.ShowAllProcesses()
Traceback (most recent call last):
File "<pyshell#1>", line 1, in ?
win32pdhutil.ShowAllProcesses()
File "C:\PROGRA~1\Python22\lib\site-packages\win32\lib\win32pdhutil.py", line 67, in ShowAllProcesses
items, instances = win32pdh.EnumObjectItems(None,None,object, win32pdh.PERF_DETAIL_WIZARD)
error: (-1073738824, 'EnumObjectItems for buffer size', 'No error message is available')
What shall I do?
Ja, die Meldung krieg' ich auch. win32pdhutil ist undokumentiert und wird zudem irgendwo in den Quellen als quick-and-dirty bezeichnet. Da darf man nicht soviel erwarten. Die Google-Fundstellen zumindest lassen einen Bug vermuten.
Jan
Jan
Schaut mal nach, ob in dem pdhutils-Modul die imports stimmen. Ich mußte da auch was ändern, damit es bei mir funktioniert hat.
Mein Problem habe ich inzwischen mit Perl gelöst, da gibt es ein Modul, mit dem man detaillierte Prozess-Informationen bekommt.
Mein Problem habe ich inzwischen mit Perl gelöst, da gibt es ein Modul, mit dem man detaillierte Prozess-Informationen bekommt.