Stavo realizzando un programma che riavvia, spenge o logoffa il computer nel momento in cui viene fatto, ad una certa ora oppure aspettando un tot tempo (impostato dall'utente).
Per iniziare avevo scritto solamente il codice che riavvia (oltra naturalmente a quello di base che serve per le cose principali...), spenge o logoffa il PC nel momento in cui la "bomba" viene innescata, ma mentre facevo le prove ho notato che funzionava solo il logoff!!!
Se vi serve, il codice è questo:
(il progetto è formato da un form (naturalmente...), 2 frame (uno in cui sono contenuti le opzioni per scegliere se riavviare, logoffare o spengere e l'altro frame dove ci sono le opzioni per scegliere se l'opzione selezionata nell'altro frame va effettuata adesso, ad una certa ora o tra un tot di tempo) e due pulsanti (uno che "innesca la bomba" e l'altro che la "disinnesca")
opzione per scegliere di riavviare: optRiavvia;
opzione per scegliere di spengere: optSpegni;
opzione per scegliere di logoffare: optLogOff;
opzione per scegliere di impostare la "bomba" ad una certa ora: optOraAlle;
opzione per scegliere di impostare la "bomba" tra un tot. tempo: optOraTra;
opzione per scegliere di impostare la "bomba" adesso: optAdesso;
pulsante per "innescare la bomba": cmdInnesca;
pulsante per "disinnescare la bomba": cmdDisinnesca;
__________________________________________________ ____________________
Nella sezione dichiarazioni:
codice:
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Private Const EWX_LOGOFF = 0
Private Const EWX_SHUTDOWN = 1
Private Const EWX_REBOOT = 2
Private Const EWX_FORCE = 4
Dim X As Long
__________________________________________________ ____________________
Questo è il codice del pulsante per innescare la "bomba", ossia quando deve essere effettuata l'azione scelta dall'utente:
codice:
Private Sub cmdInnesca_Click()
On Error Resume Next
If optOraAdesso = True Then
If optLogOff.Value = True Then
X = ExitWindowsEx(EWX_LOGOFF, 0&)
End If
If optSpengi.Value = True Then
X = ExitWindowsEx(EWX_SHUTDOWN, 0&)
End If
If optRiavvia.Value = True Then
X = ExitWindowsEx(EWX_REBOOT, 0&)
End If
End If
End Sub
__________________________________________________ ___________________
Spero di essermi spiegato e che mi possiate aiutare!!!
Cordiali saluti
ScOrPiOn