Prüfen ob Windows-Nutzer noch aktiv ist

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
HFlor
User
Beiträge: 8
Registriert: Samstag 8. Oktober 2016, 13:44

Hallo,

ich finde i.M. keinen Weg zu prüfen ob ein Nutzer noch aktiv angemeldet ist. Wenn es auf dem Rechner z.B. 3 Benutzer gibt, meldet sich Nutzer1 an und das Script läuft als Nutzer1 los (per Task). Nun meldet sich Nutzer2 an und Nutzer1 ist im Hintergrund.

Diesen Moment möchte ich im Script, welches als Nutzer1 läuft erkennen, damit es Pause macht.

Bei screeninfo ändert sich zwar die Abmessung der aktiven Bildschirme, aber die Rückkehr funktioniert nicht zuverlässig.

Kennt jemand einen anderen Weg?

Hardy
Benutzeravatar
noisefloor
User
Beiträge: 4272
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

auf der Windows Kommandozeile geht das mit `query session`:

Code: Alles auswählen

> query session
 SITZUNGSNAME      BENUTZERNAME    ID   STATUS    TYP   GERÄT
 services                                                         0    Getr.
>console                     nutzer1                      1    Aktiv
                                     nutzer2                      2    Getr
 
In der Statusspalte siehst du, welche Session gerade aktiv ist.

Mit

Code: Alles auswählen

>>> import os
>>> os.environ.get('Username')
nutzer1
bekommst du den Benutzernamen der aktiven Pythonumgebung. Wie sich das in im Hintergrund laufenden Skripten verhält weiß ich nicht.

Gruß, noisefloor
HFlor
User
Beiträge: 8
Registriert: Samstag 8. Oktober 2016, 13:44

Vielen Dank für den Tip.


Ich habe doch noch eine Lösung gefunden:

win32gui.GetForegroundWindow

gibt immer 0 zurück, wenn die Sitzung inaktiv ist.
Antworten