Newsgroup: it.comp.lang.visual-basic
Titolo: Per tutti coloro che vogliono codice per riavviare Windows

Come promesso tempo fa mi sono ricordato di postare questo codice :)
Funziona sia su Win9x/Me che su WinNT/2000 e copre tutti i possibili
modi per chiudere Windows.
============================
Copiate quanto segue in un modulo .bas:
============================
Option Explicit
Private Type LUID
    UsedPart As Long
    IgnoredForNowHigh32BitPart As Long
End Type
Private Type TOKEN_PRIVILEGES
    PrivilegeCount As Long
    TheLuid As LUID
    Attributes As Long
End Type
Public Enum ewShutDownMode
    ewLogOff = 0&
    ewShutDown = 1&
    ewReboot = 2&
    ewPowerOff = 8&
    ewForcedLogOff = 0& Or 4&
    ewForcedShutdown = 1& Or 4&
    ewForcedReboot = 2& Or 4&
    ewForcedPowerOff = 8& Or 4&
End Enum
Private Declare Function ExitWindowsEx Lib "user32" (ByVal dwOptions As
Long, ByVal dwReserved As Long) As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function OpenProcessToken Lib "advapi32" (ByVal
ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As
Long
Private Declare Function LookupPrivilegeValue Lib "advapi32" Alias
"LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As
String, lpLuid As LUID) As Long
Private Declare Function AdjustTokenPrivileges Lib "advapi32" (ByVal
TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As
TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As
TOKEN_PRIVILEGES, ReturnLength As Long) As Long
'Chiude Windows
'Ritorna 0 se fallisce
Public Function ShutDownWindows(ByVal Mode As ewShutDownMode) As Long
    Const TOKEN_ADJUST_PRIVILEGES = &H20
    Const TOKEN_QUERY = &H8
    Const SE_PRIVILEGE_ENABLED = &H2
    Dim hdlProcessHandle As Long
    Dim hdlTokenHandle As Long
    Dim tmpLuid As LUID
    Dim tkp As TOKEN_PRIVILEGES
    Dim tkpNewButIgnored As TOKEN_PRIVILEGES
    Dim lBufferNeeded As Long
    hdlProcessHandle = GetCurrentProcess()
    OpenProcessToken hdlProcessHandle, (TOKEN_ADJUST_PRIVILEGES Or
TOKEN_QUERY), hdlTokenHandle
    LookupPrivilegeValue "", "SeShutdownPrivilege", tmpLuid
    tkp.PrivilegeCount = 1
    tkp.TheLuid = tmpLuid
    tkp.Attributes = SE_PRIVILEGE_ENABLED
    AdjustTokenPrivileges hdlTokenHandle, False, tkp, Len(tkpNewButIgnored),
tkpNewButIgnored, lBufferNeeded
    ShutDownWindows = ExitWindowsEx(Mode, &HFFFF)
End Function

 wrote in message
news:YkzP5.43085$BF.15...@news.infostrada.it...

Grazie per il codice, anche in considerazione che oggi e' domenica (seppur
umida e freddina).
Ciao
Aldo

 umida e freddina).
Eheheh... l'ho fatto perchč l'avevo promesso una settimana fa e pure per
festeggiare adeguatamente il fatto di essere stato inserito tra i beta
tester ufficiali di Visual Studio.NET :)
Byee
Zeross

 tester ufficiali di Visual Studio.NET :)
wow ! complimenti !
e grazie per il codice !

 wrote in message


tester ufficiali di Visual Studio.NET :)
Grande!!! Complimentoni!!!!
ma... i SP come si chiameranno? Visual Studio.bug? :-PP
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.morenosoft.com/MSVBSite/
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------

 e grazie per il codice !
Ah pal, se non hai letto prima l'altra mail, leggila, poi, se mi invii il
DB, prima mettici dentro anche questa faq.. ...
hehehe.. . .  sono bastardo dentro heheheheeeee  >8-P
Ciao
Ettore Maronese
http://www.maronese.com/mes
Sito Comune
http://www.murialdo.it/it_lang_vb

 Zeross
Facci sapere dettagli su 'sto Studio NET
ciao



 ha scritto nel messaggio
news:3A12D649...@nospam.it...


