SpyderHead
Lt. Junior Grade Pro
- Registriert
- Mai 2006
- Beiträge
- 430
Hallo zusammen,
ich knoble aktuell an folgendem Problem:
Seit dem letzten größeren Update von Windows 10 werden Autostart-Elemente anscheinend bereits ausgeführt, noch bevor sich ein Benutzer angemeldet hat. Im Prinzip eine gute Sache, nur habe ich ein Programm im Autostart, dass damit ein Problem hat.
Anfangs habe ich erst einmal einfach das Programm über eine Batch-Datei im Autostart gestartet und darin den Start um 10 Sek. verzögert, um Zeit zu haben mich anzumelden. Ich hätte aber gerne eine Möglichkeit den aktuell angemeldeten Benutzer abzufragen bzw. ob überhaupt einer angemeldet ist. Dadurch könnte ich das ganze sauber lösen und den Start des Programms erst ausführen, wenn sich auch jemand am PC angemeldet hat.
Mein erster Gedanke war es nun, einfach die Systemvariable %username% auszulesen. Leider steht in dieser aber bereits mein Benutzer drin, noch bevor ich mich überhaupt angemeldet habe.
Der zweite Gedanke war es, über "qwinsta" abzufragen, ob (m)ein Benutzer als Aktiv gekennzeichnet ist. Auch hier steht aber wieder mein Benutzer als Aktiv drin, noch bevor ich mich überhaupt angemeldet habe.
Hier mal die 3 Versionen meiner Batch-Datei.
Grundversion - nur Zeitverzögert:
Versuch 1 - Abfrage von %username%:
Versuch 2 - Abfrage mittels qwinsta:
Die Grundversion mit der Zeitverzögerung funktioniert, solange ich mich eben innerhalb von 10 Sekunden anmelde. Die Versuche 1 und 2 funktionieren leider nicht, da laut den zum Test eingebauten Anzeige-Infos mein Benutzer bereits als angemeldet angesehen wird, noch bevor er angemeldet ist.
Vielleicht hat hier ja noch jemand eine Idee, was ich machen könnte oder vielleicht sogar eine Lösung für mein Problem. Ich bin für jeden Tipp dankbar
ich knoble aktuell an folgendem Problem:
Seit dem letzten größeren Update von Windows 10 werden Autostart-Elemente anscheinend bereits ausgeführt, noch bevor sich ein Benutzer angemeldet hat. Im Prinzip eine gute Sache, nur habe ich ein Programm im Autostart, dass damit ein Problem hat.
Anfangs habe ich erst einmal einfach das Programm über eine Batch-Datei im Autostart gestartet und darin den Start um 10 Sek. verzögert, um Zeit zu haben mich anzumelden. Ich hätte aber gerne eine Möglichkeit den aktuell angemeldeten Benutzer abzufragen bzw. ob überhaupt einer angemeldet ist. Dadurch könnte ich das ganze sauber lösen und den Start des Programms erst ausführen, wenn sich auch jemand am PC angemeldet hat.
Mein erster Gedanke war es nun, einfach die Systemvariable %username% auszulesen. Leider steht in dieser aber bereits mein Benutzer drin, noch bevor ich mich überhaupt angemeldet habe.
Der zweite Gedanke war es, über "qwinsta" abzufragen, ob (m)ein Benutzer als Aktiv gekennzeichnet ist. Auch hier steht aber wieder mein Benutzer als Aktiv drin, noch bevor ich mich überhaupt angemeldet habe.
Hier mal die 3 Versionen meiner Batch-Datei.
Grundversion - nur Zeitverzögert:
Code:
@echo Off
echo Off
*** Starte CMCC ***
c:
cd\
cd "C:\Program Files (x86)\CH Products"
ping localhost -n 11 >NUL
start CMCtlCtr.exe
Versuch 1 - Abfrage von %username%:
Code:
@echo Off & setlocal ENABLEDELAYEDEXPANSION
echo Off
echo *** Warte auf angemeldeten Benutzer ***
:wait
if %username% NEQ SpyderHead (
goto :wait
)
REM ### Nur als Anzeige-Info für Test
echo %username%
REM ### Nur als Anzeige-Info für Test
echo *** Angemeldeten Benutzer erkannt. Starte CMCC ***
c:
cd\
cd "C:\Program Files (x86)\CH Products"
ping localhost -n 4 >NUL
start CMCtlCtr.exe
Versuch 2 - Abfrage mittels qwinsta:
Code:
@echo Off & setlocal ENABLEDELAYEDEXPANSION
echo Off
set cntactive=0
echo *** Warte auf angemeldeten Benutzer ***
:wait
for /f "tokens=1,2,3" %%k IN ('qwinsta /server:localhost ^| findstr "Aktiv"') DO @(
REM ### Nur als Anzeige-Info für Test
qwinsta /server:localhost
REM ### Nur als Anzeige-Info für Test
set /a cntactive +=1
)
if !cntactive! leq 0 (
REM ### Nur als Anzeige-Info für Test
echo .
REM ### Nur als Anzeige-Info für Test
ping localhost -n 2 >NUL
goto :wait
)
echo *** Angemeldeten Benutzer erkannt. Starte CMCC ***
c:
cd\
cd "C:\Program Files (x86)\CH Products"
ping localhost -n 4 >NUL
start CMCtlCtr.exe
Die Grundversion mit der Zeitverzögerung funktioniert, solange ich mich eben innerhalb von 10 Sekunden anmelde. Die Versuche 1 und 2 funktionieren leider nicht, da laut den zum Test eingebauten Anzeige-Infos mein Benutzer bereits als angemeldet angesehen wird, noch bevor er angemeldet ist.
Vielleicht hat hier ja noch jemand eine Idee, was ich machen könnte oder vielleicht sogar eine Lösung für mein Problem. Ich bin für jeden Tipp dankbar