- Offizieller Beitrag
Von Hand kann ich problemlos in der Konsole "query user" eingeben und die entsprechenden Ergebnisse ablesen.
Bei mir z.B.
BugFix@BUGFIX-VAIO C:\Users\BugFix
> query user
BENUTZERNAME SITZUNGSNAME ID STATUS LEERLAUF ANMELDEZEIT
>bugfix console 1 Aktiv Kein 19.04.2018 17:35
Das wollte ich nun gern in ein Skript integrieren, jedoch ohne Erfolg.
Hier meine Versuche - testet mal bitte, ob es bei euch funktioniert:
AutoIt
; ======================================================================================= VARIANTE 1
Local $iPID = Run(@ComSpec & " /c query user", @SystemDir, @SW_HIDE, 2) ; 2 = $STDOUT_CHILD
; auch getestet:
;~ Local $iPID = Run(@ComSpec & " /c 'query user'", @SystemDir, @SW_HIDE, 2)
Local $sOutput = ""
While 1
$sOutput &= StdoutRead($iPID)
If @error Then ExitLoop
WEnd
ConsoleWrite("@@ Debug line [ $sOutput ]" & @LF & $sOutput & @LF)
#cs FEHLERMELDUNG ( bei " /c query user" und ebenso bei " /c 'query user'" )
Der Befehl "query" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
#ce
; ==================================================================================================
; ======================================================================================= VARIANTE 2
Local $iPID = Run(@SystemDir & "\cmd.exe", @SystemDir, @SW_HIDE, 1+2) ; 1=$STDIN_CHILD / 2=$STDOUT_CHILD
StdinWrite($iPID, "query user")
If @error Then ConsoleWrite("@error StdinWrite !" & @LF)
StdinWrite($iPID)
Local $sOutput = ""
While 1
$sOutput &= StdoutRead($iPID)
If @error Then ExitLoop
WEnd
ConsoleWrite("@@ Debug line [ $sOutput ]" & @LF & $sOutput & @LF)
#cs OUTPUT
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Alle Rechte vorbehalten.
C:\Windows\SysWOW64>Mehr?
#ce
; ==================================================================================================
Alles anzeigen
Irgendwelche Ideen?