Använder InitiateSystemShutdown i en NT service och det fungerar bra om man är inloggad.
Är ingen inloggad så fungerar det inte, hur kan man lösa detta?
Testat på windows XP.
5 svar · 239 visningar · startad av jt
Använder InitiateSystemShutdown i en NT service och det fungerar bra om man är inloggad.
Är ingen inloggad så fungerar det inte, hur kan man lösa detta?
Testat på windows XP.
Svårt att svara på utan fler detaljer (kod).
1. Är du säker på att det är InitiateSystemShutdown som misslyckas? Det kan ju vara ett tidigare anrop som refererar till en resurs som inte är tillgänglig innan inloggning som misslyckas.
2. Om det är InitiateSystemShutdown som misslyckas, har du då provat att logga GetLastError för att se vad felet är.
3. Kvarstår problemet även om du anger bForceAppsClosed till true? Om maskinen är "locked" (ej samma sak som opåloggad) så måste man tex det.
4. Finns det nåt i event-loggen som ger en ledtråd?
5. Vad kör servicen som? System? (Borde iofs inte spela nån roll eftersom det funkar när du är påloggad.)
>1. Är du säker på att det är InitiateSystemShutdown som misslyckas? Det kan ju vara ett tidigare anrop som
Är inte säker på något men har försökt att fånga de fel som kan uppstå innan tex när privilege sätts.
InitiateSystemShutdown returnerar 0, altså det lyckades inte.
>2. Om det är InitiateSystemShutdown som misslyckas....
Jo, tror meddelandet var "The device is not ready".
Skriver till loggfil på divers ställen och koden verkar köras som tänkt.
Har sökt lite och det verkar som andra har haft liknande problem, är det någon som lyckats med detta?
Dåligt med tid nu återkommer till dina andra frågor.
>3. Kvarstår problemet ....
Samma problem.
>4. Finns det nåt i event-loggen som ger en ledtråd?
Inget som jag hittar.
>5. Vad kör servicen som? System?...
Som System.
Har själv aldrig använt InitiateSystemShutdown i en service och "The device is not ready" låter lagom diffust så jag har egentligen ingen aning.
Lite löst svammel:
1. Har du samma problem på alla maskiner eller bara på en?
2. Om Nej på 1: Har du provat att stänga ner lite andra servicar för att se vilken (om någon) som inte går med på avstängning/reboot?
3. Finns problemet bara på XP?
4. Har du provat nåt annat API? En möjlighet är ju att först kolla vad InitiateSystemShutdown returnerar. Om den returnerar 0 så drämmer man till med ExitWindowsEx(EWX_FORCE | EWX_REBOOT,NULL). Det är väl den lokala maskinen vi talar om?
Har testat på lite fler datorer och det funkar(2000 och XP).
Maskinen som har problemet använder XP embedded, antar att det beror på detta, konstigt att det fungerar när man är inloggad.
Låter nog problemet ligga och mogna lite får undersöka om det kan vara något som saknas i XPE installationen.
Tackar för hjälpen