Prova così:
Shell ("shutdown -s -t 0 -f")
Oppure, ancora meglio, utilizza le API di sistema così:
Dichiarazione in un modulo:
Private Declare Function ExitWindowsEx Lib "user32" _
(ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Nel form:
Dim usa As Long
usa=ExitWIndows(PARAMETRO)
Questi sono i parametri che puoi usare:
EWX_LOGOFF
EWX_SHUTDOWN
EWX_REBOOT
EWX_FORCE
EWX_POWEROFF
EWX_FORCEIFHUNG
ESEMPIO:
Dim usa As Long
private sub cmdSpegni_click()
usa=ExitWindowsEx(EWX_SHUTDOWN)
end sub
----------------------
Cmq non hai danneggiato nulla, la funzione shell avvia solo programmi, non modifica nulla...
Ti consiglio di utilizzare le API di sistema che vanno bene con tutti i sistemi winzozz.. (se sei sotto win98 la funzione shell(shutdown bla bla bla) non ti funzionerebbe poichè su windows98 sarebbe shell("C:\windows\rundll32.exe user,exitwindow") .....
Spero di essere stato chiaro.
Byez