Ayant toujours trouvé une âme charitable sur ce forum pour me dépatouiller en cas de problème, à mon tour d'y contribuer.
Je vous propose un utilitaire bien modeste mais pratique.
Il permet :
- de verrouiller ou de fermer la session
- de redémarrer ou d'arrêter le PC
et ce, avec ou sans message de confirmation avant d'exécuter l'action.
Voici son code (sûrement perfectible hi hi hi) :
► Afficher le texte
Code : Tout sélectionner
; DESCRIPTIF SCRIPT
; MODELE DE SCRIPT : 2.19
; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Dim $script_titre, $script_desc, $auteur, $maj
$script_titre="BM'TOOLS"
$script_desc="Permet de verrouiller ou de fermer une session, de redémarrer ou d'arrêter le PC"
$auteur="BM"
$maj="25/02/2010"
; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
; INCLUDES
; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include<ButtonConstants.au3>
#include<GUIConstantsEx.au3>
#include<Process.au3>
#NoTrayIcon
; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Region ### START Koda GUI section ### Form=r:\scripts\autoit - scripts\bm'tools - arrêt et redémarrage\arret3.kxf
$Form1 = GUICreate("BM'Tools", 186, 194, -1, -1)
$MenuItem1 = GUICtrlCreateMenu("&Fichier")
$MenuQuitter = GUICtrlCreateMenuItem("Quitter", $MenuItem1)
$MenuItem2 = GUICtrlCreateMenu("?")
$MenuMail = GUICtrlCreateMenuItem("Contacter l'auteur", $MenuItem2)
$Menuweb = GUICtrlCreateMenuItem("Site web de l'auteur", $MenuItem2)
$MenuApropos = GUICtrlCreateMenuItem("A propos de...", $MenuItem2)
$Btn_logoff = GUICtrlCreateButton("VERROUILLER SESSION", 7, 24, 171, 30, $BS_FLAT)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetBkColor(-1, 0xFFFF00)
GUICtrlSetCursor (-1, 0)
$Btn_arret = GUICtrlCreateButton("ARRETER PC", 7, 133, 171, 30, $BS_FLAT)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetBkColor(-1, 0xFF0000)
GUICtrlSetCursor (-1, 0)
$Btn_redem = GUICtrlCreateButton("REDEMARRER PC", 7, 97, 171, 30, $BS_FLAT)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetBkColor(-1, 0x00FF00)
GUICtrlSetCursor (-1, 0)
$Case_confirm = GUICtrlCreateCheckbox("Sans confirmation", 70, 2, 108, 22)
$Btn_fermer = GUICtrlCreateButton("FERMER SESSION", 7, 61, 171, 30, $BS_FLAT)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetBkColor(-1, 0xFF9900)
GUICtrlSetCursor (-1, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
; ACTIVATION CONFIRMATION OU NON
; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
$reg_HKEY="HKEY_LOCAL_MACHINE\SOFTWARE\BMTOOLS\BMARRET"
;$reg_cle=DriveGetLabel(StringLeft(@ScriptDir, 3))
$reg_cle="Sans_Confirmation"
$reg_cle=StringRegExpReplace($reg_cle, " ", "")
$reg_type="REG_SZ"
$reg_val="0"
; Lire clé de registre
$lecture=RegRead($reg_HKEY,$reg_cle)
; Crée clé si n'existe pas
If $lecture=0 Then
$ecriture=RegWrite($reg_HKEY, $reg_cle, $reg_type , $reg_val)
EndIf
; Récup valeur clé registre
$reg_val=RegRead($reg_HKEY,$reg_cle)
;MsgBox(0,$reg_cle,$reg_val)
If $reg_val=1 Then
GUICtrlSetState($Case_confirm, $GUI_CHECKED)
EndIf
; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Dim $rep
Func _Confirmation($msg)
; Récup valeur clé registre
$reg_val=RegRead($reg_HKEY,$reg_cle)
;MsgBox(0,$reg_cle,$reg_val)
If $reg_val=0 Then
$rep_mgbox=MsgBox(4,$script_titre,$msg)
If $rep_mgbox==7 Then
$rep="NON"
Else
$rep="OUI"
EndIf
Else
$rep="OUI"
EndIf
Return $rep
EndFunc
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Case_confirm
$btn_etat = GUICtrlRead($Case_confirm)
if $btn_etat=1 Then
_Confirmation("Si vous cochez cette case, l'action sera exécutée sans message de confirmation." & @LF & "Confirmez-vous l'exécution directe SANS MESSAGE DE CONFIRMATION ?")
If $rep="OUI" Then
$ecriture=RegWrite($reg_HKEY, $reg_cle, $reg_type , "1")
Else
$ecriture=RegWrite($reg_HKEY, $reg_cle, $reg_type , "0")
GUICtrlSetState($Case_confirm, $GUI_UNCHECKED)
EndIf
Else
$ecriture=RegWrite($reg_HKEY, $reg_cle, $reg_type , "0")
EndIf
Case $MenuQuitter
Exit
Case $MenuMail
_RunDos("start http://www.bm.fr/contact/contact1.php?objet=Off")
Case $Menuweb
_RunDos("start http://www.bm.fr")
Case $MenuApropos
MsgBox(0,$script_titre,$script_desc & @LF & $auteur & " - v. " & $maj)
Case $Btn_logoff
_Confirmation("Voulez vous verrouiller la session ?")
If $rep="OUI" Then
Run("rundll32.exe user32.dll,LockWorkStation")
Exit
EndIf
Case $Btn_fermer
_Confirmation("Voulez vous fermer la session ?")
If $rep="OUI" Then
Run("shutdown.exe -l -t 0")
Exit
EndIf
Case $Btn_redem
_Confirmation("Voulez vous redémarrer le PC ?")
If $rep="OUI" Then
Shutdown (6)
EndIf
Case $Btn_arret
_Confirmation("Voulez vous arrêter le PC ?")
If $rep="OUI" Then
Shutdown (5)
EndIf
EndSwitch
WEnd
Amicalement.
BM