Umgebungsvars und prog beenden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Glamdring
User
Beiträge: 104
Registriert: Sonntag 25. Mai 2003, 20:22
Wohnort: Freiburg i.B.
Kontaktdaten:

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
Dies ist ein Platzhalter, er steht am Ende jeder meiner Beiträge! Erst wenn ich einen vernünftigen Text gefunden habe wird sich das ändern!
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

welches OS?

Hans
Glamdring
User
Beiträge: 104
Registriert: Sonntag 25. Mai 2003, 20:22
Wohnort: Freiburg i.B.
Kontaktdaten:

Windoof XP
Dies ist ein Platzhalter, er steht am Ende jeder meiner Beiträge! Erst wenn ich einen vernünftigen Text gefunden habe wird sich das ändern!
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

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
Glamdring
User
Beiträge: 104
Registriert: Sonntag 25. Mai 2003, 20:22
Wohnort: Freiburg i.B.
Kontaktdaten:

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
Dies ist ein Platzhalter, er steht am Ende jeder meiner Beiträge! Erst wenn ich einen vernünftigen Text gefunden habe wird sich das ändern!
rAiNm4n
User
Beiträge: 19
Registriert: Mittwoch 4. Juni 2003, 11:30
Wohnort: Berlin

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]
bombing for freedom is like fucking for virginity
Glamdring
User
Beiträge: 104
Registriert: Sonntag 25. Mai 2003, 20:22
Wohnort: Freiburg i.B.
Kontaktdaten:

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
Dies ist ein Platzhalter, er steht am Ende jeder meiner Beiträge! Erst wenn ich einen vernünftigen Text gefunden habe wird sich das ändern!
rAiNm4n
User
Beiträge: 19
Registriert: Mittwoch 4. Juni 2003, 11:30
Wohnort: Berlin

ok, da steht, man soll die imports überprüfen, aber ich kann bei mir nichts Fehlerhaftes feststellen...
Funktioniert es denn bei dir?

cu
Chris
bombing for freedom is like fucking for virginity
Glamdring
User
Beiträge: 104
Registriert: Sonntag 25. Mai 2003, 20:22
Wohnort: Freiburg i.B.
Kontaktdaten:

Habs eben erst getestet, nö geht auch net.

Gruß
Glamdring
Dies ist ein Platzhalter, er steht am Ende jeder meiner Beiträge! Erst wenn ich einen vernünftigen Text gefunden habe wird sich das ändern!
NEBULA
User
Beiträge: 25
Registriert: Mittwoch 5. März 2003, 11:59
Wohnort: Kleve/NRW

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:

Code: Alles auswählen

For elem in result:
    print elem.ProcessId
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
Antworten