Seite 1 von 1
Umgebungsvars und prog beenden
Verfasst: Sonntag 6. Juli 2003, 10:59
von Glamdring
Moin, wie kann ich mir ansehen welche Prozesse gerade laufen z.B. mit Umgebungsvariablen(os.enviorn hab ich probiert) und wenn ein bestimmter Prozess läuft, den Prozess beenden bzw. Das Programm, das den Prozess auslöst beenden.
Gruß
Glamdring
Verfasst: Sonntag 6. Juli 2003, 12:53
von hans
welches OS?
Hans
Verfasst: Sonntag 6. Juli 2003, 13:46
von Glamdring
Windoof XP
Verfasst: Sonntag 6. Juli 2003, 17:26
von hans
Glamdring hat geschrieben:Windoof XP
Damit bin ich als Linuxer aus dem Rennen! Zu kompliziert!
Aber das Thema wurde hier schon mehrfach behandelt. such mal nach Prozess oder Process.
Hans
Verfasst: Sonntag 6. Juli 2003, 17:45
von Glamdring
Aha, das Problem mit den Prozessen ist gelöst-->
Code: Alles auswählen
pids = win32.win32pdhutil.FindPerformanceAttributesByName(procname)
Aber das Problem mit dem Beenden vom Programm bleibt
Gruß
Glamdring
Verfasst: Sonntag 6. Juli 2003, 19:30
von rAiNm4n
Aha, das Problem mit den Prozessen ist gelöst-->
Code:
Code: Alles auswählen
pids = win32.win32pdhutil.FindPerformanceAttributesByName(procname)
Also bei mir kommt immer folgende Fehlermeldung:
Code: Alles auswählen
Traceback (most recent call last):
File "<pyshell#1>", line 1, in ?
win32pdhutil.FindPerformanceAttributesByName("notepad.exe")
File "C:\PROGRA~1\PYTHON22\lib\site-packages\win32\lib\win32pdhutil.py", line 49, in FindPerformanceAttributesByName
items, instances = win32pdh.EnumObjectItems(None,None,object, -1)
error: (-1073738824, 'EnumObjectItems for buffer size', 'No error message is available')
Weiß jemand, wieso?
Aber das Problem mit dem Beenden vom Programm bleibt
Um einen Prozess zu beenden, kannst du win32api.TerminateProcess(...) benutzen.
cu
Chris[/code]
Verfasst: Sonntag 6. Juli 2003, 19:48
von Glamdring
zu1 .: such mal unter Prozesse und nimm dann den Eintrag von meckse, da steht was von modifizierungen, vieleicht hilft dir das weiter.
zu2.: Danke
Gruß
Glamdring
Verfasst: Montag 7. Juli 2003, 10:56
von rAiNm4n
ok, da steht, man soll die imports überprüfen, aber ich kann bei mir nichts Fehlerhaftes feststellen...
Funktioniert es denn bei dir?
cu
Chris
Verfasst: Montag 7. Juli 2003, 15:07
von Glamdring
Habs eben erst getestet, nö geht auch net.
Gruß
Glamdring
Verfasst: Mittwoch 9. Juli 2003, 13:20
von NEBULA
Versuchts doch mal ueber WMI
Ueber WMI kann man die ProzessID ermitteln und noch mehr Infos zum Prozess bekommen.
Mit der ProzessID kann man dann, wie hier schon erwaehnt, TerminateProcess aus der Windows-API aufrufen um den Prozess zu beenden.
Code: Alles auswählen
import win32com.client
wmi = win32com.client.GetObject("winmgmts:")
result = wmi.ExecQuery("SELECT * FROM Win32_Process")
Damit erhaeltst du schonmal alle Prozesse

Diese kannst du dann einfach in einer For-Schleife durchlaufen zB:
Folgende Attribute hat Win32_Process:
Code: Alles auswählen
Caption
CreationClassName
CreationDate
CSCreationClassName
CSName
Description
ExecutablePath
ExecutionState
Handle
HandleCount
InstallDate
KernelModeTime
MaximumWorkingSetSize
MinimumWorkingSetSize
Name
OSCreationClassName
OSName
OtherOperationCount
OtherTransferCount
PageFaults
PageFileUsage
ParentProcessId
PeakPageFileUsage
PeakVirtualSize
PeakWorkingSetSize
Priority
PrivatePageCount
ProcessId
QuotaNonPagedPoolUsage
QuotaPagedPoolUsage
QuotaPeakNonPagedPoolUsage
QuotaPeakPagedPoolUsage
ReadOperationCount
ReadTransferCount
SessionId
Status
TerminationDate
ThreadCount
UserModeTime
VirtualSize
WindowsVersion
WorkingSetSize
WriteOperationCount
WriteTransferCount