http://digilander.libero.it/Cenati

Spegnere, riavviare e bloccare il PC

home | e-mail e contatti | Introduzione al sito | Cosa e' e come imparare VbScript

 

 

 

 

 

Spegnere il computer

Avete scritto un programma e volete che il computer si spenga al suo termine? In questa pagina trovate alcuni metodi per terminare la sessione di Windows. Sono stati provati con XP e funzionano come descritto. Per altre versioni del sistema operativo è necessario testarne il funzionamento.

Potete aggiungere questo codice al termine di lunghe elaborazioni da lanciare al termine della giornata, in modo da poter lasciare incustodito il computer e sapere che si spegnerà da solo una volta terminato il suo compito.

Il primo esempio serve a bloccare il computer in modo da poter essere sbloccato inserendo la password (se prevista) oppure selezionando l'utente da riattivare. Utilizza una specifica chiamata alla libreria User32.

Il secondo esempio forza lo spegnimento del computer anche se ci sono applicazioni aperte.

Il terzo esempio è uguale al precedente, fatta eccezione per il parametro di Win32ShutDown. Con questa opzione, il comando cerca di chiudere correttamente le applicazioni ancora aperte. Questo può portare all'interruzione della chiusura nel caso un programma chieda una conferma o il salvataggio del proprio lavoro.

L'ultimo metodo usa semplicemente il comando Shutdown.exe fornito con Windows. Digitando Shutdown /? al prompt dei comandi vengono visualizzate anche alcune altre opzioni utili. Con questo comando possiamo bloccare la workstation, spegnere il computer e riavviarlo. Anche visualizzando un avviso con il tempo rimanente per i salvataggi prima di spegnere. La chiusura può essere forzante  e può anche essere preavvisata da un avviso personalizzato di, al massimo, 127 caratteri.

Il codice vbs è riportato qui sotto. E' sufficiente salvare la parte che interessa in un file con estensione .vbs e avviarlo con un doppio clic.

'------------------------------------------------------------------
' Blocco del computer. Bisogna reinserire la password (se prevista).
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.run ("%windir%\System32\rundll32.exe user32.dll,LockWorkStation")
'------------------------------------------------------------------
'Spegne il computer forzando la chiusura dei programmi aperti.
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}!\\" & _
strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
objOperatingSystem.Win32ShutDown(5)
Next
'------------------------------------------------------------------
'Spegne il computer chiedendo conferma per la chiusura delle applicazioni aperte.
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}!\\" & _
strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
objOperatingSystem.Win32Shutdown(1)
Next
'------------------------------------------------------------------
'Si può usare sempicemente il comando "shutdown" che prevede 'alcuni parametri per funzioni diverse.
'
' -s SHUTDOWN (spegne il computer)
' -r REBOOT (riavvia)
' -t (secondi di attesa prima dello spegnimento o riavvio)
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.run ("shutdown -s -t 0")

Giovanni Cenati

 

 

 

© Cenati Giovanni 2004/2010 - http://digilander.libero.it/Cenati - Reventlov at Katamail com

home | e-mail e contatti | Introduzione al sito | Cosa e' e come imparare VbScript