Ciao p73!
Se vuoi puoi usare questa funzione (i Flags sono commentati):
codice:
Const EWX_LOGOFF = 0 'Termina tutti i processi e poi fa il log off.
Const EWX_SHUTDOWN = 1 'Spegne il sistema.
Const EWX_REBOOT = 2 'fa il reboot del sistema.
Const EWX_FORCE = 4 ' Forza a essere terminati tutti i processi che non rispondono.
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
'-----------------------------------------------------------------
Private Sub Form_Load()
msg = MsgBox("Il programma sta per riavviare il sistema !!! Premere OK per continuare , Annulla per non Riavviare!!!", vbCritical + vbOKCancel + 256, App.Title)
If msg = vbCancel Then End
ret& = ExitWindowsEx(EWX_FORCE Or EWX_REBOOT, 0)
End Sub
'-----------------------------------------------------------------
'Funzione: ExitWindowsEx
'PIATTAFORMA: Win 95/98, Win NT
'La Funzione ExitWindowsEx ARRESTA O RIAVVIA IL COMPUTER DELL'UTENTE.
'Se avviene un errore, la funzione restituisce 0 altrimenti 1.
'uFlags
'Uno o più dei seguenti flags per definire come avviene il riavvio o l'arresto
'del sistema:
'EWX_FORCE = 4
'Forza la chiusura di una applicazione, ...senza chiedere il permesso all'utente,
'(non mostra la dialog box dove confermarne la chiusura).
'Quando questo flag è settato, Windows non trasmette il messaggio
'WM_QUERYENDSESSION e WM_ENDSESSION all'applicazione in corso, e ciò potrebbe causare
'la perdita di dati.
'Pertanto questo flag, andrebbe utilizzato solo in condizioni di emergenza
'EWX_LOGOFF = 0
'Taglia fuori l'utente e gli chiude tutti i processi in corso.
'EWX_POWEROFF = 8
'Chiude il sistema , è se questo è supportato dalle caratteristiche POWER-OFF
'spegne il computer.
'EWX_REBOOT = 2
'Riavvia il sistema.
'EWX_SHUTDOWN = 1
'Chiude il sistema nel momento in cui è sicuro che i processi in corso siano
'terminati.
'dwReserved
'Riservato per versioni future di Windows. Settarlo sempre a zero.
'----------------------------------------------------------------------------
'OSSERVAZIONI
'La funzione ExitWindowsEx ritorna nel momento in cui ha inizio lo shutdown
'La chiusura ed il logoff, quindi procedono asincronicamente.
'Durante queste operazioni, le applicazioni che si stanno chiudendo
'hanno un tempo per rispondere alla richiesta di shutdown.
'Se questo tempo scade, Windows mostra una dialog box che abilita l'utente
'a forzare la chiusura dell'applicazione, oppure ad annullare l'evento.