Avant toute modification dans la Base de registre, il est recommandé de faire une sauvegarde de celle-ci.
Ce sujet est technique, les informations données ici touchent votre système, PC-ATI n’est pas tenu responsable des modifications que vous pourriez apporter. Il est donc conseillé de ne pas changer les paramètres du fichier REGUAC.au3
:: Conseil ; Avant toute manipulation effectuez une sauvegarde de votre registre. Utilisez Erunt, utilitaire pour une sauvegarde de votre registre.
:: Conseil ; Utilisez idéalement une machine virtuelle (VM) pour vos tests.
Ici nous allons voir comment construire un contrôle de compte d’utilisateur (UAC).
Je vais prendre pour l’exemple l’outil UAC-LEVEL.
La base de l’interface est faite rapidement avec Koda FormDesigner.
Pas de panique, vous allez voir ça roule tout seul si vous suivez les instructions (dans ce sujet vous avez tout le code).
Pour commencer il vous faut bien évidemment Scite (éditeur de texte (gratuit) multi plate-forme).
L’interface :
Un petit effet de style pour donner un plus de design.

Créer un répertoire :
Commencer par créer un répertoire nommé UAC-Level, ou comme vous voulez.
Dans ce nouveau répertoire nous allons stocker des fichiers .au3 pour la construction et l’exécution de l’outil (3 seulement).
Premier fichier :
Pour donner cette forme avec ces angles supérieurs arrondis et le dégradé de l’interface il faut utiliser certaines fonctions.
- La première servira à intégrer les arrondis des angles : _GuiRoundCorners ().
- Ensuite le dégradé de l’interface : GradientFill ().
- Array.au3 n’intègre plus sa fonction _ArrayCreate(), donc nous l’ajoutons.
Copier/coller ci-dessous les fonctions et coller celles-ci sous un fichier .au3 que vous nommerez CreatGui.au3. et ceci bien sur dans le répertoire crée : UAC-Level
Vous verrez plus tard cette include (#include <CreatGui.au3> ) est intégrer dans votre code source.
Code :
Func _GuiRoundCorners($h_win, $i_x1, $i_y1, $i_x3, $i_y3)
Dim $pos, $ret, $ret2
$pos = WinGetPos($h_win)
$ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "long", $i_x1, "long", $i_y1, "long", $pos[2], "long", $pos[3], "long", $i_x3, "long", $i_y3)
If $ret[0] Then
$ret2 = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $ret[0], "int", 1)
If $ret2[0] Then
Return 1
Else
Return 0
EndIf
Else
Return 0
EndIf
EndFunc
Func GradientFill($im, $x1, $y1, $width, $height, $left_color, $right_color)
Local $color0=($left_color[0]-$right_color[0])/$height
Local $color1=($left_color[1]-$right_color[1])/$height
$color2=($left_color[2]-$right_color[2])/$height
For $Y=0 to $height-1
$red=$left_color[0]-floor($Y*$color0)
$green=$left_color[1]-floor($Y*$color1)
$blue=$left_color[2]-floor($Y*$color2)
$col = Dec(Hex($blue,2) & Hex($green,2) & Hex($red,2))
GUICtrlSetGraphic($im,$GUI_GR_COLOR, $col)
GUICtrlSetGraphic($im,$GUI_GR_MOVE,0,$Y)
GUICtrlSetGraphic($im,$GUI_GR_LINE,$width,$Y)
Next
GUICtrlSetGraphic($im,$GUI_GR_COLOR, 0xFFFFFF)
GUICtrlSetGraphic($im,$GUI_GR_MOVE,0,$height)
GUICtrlSetGraphic($im,$GUI_GR_LINE, $width,$height)
GUICtrlSetGraphic($im,$GUI_GR_REFRESH)
EndFunc
Func _ArrayCreate($v_0, $v_1 = 0, $v_2 = 0, $v_3 = 0, $v_4 = 0, $v_5 = 0, $v_6 = 0, $v_7 = 0, $v_8 = 0, $v_9 = 0, $v_10 = 0, $v_11 = 0, $v_12 = 0, $v_13 = 0, $v_14 = 0, $v_15 = 0, $v_16 = 0, $v_17 = 0, $v_18 = 0, $v_19 = 0, $v_20 = 0)
Local $av_Array[21] = [$v_0, $v_1, $v_2, $v_3, $v_4, $v_5, $v_6, $v_7, $v_8, $v_9, $v_10, $v_11, $v_12, $v_13, $v_14, $v_15, $v_16, $v_17, $v_18, $v_19, $v_20]
ReDim $av_Array[@NumParams]
Return $av_Array
EndFunc ;==>_ArrayCreate
Voici votre premier fichier créé.
Deuxième fichier :
Créez un fichier nommé REGUAC.au3 dans le même répertoire.
Nous allons dans un premier temps déclarer des variables Global
Ensuite il faut déclarer les clés HKLM, HKCU, HKCR afin de travailler avec une version 64 ou 32 bits.
Puis différentes fonctions qui agissent sur le registre pour valider le niveau de sécurité.
Les noms des fonctions parlent d’eux même.
_VERIF_NIV_UAC()
On vérifie la position de la clé de registre System, les valeurs ConsentPromptBehaviorAdmin, EnableLUA, PromptOnSecureDesktop sont exploitées pour vérifier le niveau de l’UAC.
_VERIF_NIV_UAC_RAPP()
Vérifie et affiche le niveau
_UAC_NIV1()
On écrit les données pour le niveau 1.
_UAC_NIV2()
On écrit les données pour le niveau 2.
_UAC_NIV3()
On écrit les données pour le niveau 3.
_ACTIVUAC_VISTA()
On écrit les données pour activer l’UAC pour Vista (sous vista pas de niveau, soit la protection est activée soit désactivée).
_DESACTUAC()
On écrit les données pour désactiver l’UAC, niveau 0.
Code :
Global $MSG = @ComputerName & " - " & @UserName & " - " & @OSVersion & " - " & @OSARCH & @CRLF
Global $VarUAC = ''
Global $Input1
Global $Checkbox1, $Checkbox2, $Checkbox3, $Checkbox4, $Input1
Global $TEXTUAC = ''
Global $CPBA = ''
Global $ELUA = ''
Global $POSD = ''
Global $UACDN = ''
Global $UAC = ''
Global $UACT = ''
Global $HKLM = 'HKLM'
Global $HKCU = 'HKCU'
Global $HKCR = 'HKCR'
If @OSArch <> 'X86' Then
$HKLM = 'HKLM64'
$HKCR = 'HKCR64'
$HKCU = 'HKCU64'
EndIf
Func _VERIF_NIV_UAC()
If @OSVersion = "WIN_7" Or @OSVersion = "WIN_8" Or @OSVersion = "WIN_10" Then
If @OSArch <> 'X86' Then
$HKLM = 'HKLM64'
$HKCR = 'HKCR64'
$HKCU = 'HKCU64'
EndIf
$CPBA = RegRead($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "ConsentPromptBehaviorAdmin")
$ELUA = RegRead($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA")
$POSD = RegRead($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "PromptOnSecureDesktop")
If $CPBA = 0 And $ELUA = 0 And $POSD = 0 Then $UAC = $MSG & "Votre Contrôle de compte d'utilisateur est désactivé ! Niveau 0"
If $CPBA = 5 And $ELUA = 1 And $POSD = 0 Then $UAC = $MSG & "Votre Contrôle de compte d'utilisateur est activé ! Niveau 1"
If $CPBA = 5 And $ELUA = 1 And $POSD = 1 Then $UAC = $MSG & "Votre Contrôle de compte d'utilisateur est activé ! Niveau 2"
If $CPBA = 2 And $ELUA = 1 And $POSD = 1 Then $UAC = $MSG & "Votre Contrôle de compte d'utilisateur est activé ! Niveau 3"
$UACDN = RegRead($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
If $UACDN <> "" Then RegDelete($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
MsgBox (64, "UAC-LEVEL - Amesam", $UAC)
EndIf
If (@OSVersion = "WIN_VISTA") Then
$CPBA = RegRead($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA")
If $CPBA = 0 Then $UACT = $MSG & "Votre Contrôle de compte d'utilisateur est désactivé."
If $CPBA = 1 Then $UACT = $MSG & "Votre Contrôle de compte d'utilisateur est activé."
$UACDN = RegRead($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
If $UACDN <> "" Then RegDelete($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
MsgBox (64, "UAC-LEVEL - Amesam", $UAC)
EndIf
EndFunc
Func _VERIF_NIV_UAC_RAPP()
If @OSVersion = "WIN_7" Or @OSVersion = "WIN_8" Or @OSVersion = "WIN_10" Then
If @OSArch <> 'X86' Then
$HKLM = 'HKLM64'
$HKCR = 'HKCR64'
$HKCU = 'HKCU64'
EndIf
$CPBA = RegRead($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "ConsentPromptBehaviorAdmin")
$ELUA = RegRead($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA")
$POSD = RegRead($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "PromptOnSecureDesktop")
If $CPBA = 0 And $ELUA = 0 And $POSD = 0 Then $UAC = "0"
If $CPBA = 5 And $ELUA = 1 And $POSD = 0 Then $UAC = "1"
If $CPBA = 5 And $ELUA = 1 And $POSD = 1 Then $UAC = "2"
If $CPBA = 2 And $ELUA = 1 And $POSD = 1 Then $UAC = "3"
$UACDN = RegRead($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
If $UACDN <> "" Then RegDelete($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
GUICtrlSetData($Input1, $UAC)
EndIf
If (@OSVersion = "WIN_VISTA") Then
$CPBA = RegRead($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA")
If $CPBA = 0 Then $UACT = "0"
If $CPBA = 1 Then $UACT = "1"
$UACDN = RegRead($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
If $UACDN <> "" Then RegDelete($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
GUICtrlSetData($Input1, $UACT)
EndIf
EndFunc
Func _UAC_NIV1()
If @OSVersion = "WIN_7" Or @OSVersion = "WIN_8" Or @OSVersion = "WIN_10" Then
If @OSArch <> 'X86' Then
$HKLM = 'HKLM64'
$HKCR = 'HKCR64'
$HKCU = 'HKCU64'
EndIf
RegWrite($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "ConsentPromptBehaviorAdmin", "REG_DWORD", 5)
RegWrite($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA", "REG_DWORD", 1)
RegWrite($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "PromptOnSecureDesktop", "REG_DWORD", 0)
$UACDN = RegRead($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
If $UACDN <> "" Then RegDelete($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
GUICtrlSetData($Input1, $VarUAC)
EndIf
EndFunc
Func _UAC_NIV2()
If @OSVersion = "WIN_7" Or @OSVersion = "WIN_8" Or @OSVersion = "WIN_10" Then
If @OSArch <> 'X86' Then
$HKLM = 'HKLM64'
$HKCR = 'HKCR64'
$HKCU = 'HKCU64'
EndIf
RegWrite($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "ConsentPromptBehaviorAdmin", "REG_DWORD", 5)
RegWrite($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA", "REG_DWORD", 1)
RegWrite($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "PromptOnSecureDesktop", "REG_DWORD", 1)
$UACDN = RegRead($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
If $UACDN <> "" Then RegDelete($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
EndIf
EndFunc
Func _UAC_NIV3()
If @OSVersion = "WIN_7" Or @OSVersion = "WIN_8" Or @OSVersion = "WIN_10" Then
If @OSArch <> 'X86' Then
$HKLM = 'HKLM64'
$HKCR = 'HKCR64'
$HKCU = 'HKCU64'
EndIf
RegWrite($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "ConsentPromptBehaviorAdmin", "REG_DWORD", 2)
RegWrite($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA", "REG_DWORD", 1)
RegWrite($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "PromptOnSecureDesktop", "REG_DWORD", 1)
$UACDN = RegRead($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
If $UACDN <> "" Then RegDelete($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
EndIf
EndFunc
Func _ACTIVUAC_VISTA()
If @OSArch <> 'X86' Then
$HKLM = 'HKLM64'
$HKCR = 'HKCR64'
$HKCU = 'HKCU64'
EndIf
If (@OSVersion = "WIN_VISTA") Then
RegWrite($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA", "REG_DWORD", 1)
$UACDN = RegRead($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
If $UACDN <> "" Then RegDelete($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
EndIf
EndFunc
Func _DESACTUAC()
If @OSArch <> 'X86' Then
$HKLM = 'HKLM64'
$HKCR = 'HKCR64'
$HKCU = 'HKCU64'
EndIf
If @OSVersion = "WIN_7" Or @OSVersion = "WIN_8" Or @OSVersion = "WIN_10" Then
RegWrite($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "ConsentPromptBehaviorAdmin", "REG_DWORD", 0)
RegWrite($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA", "REG_DWORD", 0)
RegWrite($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "PromptOnSecureDesktop", "REG_DWORD", 0)
$UACDN = RegRead($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
If $UACDN <> "" Then RegDelete($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
EndIf
If (@OSVersion = "WIN_VISTA") Then
RegWrite($HKLM & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA", "REG_DWORD", 0)
$UACDN = RegRead($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
If $UACDN <> "" Then RegDelete($HKLM & "\SOFTWARE\Microsoft\Security Center", "UacDisableNotify")
EndIf
EndFunc
Troisième fichier :
Créez pour finir un fichier nommé UACLevel.au3
Pour commencer il faut les droits administrateur pour agir sur votre compte d’utilisateur ou sur un autre ordinateur, nous allons donc utiliser #RequireAdmin qui spécifie que le script en cours exige les droits d’administrateur complets pour fonctionner.
Ensuite vous trouverez ces lignes qui nous indiquent la compilation vers un exécutable.
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=chevalier-icone-8588.ico
#AutoIt3Wrapper_Compile_Both=y
#AutoIt3Wrapper_UseX64=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Pour compiler un script Autoit :
- Sous Scite cliquez sur l’onglet Outils
- Puis sélectionnez compilé (ou depuis votre répertoire (créé comme indiqué au début du sujet) UAC-Level et clique droit sur votre fichier source UAC-Level.au3).
- Vous pouvez configurer comme ci-dessous, avec deux versions .exe en 64 et 32 bits et ajouter un icone.

Sous votre répertoire UACLevel vous trouverez deux exécutables, UAC-LEVEL.exe et UAC-LEVEL_x64.exe.

Ensuite les includes :
#include <GUIConstantsEx.au3> ; Gestion de la GUI.
#include <StaticConstants.au3> ; Étiquette de contrôle GUI/styles statiques.
#include <WindowsConstants.au3>; Contrôle de style Windows.
#include <WinApi.au3> ; Les appels d’API Windows traduits pour les fonctions AutoIt.
#include <EditConstants.au3> ; Contrôle de la GUI.
#include <Array.au3> ; Fonctions de manipulation de tableaux.
; Includes crées pour ce script
#include <CreatGui.au3>
#include <REGUAC.au3>
Déclarations de variables :
Global $RBOX_EVENT_CLOSE = 1
Global $ROUNDES = 20, $LastHwnd = 0
Global $ARRAY_COLOR_TOP_MIN[3] = [ 36 ,65 ,142] , $ARRAY_COLOR_TOP_MAX[3] = [11 ,42 ,122]Local $hGui = RBoxCreate(« UAC-LEVEL By Amesam »,530,383)
Ensuite une boucle While où sera insérée le code de commande d’exécution du programme.
Puis une fonction pour gérer votre interface (GUI).
Code :
#RequireAdmin
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=chevalier-icone-8588.ico
#AutoIt3Wrapper_Compile_Both=y
#AutoIt3Wrapper_UseX64=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include-once
; #INDEX# =======================================================================================================================
; Title .........: UAC-LEVEL
; Description ...: Gestion du contrôle de compte d'utilisateur.
; Author(s) .....: Amesam
; ===============================================================================================================================
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <WinApi.au3>
#include <EditConstants.au3>
#include <Array.au3>
; Include crées pour ce script
#include <CreatGui.au3>
#include <REGUAC.au3>
; > Déclaration des variables
Global $RBOX_EVENT_CLOSE = 1
Global $ROUNDES = 20, $LastHwnd = 0
Global $ARRAY_COLOR_TOP_MIN[3] = [36 ,65 ,142] , $ARRAY_COLOR_TOP_MAX[3] = [11 ,42 ,122]
Local $hGui = RBoxCreate("UAC-LEVEL By Amesam",530,383)
While 1
If (@OSVersion = "WIN_VISTA") Then ; Vérification de l'os Vista
Msgbox(64, "", "Vous étes sous Windows Vista. Cliquer sur le niveau 0 pour désactiver l'UAC. Pour activer vous pouvez cliquer sur n'importe quel niveau. l'UAC Vista sera remis par défaut.")
EndIf ; Fin vérif Vista
CheckX($hGui,$RBOX_EVENT_CLOSE,"GuiCtrlSetColor("&$RBOX_EVENT_CLOSE&",0xA3A3A3)","GuiCtrlSetColor("&$RBOX_EVENT_CLOSE&",0xFFFFFF)"); Contrôle de la couleur de la croix pour quitter le script
Local $gMsg = GUIGetMsg() ; On attribu la variable à l'environnement
Switch $gMsg ; si la croix de fermeture est validé on ferme le script
Case $RBOX_EVENT_CLOSE, $GUI_EVENT_CLOSE ; si sélection de la case
Exit ; Action fermeture GUI
Case $Checkbox1 ; Mise à 0 UAC
guictrlsetstate($Checkbox2, $gui_unchecked); on réinitialise la sélection
guictrlsetstate($Checkbox3, $gui_unchecked)
guictrlsetstate($Checkbox4, $gui_unchecked)
GUICtrlSetData($Input1, "") ; on réinitialise le résultat
If @OSVersion = "WIN_XP" Or @OSVersion = "WIN_XPe" Or @OSVersion = "WIN_2000" Then ; Vérification de l'os
SplashTextOn("UAC-LEVEL - Amesam", @CRLF & " Version système non supportée", 180, 90) ; SplashTextOn, boite dialogue
Sleep(2000)
SplashOff()
Else
_DESACTUAC(); Désactivation UAC
_VERIF_NIV_UAC_RAPP(); Vérification du niveau
SplashTextOn("UAC-LEVEL : Contrôle du compte d'utilisateur", @CRLF & "UAC Désactivé !", 300, 90)
Sleep(2000)
SplashOff()
EndIf
Case $Checkbox2
guictrlsetstate($Checkbox1, $gui_unchecked)
guictrlsetstate($Checkbox3, $gui_unchecked)
guictrlsetstate($Checkbox4, $gui_unchecked)
GUICtrlSetData($Input1, "")
If @OSVersion = "WIN_XP" Or @OSVersion = "WIN_XPe" Or @OSVersion = "WIN_2000" Then
SplashTextOn("UAC-LEVEL - Amesam", @CRLF & " Version système non supportée", 180, 90)
Sleep(2000)
SplashOff()
Else
If (@OSVersion = "WIN_VISTA") Then
_ACTIVUAC_VISTA(); Activation de UAC pour Vista
Else
_UAC_NIV1() ; Sélection du niveau
_VERIF_NIV_UAC_RAPP()
SplashTextOn("UAC-LEVEL : Contrôle du compte d'utilisateur", @CRLF & "UAC Activé par défaut niveau 1 !", 300, 90)
Sleep(2000)
SplashOff()
EndIf
EndIf
Case $Checkbox3
guictrlsetstate($Checkbox1, $gui_unchecked)
guictrlsetstate($Checkbox2, $gui_unchecked)
guictrlsetstate($Checkbox4, $gui_unchecked)
GUICtrlSetData($Input1, "")
If @OSVersion = "WIN_XP" Or @OSVersion = "WIN_XPe" Or @OSVersion = "WIN_2000" Then
SplashTextOn("UAC-LEVEL - Amesam", @CRLF & " Version système non supportée", 180, 90)
Sleep(2000)
SplashOff()
Else
If (@OSVersion = "WIN_VISTA") Then
_ACTIVUAC_VISTA()
Else
_UAC_NIV2()
_VERIF_NIV_UAC_RAPP()
SplashTextOn("UAC-LEVEL : Contrôle du compte d'utilisateur", @CRLF & "UAC Activé par défaut niveau 2 !", 300, 90)
Sleep(2000)
SplashOff()
EndIf
EndIf
Case $Checkbox4
guictrlsetstate($Checkbox1, $gui_unchecked)
guictrlsetstate($Checkbox2, $gui_unchecked)
guictrlsetstate($Checkbox3, $gui_unchecked)
GUICtrlSetData($Input1, "")
If @OSVersion = "WIN_XP" Or @OSVersion = "WIN_XPe" Or @OSVersion = "WIN_2000" Then
SplashTextOn("UAC-LEVEL - Amesam", @CRLF & " Version système non supportée", 180, 90)
Sleep(2000)
SplashOff()
Else
If (@OSVersion = "WIN_VISTA") Then
_ACTIVUAC_VISTA()
Else
_UAC_NIV3()
_VERIF_NIV_UAC_RAPP()
SplashTextOn("UAC-LEVEL : Contrôle du compte d'utilisateur", @CRLF & "UAC Activé par défaut niveau 3 !", 300, 90)
Sleep(2000)
SplashOff()
EndIf
EndIf
EndSwitch
WEnd
Func CheckX($hGui, $CtrlID, $sCMD, $eCMD)
Local $cGui = GUIGetCursorInfo($hGui)
If Not IsArray($cGui) Then Return 0
if $LastHwnd <> $cGui[4] And $cGui[4] = $CtrlID Then Return Execute($sCMD) + Assign("LastHwnd",$cGui[4])
if $LastHwnd <> $cGui[4] Then Return Execute($eCMD) + Assign("LastHwnd",$cGui[4])
EndFunc
; Fonction GUI
Func RBoxCreate($Title,$width, $height ,$left=-1 ,$top=-1 ,$show=1)
Local $GUI = GUICreate($Title,$width,$height,$left,$top,$WS_POPUP)
Local $GCSF = GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
_GuiRoundCorners($GUI,0,0,$ROUNDES,$ROUNDES)
$RBOX_EVENT_CLOSE = GUICtrlCreateLabel('X',$width-20,3,25,25)
GUICtrlSetCursor($RBOX_EVENT_CLOSE,0)
GUICtrlSetBkColor($RBOX_EVENT_CLOSE,-2)
GUICtrlSetFont($RBOX_EVENT_CLOSE,15,800)
GUICtrlSetColor($RBOX_EVENT_CLOSE,0x555555)
Global $Label6 = GUICtrlCreateLabel("Niveau", 480, 50, 44, 17)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
Global $Input1 = GUICtrlCreateInput("", 480, 70, 41, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetBkColor($Input1, 0x000000)
GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
Global $Label1 = GUICtrlCreateLabel("Paramètres de contrôle de compte d'utilisateur ", 32, 45, 383, 24)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x999900)
Global $Checkbox1 = GUICtrlCreateCheckbox("Niveau 0 ", 32, 290, 97, 15)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetCursor (-1, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
Global $Checkbox2 = GUICtrlCreateCheckbox(" Niveau 1", 32, 220, 97, 15)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetCursor (-1, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
Global $Checkbox3 = GUICtrlCreateCheckbox(" Niveau 2", 32, 150, 97, 15)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetCursor (-1, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
Global $Checkbox4 = GUICtrlCreateCheckbox(" Niveau 3", 32, 80, 97, 15)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetCursor (-1, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
Global $Label2 = GUICtrlCreateLabel("- M'avertir uniquement quand des programmes tentent d'apporter des modifications à mon ordinateur (ne pas estomper mon bureau > pas de voile noir, ce qui signifie aussi que lorsque c'est vous qui modifiez des paramètres Windows, vous ne serez pas averti!", 32, 244, 496, 40)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
Global $Label3 = GUICtrlCreateLabel("- Ne jamais m'avertir quand des programmes tentent d'installer des logiciels ou d'apporter des modifications à mon ordinateur ou que je modifie des paramètres Windows.", 32, 320, 495, 41)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1, 0x000000)
Global $Label4 = GUICtrlCreateLabel("- Par défaut. M'avertir uniquement quand des programmes tentent d'apporter des modifications à mon ordinateur.", 32, 184, 473, 25)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
Global $Label5 = GUICtrlCreateLabel("- Toujours m'avertir quand des programmes tentent d'installer des logiciels ou d'apporter des modifications à mon ordinateur.", 32, 112, 494, 25)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUISetState(@SW_SHOW)
$Graphic = GUICtrlCreateGraphic (0, 0, 542, 1100)
GradientFill($Graphic, 0, 0, 585, 383, _ArrayCreate(50,10,50), _ArrayCreate(255,255,255));
GUICtrlSetState($Graphic,$Gui_DISABLE)
_VERIF_NIV_UAC_RAPP()
$Title &= " "
Local $hTitle = GUICtrlCreateLabel($Title,0,0,$width-20,26,$SS_CENTER,$GUI_WS_EX_PARENTDRAG)
GUICtrlSetFont($hTitle,17,400,0,"Consolas")
GUICtrlSetBkColor($hTitle,-2)
GUICtrlSetColor(-1, 0xFFFFFF)
Local $Graphic = GUICtrlCreateGraphic (0,0, $width, 25)
GUICtrlSetState($Graphic,$Gui_DISABLE)
GradientFill($Graphic, 0, 0, $width, 30, _ArrayCreate(0,0,0), _ArrayCreate(50,10,50))
_VERIF_NIV_UAC()
If $show = 1 Then GUISetState(@SW_SHOW,$GUI)
Return $GUI
EndFunc
Donc normalement si vous avez suivit les instructions vous voici avec trois fichiers sous votre répertoires UACLevel.

- Faites un clique droit et sélectionnez Compiler avec options

- Faites comme expliqué plus haut sur la sélection de la compilation et vous aurez vos deux exécutables, soit en 64 bits et 32 bits.

- Sous Scite appuyer sur la touche F5 pour exécuter le script.

Amesam Administrateur du site