Windows Tasks ausgegeben.. ?
Hallöchen. Weiß jemand, wie ich mir unter Windows die aktuellen Tasks ausgeben lassen kann ? Ich möchte überprüen, ob ein Prgramm breits gestartet wurde oder nicht. Danke im Vorraus.
Das ist kein Hakenkreuz - Das ist das neue Python-Symbol!
Das tust du über prozesse, tasks sind die offenen fenster
http://mail.python.org/pipermail/python ... 01482.html
http://mail.python.org/pipermail/python ... 01482.html
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
;-)
Falls Du auf das pywin32- oder WMI-Modul verzichten willst, könnte auch folgender Code interessant sein, der mit Windows-Bordmitteln und der Python-Standardbibliothek funktionieren sollte:
Ausgabe z.B.:
Code: Alles auswählen
import subprocess as sp
def win_getprocessinfo(imagename=None):
"""
Return a list with information about running process(es).
imagename filter results by process name as string or None
The returned list is empty if there are no matching processes,
otherwise it contains dict(s) with the actual process information.
"""
processinfo = []
args = ['tasklist', '/FO', 'csv', '/NH']
if imagename:
args.extend(['/FI', 'IMAGENAME eq ' + imagename])
tasklist = sp.Popen(args, stdout=sp.PIPE)
for line in tasklist.communicate()[0].splitlines():
fields = line.strip('"').split('","')
if not imagename or fields[0].lower() == imagename.lower():
processinfo.append({'imagename': fields[0],
'pid': int(fields[1]),
'session_name': fields[2],
'session_no': int(fields[3]),
'memory_kb': int(fields[4].replace(',', '').replace('.', '')[:-2])})
return processinfo
if __name__ == '__main__':
from pprint import pprint
import os
import sys
if len(sys.argv) > 1:
for argv in sys.argv[1:]:
pprint(win_getprocessinfo(argv))
else:
pprint(win_getprocessinfo(os.path.basename(sys.executable)))
Code: Alles auswählen
>>> from pprint import pprint
>>> pprint(win_getprocessinfo('python.exe'))
[{'imagename': 'python.exe',
'memory_kb': 7108,
'pid': 4684,
'session_name': 'Console',
'session_no': 1}]
Das erste Beispiel ist super - Denn sogor ich kriege es ans laufen
Vielen dank dafür, Herr INFACT.
Das zweite hört sich sehr spannend an, allerdings bin ich zu doof dazu ^^ Ich hab mal folgendes Experiment versucht:
Kann mir jemand sagen, was dor Funktionen .extend und .Popen machen ? Und wie selbst ich so ein einfaches Beispiel hinkriege ? ^^

Das zweite hört sich sehr spannend an, allerdings bin ich zu doof dazu ^^ Ich hab mal folgendes Experiment versucht:
Code: Alles auswählen
Processname = "Pythonwin.exe"
Arguments = ['tasklist', '/FO', 'csv', '/NH'].extend(['/FI', 'IMAGENAME eq ' + Processname])
Processinfo = subprocess.Popen(Arguments, stdout=subprocess.PIPE)
Das ist kein Hakenkreuz - Das ist das neue Python-Symbol!
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Also ehrlich, die Dokumentation wirst du wohl noch selbst lesen können, oder?Bong-Jour hat geschrieben:Kann mir jemand sagen, was dor Funktionen .extend und .Popen machen ?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
@Leonidas: Ich glaube nicht, dass fhoech's Beispiel in der Documentation erklärt wird, also spar ich mir solchen Unsinn..
Weiß jemand, wie er auf
kommt ? Wo hat er die Parameter her ? Und wieso funktioniert es so nicht.. ?
Weiß jemand, wie er auf
Code: Alles auswählen
subprocess.Popen(['tasklist', '/FO', 'csv', '/NH', '/FI', 'IMAGENAME eq Pythonwin.exe'], stdout=subprocess.PIPE)
Das ist kein Hakenkreuz - Das ist das neue Python-Symbol!
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Nein, aber wie ``extend`` und ``Popen`` funktionieren. Und das hast du gefragt.Bong-Jour hat geschrieben:@Leonidas: Ich glaube nicht, dass fhoech's Beispiel in der Documentation erklärt wird, also spar ich mir solchen Unsinn..
Du Parameter hat er wohl aus der Online-Hilfe von Tasklist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Aber das steht doch in der Dokumentation.. ?!Nein, aber wie ``extend`` und ``Popen`` funktionieren. Und das hast du gefragt.


Ich dachte tasklist wär irgendein geheimer Konsolenbefehl, den nur Profis kennen und der bei help nicht aufgelistet wird ^^ Wenn ich dafür ein Programm installieren muss, bleib ich lieber bei dem ersten Besipiel. Danke alle für eure Hilfe =)
Das ist kein Hakenkreuz - Das ist das neue Python-Symbol!
Das ist ein "Programm" direkt von Microsoft, das man aber ganz einfach mitliefern kann, da es nur eine .exe ist und wesentlich viel weniger Speicher und Aufwand benötigt als pywin32 (außer pywin32 ist sowieso schon installiert).
Zusatz: Kann ich mir eigentlich auf diese Weise auch alle laufenden Programme anzeigen lassen ? Und eventuell ein paar Information über die Programme bekommen ? Zum Beispiel ob es grade auf der Taskleiste blinkt oder ähnliches.
Das ist kein Hakenkreuz - Das ist das neue Python-Symbol!
Tasklist scheint er auch zu erkennen. Es erscheint dann die Meldung framedyn.dll konnte nicht gefunden werden
Das ist kein Hakenkreuz - Das ist das neue Python-Symbol!