Cet outil pour AutoIt vous permet de construire votre Gui. Vous pouvez agir sur les dimensions, les couleurs, la police, le nom de vos boutons, vos labels.. mais aussi le nom de vos variables …
Koda(FormDesigner) se trouve dans Scite, via le menu Outils ou avec les touche Alt+M
Dans ce tuto nous allons voir les bases car cet outil offre beaucoup de possibilités.
Présentation de l’outil Koda FormDesigner
Dans la partie centrale nous voyons Form1, ceci est la GUI, votre interface. Nous allons donc construire cette GUI.
Par défaut Koda est en Anglais on peut le passer en Français. Pour cela cliquer sur Options ou les touche Ctrl+K, puis dans Langage sélectionner Français.
Pour les reste des options elles sont par défaut bien réglées, vous pouvez tout de même sous la partie Barre d’outils adapter et la modifier selon vos besoins.
J’ai fait un exemple en vidéo, interface simple mais c’est un exemple pour montrer qu’en quelques minutes on peut se faire une petite GUI.
– Il nous reste à saisir nos actions attribuer aux variables de la GUI. La partie la plus complexe
Commençons par la partie supérieur de l’outil qui nous offre plusieurs possibilités pour construire sa GUI.
– Dans la partie supérieur de la fenêtre vous avez les onglets Standard, Additional, Win32 et Custom, vous trouverez les différents objets disponibles pour la création de votre fenêtre.
Dans la partie supérieur gauche vous avez des icônes avec une flèche verte; La petite flèche verte va vous permettre de générer le code que vous pourrez coller dans un script et pour la grosse flèche, lancer l’interface graphique afin de voir le résultat graphique. Vous pouvez voir aussi les autres icônes ouvrir des projets ou enregistrer.
– La fenêtre de droite Form List contient la liste de toutes les fenêtres qui aurait pu être crées pour votre projet. Elles peuvent être multiples.
– Dans la partie gauche, vous trouverez une fenêtre Object TreeView. Cette fenêtre contient la liste des objets (graphique ou non) de la GUI en cours de traitement, par exemple ici les groupes de projet.
Ci-dessous, ce nomme Object Inspector, qui vous donne l’ accès à presque tout les éléments de contrôle d’un objet. A partir de cette fenêtre, vous pouvez en fonction de l’objet régler la taille, la position, le nom, le contenu, la couleur … Dans la partie inférieure, des onglets : Properties, Styles et ExStyles avec qui vous pouvez régler d’autres éléments de l’objet.
Voici une présentation simple mais qui vous permettra d’apprivoiser cet outil qui est pour tout simplement génial.
Voici quelques exemple de GUI que l’on peut construire (Attention certaines des interfaces ci-dessous demande plus que Koda) :
Tutoriel sur les outils : – CodeWizard
– Tidy
– SciTEConfig
– Koda
– Scite Jump
– Open Include
– OrganizeIncludes
Les raccourcis clavier de Scite4AutoIt3
Scite4AutoIt3.exe est un éditeur de texte (gratuit) multi plate-forme. SciTE4AutoIt3 contient SciTE et ceci dans un seul programme d’ installation avec tous les réglages et options : AutoIt3Wrapper , SciTEConfig ,CodeWizard, Tidy, etc…
Le Lexer personnalisé pour AutoIt3 gère la coloration syntaxique et le pliage de code.
Les outils
La liste complète par défaut est longue nous allons voir ici quelques exemples.
Modification de la liste sous SciTe Config > Tools Sélection
Pour commencer surement un indispensable
CodeWizard
Menu Outils ou Alt+W
Permet de créer une MsgBox, un ToolTip, ou un InputBox à mot de passe, etc … CodeWizard va vous faciliter la tâche.
Message Box : Affiche une simple boîte de message, avec temporisation optionnelle.
Input Box : Affiche une boîte de saisie pour demander à l’utilisateur de saisir une chaîne.
ToolTip : Crée une info-bulle n’importe où sur l’écran.
SplashText : Crée une fenêtre de texte popup personnalisable.
SplashImage : Crée une fenêtre d’image popup personnalisable.
GUISetBkColor : Définit la couleur de fond de la fenêtre GUI.
GUICtrlSetColor : Définit la couleur du texte d’un contrôle.
GUICtrlSetBkColor : Définit la couleur de fond d’un contrôle.
GUICtrlSetFont : Définit la police d’un contrôle.
GUICtrlSetCursor : Définit l’icône du curseur de la souris pour un contrôle particulier.
– MsgBox (Boite de message) pour afficher une information ou confirmer une action.
Cliquer sur Copy 2 SciTE pour afficher le code
InputBox permet de saisir une valeur au clavier.
ToolTip (Infobulle)message qui apparaît lors du passage du pointeur de la souris
Splash Text Crée une fenêtre de texte personnalisable.
Splash Image Crée une fenêtre d’image popup personnalisable
Ensuite nous avons deux onglets qui nous permettent de gérer les couleurs et pointeur.
Tidy AutoIt Source
Menu Outils ou Ctrl+T
Soit via le menu Outils ou Ctrl+T
Il permet de contrôler, nettoyer et de bien présenter votre script.
– Lien
– Nettoie l’indentation.
– Change toutes les fonctions / Mots-clés / Macros comme dans les fichiers de configuration.
– Toutes les fonctions de l’utilisateur et toutes les définitions Func dans le script sont chargés dans la table des fonctions.
– Normalise tous les noms de variables en majuscules, minuscules ou majuscules à la première déclaration / événement.
– Ajoute un espace ou supprimer des espaces supplémentaires autour des opérateurs / mots-clés / fonctions.
– Retire les lignes vides.
– Retire les espaces de fin.
– Ajoute le nom de la fonction comme un commentaire après EndFunc (fin de la fonction).
– Génère un fichier de documentation avec la logique du programme et des rapports Xref pour les variables et UDF.
– Vérifie les erreurs de codage comme manquant EndIf / WEnd ou la définition d’un Func intérieur d’une boucle.
– Trier tous les blocs Func-EndFunc dans l’ordre alphabétique limité par # règion- blocs # de endRegion si utilisés
Pour l’exemple j’ai pris deux fonctions et j’ai mis un peu la bazar :III
Avant le passage de Tidy
Après avoir cliqué sur Tidy
SciTEConfig
Menu Outils ou Ctrl+1
L’utilitaire a 5 onglets qui permettent le réglage de diverses options dans SciTE4AutoIt3:
– Onglet General 1
Explorateur AU3 Paramètres fichier:
Lors de l’installation Autoit il y a une option soit : Exécuter ou modifier les fichiers .au3. Cela vous permet de modifier cette option. Stratégie de sauvegarde:
SciTE peut conserver des copies de sauvegarde de votre script chaque fois que vous modifiez et enregistrez puis, exécutez ou compilez – si vous avez plus d’un, ils sont nommés « filename_old1.au3 « , « filename_old2.au3 « , « filename_old3.au3 » etc… . Paramètres du dossier AutoIt3:
Le chemin de l’installation de AutoIt est affiché. L’entrée vous permet de définir un utilisateur pour les UFD inclus. AutoIt Script de la police:
Utilisez ces options pour sélectionner la police utilisée – la valeur par défaut est de 10pt. Divers:
Auto-Propercase qui modifiera la capitalisation (écriture) des mots-clés dans le script pour correspondre à celui défini dans les fichiers de configuration.
– Onglet General 2
Erreurs Inline:
Définissez la couleur pour les erreurs de surbrillance et les avertissements de Au3Check – et si elles doivent apparaître. Mot courant Highlight:
Définissez si SciTE mettra en évidence toutes les occurrences du texte sélectionné. D’autres options permettent au texte d’être étroitement défini avec la couleur de surbrillance. Fonction CallTip et Paramètre Highlight:
Lors de la saisie des paramètres pour une fonction, SciTE affiche les paramètres pertinents et mettre en évidence la prochaine requise. La position et la couleur de ce calltip peuvent être modifiés.
– Onglet Éditeur de couleurs
Sur cet onglet, vous pouvez sélectionner les couleurs que l’éditeur SciTE utilisera pour différents éléments de votre code. Les nouvelles couleurs sont appliquées immédiatement.
– Onglet Sélection Outils
Par défaut, tous les outils sont affichés dans le menu Outils. Décocher une case pour masquer l’entrée de cet outil dans le menu.
– Onglet Autres outils
– Les deux premiers outils gèrent les abréviations et les appels des appels UDF.
– Le troisième outil extrait les paramètres spécifiques de registre de AutoIt pour aider dans le débogage des problèmes de configuration.
– Les deux derniers ouvre les fichiers .ini cités.
Cet outil est très utile dans la construction d’un code si celui-ci s’avère important. Il va nous aider à naviguer plus facilement (par exemple vous avez un code de 1000 lignes), vous pouvez ajouter des commentaires pour vous repérer dans votre code et aller facilement (1 clic) au commentaire sélectionné.
Via la petite flèche en haut à gauche vous pouvez créer également vos includes et agir sur les paramètres de Scite Jump.
Open Include
Menu Outils ou Alt+I
Ici il faut sélectionner l’include désirée et appuyer sur les touches Alt+I. Exemple nous voulons savoir ce que contient #include « MsgBoxConstants.au3 » donc on sélectionne par un clique sur la ligne puis on enfonce les touches Alt+I et un nouvel onglet s’ouvre avec le contenu
Exemple :
#include-once
; #INDEX# =======================================================================================================================
; Title .........: MsgBox_Constants
; AutoIt Version : 3.3.14.2
; Language ......: English
; Description ...: Constants to be included in an AutoIt v3 script when using functionMsgBox.
; Author(s) .....: guinness, jpm
; ===============================================================================================================================
; #CONSTANTS# ===================================================================================================================
; Message Box Constants
; Indicates the buttons displayed in the message box
GlobalConst $MB_OK = 0 ; One push button: OK
GlobalConst $MB_OKCANCEL = 1 ; Two push buttons: OK and Cancel
GlobalConst $MB_ABORTRETRYIGNORE = 2 ; Three push buttons: Abort, Retry, and Ignore
GlobalConst $MB_YESNOCANCEL = 3 ; Three push buttons: Yes, No, and Cancel
GlobalConst $MB_YESNO = 4 ; Two push buttons: Yes and No
GlobalConst $MB_RETRYCANCEL = 5 ; Two push buttons: Retry and Cancel
GlobalConst $MB_CANCELTRYCONTINUE = 6 ; Three buttons: Cancel, Try Again andContinueGlobalConst $MB_HELP = 0x4000 ; Adds a Help button to the message box. When the user clicks the Help button or presses F1, the system sends a WM_HELP message to the owner.
; Displays an icon in the message box
GlobalConst $MB_ICONSTOP = 16 ; Stop-sign icon
GlobalConst $MB_ICONERROR = 16 ; Stop-sign icon
GlobalConst $MB_ICONHAND = 16 ; Stop-sign icon
GlobalConst $MB_ICONQUESTION = 32 ; Question-mark icon
GlobalConst $MB_ICONEXCLAMATION = 48 ; Exclamation-point icon
GlobalConst $MB_ICONWARNING = 48 ; Exclamation-point icon
GlobalConst $MB_ICONINFORMATION = 64 ; Icon consisting of an 'i' in a circle
GlobalConst $MB_ICONASTERISK = 64 ; Icon consisting of an 'i' in a circle
GlobalConst $MB_USERICON = 0x00000080
; Indicates the default button
GlobalConst $MB_DEFBUTTON1 = 0 ; The first button is the default button
GlobalConst $MB_DEFBUTTON2 = 256 ; The second button is the default button
GlobalConst $MB_DEFBUTTON3 = 512 ; The third button is the default button
GlobalConst $MB_DEFBUTTON4 = 768 ; The fourth button is the default button.
; Indicates the modality of the dialog box
GlobalConst $MB_APPLMODAL = 0 ; Application modal
GlobalConst $MB_SYSTEMMODAL = 4096 ; System modal
GlobalConst $MB_TASKMODAL = 8192 ; Task modal
; Indicates miscellaneous message box attributes
GlobalConst $MB_DEFAULT_DESKTOP_ONLY = 0x00020000 ; Same as desktop of the interactive window station
GlobalConst $MB_RIGHT = 0x00080000 ; The text is right-justified.
GlobalConst $MB_RTLREADING = 0x00100000 ; Displays message and caption text using right-to-left reading order on Hebrew and Arabic systems.
GlobalConst $MB_SETFOREGROUND = 0x00010000 ; The message box becomes the foreground window
GlobalConst $MB_TOPMOST = 0x00040000 ; The message box is created with the WS_EX_TOPMOST window style.
GlobalConst $MB_SERVICE_NOTIFICATION = 0x00200000 ; The caller is a service notifying the user of an event.
GlobalConst $MB_RIGHTJUSTIFIED = $MB_RIGHT ; Do not use, see $MB_RIGHT. Includedforbackwardscompatibility.
; Indicates the button selected in the message box
GlobalConst $IDTIMEOUT = -1 ; The message box timed out
GlobalConst $IDOK = 1 ; OK button was selected
GlobalConst $IDCANCEL = 2 ; Cancel button was selected
GlobalConst $IDABORT = 3 ; Abort button was selected
GlobalConst $IDRETRY = 4 ; Retry button was selected
GlobalConst $IDIGNORE = 5 ; Ignore button was selected
GlobalConst $IDYES = 6 ; Yes button was selected
GlobalConst $IDNO = 7 ; No button was selected
GlobalConst $IDCLOSE = 8 ; Close button was selected
GlobalConst $IDHELP = 9 ; Help button was selected
GlobalConst $IDTRYAGAIN = 10 ; Try Again button was selected
GlobalConst $IDCONTINUE = 11 ; Continue button was selected
; ===============================================================================================================================
OrganizeIncludes
Menu Outils ou Ctrl+Shift+Alt+I
Cet outil peut être utile quand on débute avec AutoIt (quoique… ;D)
Vous créez par exemple cette ligne
MsgBox($MB_ICONWARNING, « Mon titre », « Cette boîte de message sera fermée après 10 secondes ou si le bouton OK est préssé avant. », 10)
Si vous faites F5 pour exécuter vous aurez une erreur du à la variable $MB_ICONWARNING qui dans l’include a comme valeur 48.
Vous pouvez remarquer que la ligne à été désactiver du code avec la touche moins du pavet numérique.
Cette erreur indique que la variable n’est pas déclaré, il faut dans ce cas inclure cette include pour valider la variable dans le script en cours.
(vous aurez donc compris que si vous remplacez $MB_ICONWARNING par 48 vous n’aurez pas ce soucis de déclaration (voir ci-dessus l’extraction « Open Include » )
Quand vous faites appel à OrganizeIncludes vous aurez cette fenêtre :
Cliquez sur OrganizeIncludes et dans votre code l’include s’affichera.
Les raccourcis clavier de Scite4AutoIt3
Certains raccourcis peuvent être très utiles dans la manipulation du code, prendre le temps d’apprendre ces raccourcis permettra de gagner du temps plus tard. En couleur les indispensables.
F1 : Affiche l’aide, pour l’avoir en français télécharger la version française est déposer ce fichier (AutoIt.chm) dans le dossier C:\Program Files (x86)\AutoIt3
Renommer avant votre fichier d’origine. Exemple : AutoItO.chm
Ctrl+F2 : Permet de marquer ou démarquer une ligne. Le marqueur est un rond de couleur blue qui permet de sélectionner des lignes à travailler.
F2 : Marqueur suivant.
Shift+F2 : Marqueur précédent.
F3 : Recherche suivante
Shift+F3 : Recherche précédente
F5: Exécuter le script (CTRL+F5 debug le script)
F6 : Bascule d’un onglet à l’autre de gauche à droite.
Shift+F6 : Bascule d’un onglet à l’autre de droite à gauche.
CTRL+F6 : Autoit Windows Info.
F7 : Compilation.
CTRL+F7 : Compilation avec Wrapper. :sup:
CTRL+1 : Config de Scite (Préférences)
CTRL+D : Copie la ligne en cours
CTRL+F : Rechercher
CTRL+H : Remplacer : Ce raccourci vous permettra de rechercher, remplacer, tout ou dans la sélection et les onglets. (Très pratique)
CTRL+Q : Commente la ligne sélectionné (Équivalent au symbole « – » du pavé numérique).
CTRL+T : Tidy vous remet au carré le code (en vous créant un dossier de backup)
Ctrl+Maj+L Supprime la ligne sélectionnée (utile pour faire un brin de ménage), pas besoin sélectionner la ligne 1 clic et la combinaison.
CTRL+SPACE : Affiche le complètement automatique de la saisie au clavier
CTRL+Shift+Alt+i : Organisation des includes
Alt+I : Ouverture de l’include.
Alt+M : Koda FromDesigner pour vos constructions de d’interface.
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.
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 = 0And $ELUA = 0And $POSD = 0 Then $UAC = $MSG & "Votre Contrôle de compte d'utilisateur est désactivé ! Niveau 0"If $CPBA = 5And $ELUA = 1And $POSD = 0 Then $UAC = $MSG & "Votre Contrôle de compte d'utilisateur est activé ! Niveau 1"If $CPBA = 5And $ELUA = 1And $POSD = 1 Then $UAC = $MSG & "Votre Contrôle de compte d'utilisateur est activé ! Niveau 2"If $CPBA = 2And $ELUA = 1And $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)
EndIfIf (@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 = 0And $ELUA = 0And $POSD = 0 Then $UAC = "0"If $CPBA = 5And $ELUA = 1And $POSD = 0 Then $UAC = "1"If $CPBA = 5And $ELUA = 1And $POSD = 1 Then $UAC = "2"If $CPBA = 2And $ELUA = 1And $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)
EndIfIf (@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'EndIfIf (@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'EndIfIf @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")
EndIfIf (@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()
EndIfCase $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()
ElseIf (@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()
EndIfEndIfCase $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()
ElseIf (@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()
EndIfEndIfCase $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()
ElseIf (@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()
EndIfEndIfEndSwitch
WEnd
Func CheckX($hGui, $CtrlID, $sCMD, $eCMD)
Local $cGui = GUIGetCursorInfo($hGui)
If Not IsArray($cGui) Then Return0if $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.
Les fichiers Autoit ont une extension .au3 que vous pouvez éditer avec SciTe.
SciTE fonctionne comme n’importe quel éditeur de texte (ou presque). Il peut ouvrir plusieurs fichiers simultanément grâce à la gestion des onglets.
AutoIt.fr propose un pack en français > pack AutoIt-Fr qui vous permettra d’installer AutoIt, Scite mais également ses outils.
Une fois votre installation faite nous allons découvrir Scite.
Pour cela faire un clic droit sur le Bureau > Nouveau > Script AutoIt V3
Voici un nouvel icône sur votre Bureau.
Faite un Clic droit sur ce nouveau fichier puis Éditer le Script
Voici donc notre première page d’édition.
Comme on peut le voir les caractères #cs et #ce nous permettent de saisir des informations qui n’auront aucune action sur le script mais qui peuvent être très utile pour se retrouver dans son code.
On peut également utiliser le ; pour mettre des commentaires.
Attention si nous utilisons la touche moins du clavier numérique c’est la ligne entière qui sera en commentaire avec en début de ligne ;~
Sur la capture ci-dessous nous pouvons voir cette ligne :
La ligne #pragma compile(Icon, C:\Program Files (x86)\AutoIt3\Icons\au3.ico) va permettre d’afficher l’icône AutoiT (par défaut) lors de la compilation.
Voici un exemple d’un premier script avec les commentaires expliqués.
Pour lancer ce script il suffit d’appuyer sur la touche F5, ce qui donne :
Pour cet exemple nous aurions pu prendre une boite de dialogue :
Ceci est une base de départ pour ce langage. Il ne faut pas hésiter à demander à Scite de l’aide en cas de besoin, pour cela il faut faire un clic sur le mot désiré (par exemple MsgBox) et appuyer sur la touche F1 pour afficher l’aide.
Quelques bonnes habitudes à prendre avec les variables :
Déclarer toutes les variables c’est plus propre et ça permet d’éviter les oublis de déclaration.
Si on utilise Opt(« MustDeclareVars », 1) les variables non déclarées dans le script seront affichées dans la console comme étant non déclarées et il sera demandé de les déclarer.
Une variable en AutoIt commence toujours par ce caractère. $
Mais c’est quoi une variable ?
Une variable est une valeur qui va être demandée une ou plusieurs fois dans le code.
Par exemple sous Windows nous avons %temp% cette variable nous permet d’accéder au fichier temporaires, pour AutoIt c’est pareil.
Exemple :
Code :
Local $MaVariable =("C:\Users\Amesam\AppData\Local\Temp") ; On note que la variables est bien déclaré et que on lui attribue %temp%
ShellExecute($MaVariable) ; Exécute la variable
; Pour éviter les soucis d'attribution de lettre du disque système nous untilisons un Macro (@Homedrive à la la place de C:\)
Local $MaVariable =(@HomeDrive & "\Users\Amesam\AppData\Local\Temp") ; On note que la variables est bien déclaré et que on lui attribue %temp%
ShellExecute($MaVariable) ; Exécute la variable
Bien juger de la portée des variables :
Global
La variable va être utilisée à plusieurs reprises dans le code. Dans ce cas il faut la déclarer en entête de programme en Global :
Global $Ma_Variable
Exemple :
Code :
Global$Ma_Variable = @OSVersion
_Mafonction()
_Mafonction2()
Func _Mafonction()
MsgBox(0, "Titre", "Ma variable indique l'OS soit :" & $Ma_Variable)
EndFunc
Func _MaFonction2()
MsgBox(0, "Titre", $Ma_Variable & " est votre système d'exploitation")
EndFunc
Local
La variable ne sera utilisée que dans une seule fonction : Elle doit être déclarée en tant que Local.
Local $Ma_Variable
DIM REDIM
La variable est un tableau. On la déclare initialement en Local ou Global.
Pour initialiser un tableau il faut utiliser Dim.
Pour modifier la taille du tableau sans perdre son contenu on utilise alors ReDim.
Code :
#include <Array.au3>
; Je traite un tableau de 10 éléments en utilisant un Dim
_ArrayTest(10)
; Je traite un tableau de 10 éléments en utilisant un ReDim
_ArrayTest(10, True)
Func _ArrayTest($Compteur, $UtiliserRedim = False)
Dim $Array[$Compteur] ;Je définis la taille de mon tableau
$Array[0] = $Compteur - 1 ;J'alimente le nombre d’éléments du tableau dans la 1ere occurence
For $i = 1 To $Compteur - 1
ConsoleWrite('$i = ' & $i & @CRLF)
If $UtiliserRedim Then ReDim $Array[$i + 1]
$Array[$i] = 'Ligne n° ' & $i ;J'alimente mon tableau
Next
_ArrayDisplay($Array, 'Redim ' & $UtiliserRedim & ' ?')
EndFunc ;==>_ArrayTest
Le résultat est le même avec Dim ou Redim, c’est juste pour montrer comment l’utiliser.
Éviter de déclarer une variable avec Dim. Utiliser plutôt Local et/ou Global.
Utiliser le Dim pour un tableau lors de son initialisation dans une fonction : Dim $MonTableau[10]
Éviter de déclarer des variables si elles ne sont pas utilisées.
Quand c’est possible déclarer les variables en tant que constantes, par exemple :
Lorsqu’une constante a été assignée, elle ne peut plus être modifiée.
L’action sous condition :
Dans la programmation, tout langage confondu, cette action sous condition sera toujours pareil.
SI (proposition-à-vérifier est vraie ou fausse) ALORS :
on fait ça
SINON
on fait ça
FINI
Code :
If ($Var) Then
On fait ça
Else
On fait ça
EndIf
Exemple :
Code :
Global$FLAG = DllCall("user32.dll", "int", "GetSystemMetrics", "long", 67) ; Je déclare ma variable et l'assigne
If $FLAG Then ; Si (If) ma variable ($FLAG)est vrai alors (Then)
MsgBox(0, "Mode d'exécution", "Mode sans échec") ; Résultat dans une boite de dialogue si ma variable est vrai
Else ; Sinon
MsgBox(0, "Mode d'exécution", "Mode normal") ; Résultat dans une boite de dialogue si ma variable est fausse
EndIf ; On ferme la condition
Les boucles :
Les boucles permettent de répéter une même action plusieurs fois, en n’écrivant qu’une seule fois la procédure.
Trois boucles s’offrent à nous :
Boucle de type « For – Next » (Pour) For ; Pour ; Actions
Next; Ensuite
Cette boucle permettra de comptabiliser.
Elle s’utilise lorsque le nombre de fois que nous devons parcourir la boucle est déterminé.
Exemple :
Code :
For$i = 0 To 10 Step 1 ; Pour$ion assigne la valeur de 0 à 10 et on compte de 1 en 1
MsgBox(0, "Message", "La variable $i à la valeur " & $i) ; On affiche le résultat
Next ; On ferme la boucle et on continu
Boucle de type « While – WEnd » (Tant que)
While; Tant que ; Actions WEnd; on ferme la boucle
Elle est utilisée autant de fois tant que l’action effectuée reste inconnu. Si la proposition est fausse dès le départ, la boucle ne se lance pas.
Cette boucle n’a pas besoin de compteur pour fonctionner, la boucle est simplement effectuée tant que la condition reste vraie.
Exemple :
Code :
Global $i = 0 ; On assigne la variable $i
While($i < 1); Tant que $i est inférieur à 2
Local $Var = InputBox("", "Entre ta note à ce tuto entre 0 et 5"); on crée une box pour récupérer la valeur donnée
$i = $I+$Var ; On incrémente $i et on ajoute la donnée saisie
If $i < 5 Then ; Si $i est inférieur à 5
MsgBox(0, "Note attribuée", "Merci ;) : " & $i) ; et bien on remercie
ElseIf $i > 5 Then ; si la note est supérieur à 5 alors
MsgBox(0, "", "Note trop forte :) :" & $I) ; On indique que la note est trop forte
Else ; Sinon
MsgBox(0, "", "Cool :) :" & $I) ; Cool le max ;)
EndIf ; on ferme la condition
WEnd ; On ferme la boucle
MsgBox(0, "", " La boucle est terminée est la note attribuée est : " & $i); La note donnée
La boucle de type « DO – Until » (Faire)
Do; Faire ; Actions Until; Jusqu’à
Cette boucle répète une action jusqu’à ce que la condition à atteindre devienne vraie.
Elle est utilisée autant de fois tant que l’action effectuée reste inconnu.
Exemple :
Code :
Do
Local $pass = "MDP"
Local $input = InputBox("Tutoriel", "Entrez le mot de passe :")
If ($input <> $pass) Then
MsgBox(0,"Tutoriel", "Mauvais mot de passe !")
Else
MsgBox(0,"Tutoriel", "Le mot de passe est correct !")
EndIf
Until ($input = $pass)
Les fonctions :
Une fonction est un bout de code destiné à être exécuté plusieurs fois.
Soit à mettre en fin de code, début ou dans une include.
On peut lui attribuer le nom que l’on veut, lettre, chiffre et _
Exemple Ma_Fonction1()
Dans cette fonction on fait une requête WMI, un sous-ensemble du langage SQL.
Code :
MsgBox(0, "", Ma_Fonction1())
Func Ma_Fonction1() ; requête WMI pour récupérer l'OS
Local $OS = '', $OBJIT
Local $WBEMFLAGRETURNIMMEDIATELY = 16
Local $WBEMFLAGFORWARDONLY = 32
Local $OBJWMISERVICE = ObjGet("winmgmts:\\.\root\CIMV2")
Local $COLIT = $OBJWMISERVICE.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", $WBEMFLAGRETURNIMMEDIATELY + $WBEMFLAGFORWARDONLY)
If IsObj($COLIT) Then
For $OBJIT In $COLIT
$OS &= $OBJIT.Caption $OS &= $OBJIT.CSDVersion & " "
Next
EndIf
Return $OS
EndFunc
Les macros :
Ici par exemple nous utilisons @OSVersion qui nous retourne la version du système d’exploitation.
Exemple 2 :
On peut multiplier la demande.
Code :
Local $vMacros = (" Voici le résultat des macros : " & @CRLF & @CRLF _
& "- Lecteur système : " & @homedrive & @CRLF _
& "- OS : " & @OSArch & " " & @OSVersion & @CRLF _
& "- PC : " & @ComputerName & @CRLF _
& "- Utilisateur : " & @UserName)
MsgBox(0, " - Exemple -", $vMacros, "")
; si je décompose :
; 1er Ligne :
;-------------
; Local $vMacros est déclaré en local car elle va servir ici dans cette code, et ne sera pas utilisé dans un autre endroit
; le = affecte une valeur à ma varialble, puis j'ouvre une parenthèse et insère le texte en " et " puis je joins une esperluette (&) pour joindre mon texte et ma macro.
; Ensuite je demande un retour à la ligne 2 fois & @CRLF & @CRLF _
; Le _ me permet d'écrire sur la ligne suivante dans mon code.
; 2ème Ligne et 3/4/5ème lignes :
;-----------------------------
; j'ouvre une parenthèse et saisi du texte entre " et " puis je joins une esperluette (&) pour joindre mon texte et ma macro.
; Je commence avec & pour indiquer que je continu à joindre au texte " " et une & et la macro, je joins à nouveau une esperluette (&) pour joindre ma macro à un retour à la ligne (@CRLF _)
http://www.autoitscript.fr/autoit3/docs/macros.htm a écrit :
@AppDataCommonDir Chemin vers Application Data.
@AppDataDir Chemin vers Application Data Roaming de l’utilisateur courant.
@AutoItExe Le Chemin et le nom complet de l’exécutable AutoIt en cours d’exécution. Pour les scripts compilés, c’est le chemin du script compilé; pour les fichiers .a3x et .au3 c’est le chemin de l’interpréteur qui traite le fichier.
@AutoItPID PID du processus dans lequel le script s’exécute (Process IDentifier).
@AutoItVersion Numéro de version d’AutoIt. Ex: 3.3.10.2
@AutoItX64 Retourne 1 si le script est exécuté sous la version native x64 d’AutoIt.
@COM_EventObj Objet d’événement COM entrain d’être renvoyé. Valide seulement dans une fonction d’événement COM.
@CommonFilesDir Chemin vers le dossier Common Files.
@Compiled Retourne 1 si le script est un exécutable compilé; sinon 0.
@ComputerName Nom réseau de l’ordinateur.
@ComSpec Valeur de %comspec%, interpréteur secondaire de COMmandes SPECifiées principalement pour l’utilisation de la ligne de commande, ex. Run(@ComSpec & » /k help | more »).
@CPUArch Retourne « X86 » quand le CPU est 32-bit et « X64 » quand le CPU est 64-bit.
@CR Retour chariot, Chr(13); parfois utilisé pour les retours à la ligne.
@CRLF = @CR & @LF ; typiquement utilisé pour les retours à la ligne.
@DesktopCommonDir Chemin vers Bureau.
@DesktopDepth Profondeur de l’écran principal bits par pixel.
@DesktopDir Chemin vers le bureau de l’utilisateur courant.
@DesktopHeight Hauteur de l’écran principal en pixel. (Résolution verticale)
@DesktopRefresh Vitesse de rafraichissement de l’écran principal en hertz.
@DesktopWidth Largeur de l’écran principal en pixel. (Résolution horizontale)
@DocumentsCommonDir Chemin vers le dossier Documents.
@error Statut du drapeau d’erreur. Voir la fonction SetError().
@exitCode Code de sortie fixé par la commande Exit.
@exitMethod Méthode Exit. Voir la fonction OnAutoItExitRegister().
@extended Valeur étendue renvoyée – Utilisé dans certaines fonctions telles que StringReplace().
@FavoritesCommonDir Chemin vers Favoris.
@FavoritesDir Chemin vers Favoris de l’utilisateur courant.
@GUI_CtrlHandle Handle (Lien vers) du dernier Contrôle GUI cliqué. Valide seulement dans une fonction d’événement. Voir la fonction GUICtrlSetOnEvent().
@GUI_CtrlId Identifiant GUI du dernier Contrôle cliqué. Valide seulement dans une fonction d’événement. Voir la fonction GUICtrlSetOnEvent().
@GUI_DragFile Nom du fichier Drop GUI (laché graphique). Valide seulement pour les événements Drop. Regardez la fonction GUICtrlSetOnEvent().
@GUI_DragId Identifiant du Contrôle Drag GUI (Glisser graphique). Valide seulement pour les événements Drop. Voir la fonction GUICtrlSetOnEvent().
@GUI_DropId Identifiant du contrôle Drop GUI. Valide seulement pour les événements Drop. Regardez la fonction GUICtrlSetOnEvent().
@GUI_WinHandle Handle de la dernière Fenêtre GUI cliquée. Valide seulement dans une fonction d’événement. Regardez la fonction GUICtrlSetOnEvent().
@HomeDrive Lettre de lecteur du répertoire personnel de l’utilisateur courant.
@HomePath Partie du chemin du répertoire personnel de l’utilisateur courant. Pour avoir le chemin complet, utilisez @HomeDrive avec.
@HomeShare Serveur et nom de partage du répertoire personnel de l’utilisateur courant.
@HotKeyPressed Dernier HotKey (Raccourci clavier ) pressé. Regardez la fonction HotKeySet().
@HOUR Heures de l’horloge au format 24H. Plage de 00 à 23.
@InetGetActive Vaut 1 si un téléchargement InetGet est actif, sinon 0.
@InetGetBytesRead Renvoie le nombre d’octets lu pendant un téléchargement InetGet. Vaut -1 en cas d’erreur de téléchargement.
@IPAddress1 Adresse IP du premier adaptateur réseau. Retourne 127.0.0.1 sur certains ordinateurs.
@IPAddress2 Adresse IP du deuxième adaptateur réseau. Retourne 0.0.0.0 si non applicable.
@IPAddress3 Adresse IP du troisième adaptateur réseau. Retourne 0.0.0.0 si non applicable.
@IPAddress4 Adresse IP du quatrième adaptateur réseau. Retourne 0.0.0.0 si non applicable.
@KBLayout Retourne le code de la disposition du clavier. Voir l’Appendix pour les valeurs possibles.
@LF Saut de ligne, Chr(10); occasionnellement utilisé pour les retours à la ligne.
@LocalAppDataDir Chemin vers Local Application Data de l’utilisation en cours.
@LogonDNSDomain Logon du Domaine DNS.
@LogonDomain Logon du Domaine.
@LogonServer Logon du serveur.
@MDAY Jour du mois en cours. Plage de 01 à 31.
@MIN Valeur des Minutes de l’horloge. Plage de 00 à 59.
@MON Mois en cours. Plage de 01 à 12.
@MSEC Valeur en millisecondes de l’horloge. Plage de 00 à 999. La fréquence de mise à jour de cette valeur dépend de la résolution du timer du hardware et ne peut pas être mis à jour chaque milliseconde.
@MUILang Retourne le code caractérisant la langue si disponible (Vista est OK par défaut). Voir Appendice pour les valeurs possibles.
@MyDocumentsDir Chemin vers Mes Documents de l’utilisateur courant.
@NumParams Nombre de paramètres utilisés pour l’appel de la fonction utilisateur.
@OSArch Retourne un des résultats suivants: « X86 », « IA64 », « X64 » – type d’architecture du système en cours d’exécution.
@OSBuild Retourne le numéro de fabrication de l’OS (3790 pour Windows 2003 Serveur).
@OSLang Retourne le code du langage de l’OS. Voir l’Appendix pour les valeurs possibles.
@OSServicePack Information du Service pack dans la forme « Service Pack 3 ».
@OSTYPE Retourne « WIN32_NT » pour NT/2000/XP/2003/Vista et retourne « WIN32_WINDOWS » pour 95/98/Me.
@OSVersion Retourne un des éléments suivants: « WIN_81 », « WIN_8 », « WIN_7 », « WIN_VISTA », « WIN_XP », « WIN_XPe »,
pour serveurs Windows: « WIN_2012R2 », « WIN_2012 », « WIN_2008R2 », « WIN_2008 », « WIN_2003 »
@ProcessorArch Retourne un des éléments suivant : « X86 », « IA64 », « X64 »
@ProgramFilesDir Chemin vers le dossier Program Files.
@ProgramsCommonDir Chemin vers le menu démarrer tous les programmes.
@ProgramsDir Chemin vers Tous les programmes de l’utilisateur courant (Dossier du menu démarrer).
@ScriptDir Répertoire contenant le script en cours d’exécution. (Le résultat ne contient pas d’antislash à la fin)
@ScriptFullPath Equivalent de @ScriptDir & « \ » & @ScriptName.
@ScriptLineNumber Numéro de la ligne en cours d’exécution. Utile pour le débugage, particulièrement quand une fonction est appelée : vous pouvez lui passer la ligne en cours (Ne marche pas dans un script compilé).
@ScriptName Nom de fichier du script en cours d’exécution.
@SEC Valeur des Secondes de l’horloge. Plage de 00 à 59.
@StartMenuCommonDir Chemin vers le dossier Démarrer.
@StartMenuDir Chemin vers le menu Démarrer de l’utilisateur courant.
@StartupCommonDir Chemin vers le dossier Démarrage.
@StartupDir Chemin vers le dossier Démarrage de l’utilisateur courant.
@SW_DISABLE Désactive la fenêtre.
@SW_ENABLE Active la fenêtre.
@SW_HIDE Cache la fenêtre et en active une autre.
@SW_LOCK Verrouille la fenêtre pour éviter d’y écrire.
@SW_MAXIMIZE Maximise la fenêtre.
@SW_MINIMIZE Minimise la fenêtre et active la fenêtre de niveau supérieur suivante dans l’ordre Z.
@SW_RESTORE Active et affiche la fenêtre. Si la fenêtre est minimisée ou maximisée, le système la restaure à ses dimensions et position originales. Une application peut spécifier ce drapeau en restaurant une fenêtre minimisée.
@SW_SHOW Active la fenêtre et l’affiche à ses dernières dimensions et position.
@SW_SHOWDEFAULT Fixe l’état d’affichage basé sur la valeur SW_ spécifiée par le programme qui a démarré l’application.
@SW_SHOWMAXIMIZED Active la fenêtre, et l’affiche maximisée.
@SW_SHOWMINIMIZED Active la fenêtre, et l’affiche minimisée.
@SW_SHOWMINNOACTIVE Affiche et minimise la fenêtre. Cette valeur est la même que @SW_SHOWMINIMIZED, excepté que la fenêtre n’est pas activée.
@SW_SHOWNA Affiche la fenêtre à ses dimensions et position actuelles. Cette valeur est la même que @SW_SHOW, excepté que la fenêtre n’est pas activée.
@SW_SHOWNOACTIVATE Affiche une fenêtre à ses dernières dimensions et position. Cette valeur est la même que @SW_SHOWNORMAL, excepté que la fenêtre n’est pas activée.
@SW_SHOWNORMAL Active et affiche une fenêtre. Si la fenêtre est minimisée ou maximisée, le système la restaure à ses dimensions et position originales. Une application peut spécifier ce drapeau en affichant la fenêtre pour la première fois.
@SW_UNLOCK Déverrouille une fenêtre pour autoriser l’écriture.
@SystemDir Chemin vers le dossier System (ou System32) de Windows.
@TAB Caractère de tabulation, Chr(9).
@TempDir Chemin vers le dossier temp.
@TRAY_ID Identifiant du dernier élément cliqué pendant TraySetOnEvent() ou une action TrayItemSetOnEvent().
@TrayIconFlashing Retourne 1 si l’icône de la barre des taches clignote; sinon, retourne 0.
@TrayIconVisible Retourne 1 si l’icône de la barre des taches est visible; sinon, retourne 0.
@Unicode Retourne 1 si la version Unicode d’AutoIt est utilisée pour l’exécution (AutoIt3.exe) ou 0 si c’est la version ANSI (AutoIt3A.exe).
Habituellement, cette macro n’est pas requise puisque AutoIt traite les conversions Unicode/ANSI. Cependant, elle peut être requise pour l’utilisation de certains DllCalls() ou de messages Windows directs.
@UserProfileDir Chemin vers le dossier du profil de l’utilisateur courant.
@UserName Nom de la session active (Généralement le nom de l’utilisateur en cours).
@WDAY Jour de la semaine en numérique. De 1 à 7 (de Dimanche jusqu’à Samedi).
@WindowsDir Chemin vers le dossier Windows.
@WorkingDir Current/active working directory. (Result does not contain a trailing backslash).
@YDAY Jour de l’année en cours. De 1 à 365 (ou 366 pour une année bissextile).
@YEAR Année en cours sur quatre chiffres.
Les Opérateurs :
Le premier opérateur à connaitre est = il nous permet d’affecter une valeur.
Par exemple : $Ma_Variable = 10
Ou permet de tester si deux valeurs sont égales.
Exemple : If $Ma_variable = 1 Then
Code :
Local$Ma_variable = @HomeDrive
If $Ma_variable = 0 Then
MsgBox(0, "", @HomeDrive & " - La valeur est la bonne")
Else
MsgBox(0, "", " La valeur n'est pas la bonne")
EndIf
Pour tester si deux valeurs sont différentes on utilise <>
Exemple : If $Ma_variable <> $Ma_variable1 Then
Code :
Local $Ma_variable = 7
Local $Ma_var = 7If $Ma_var <> $Ma_variable Then
MsgBox(0, "", " Elles sont différentes")
Else
MsgBox(0, "", "elles sont identiques")
EndIf
http://www.autoitscript.fr/autoit3/docs/intro/lang_operators.htm a écrit :
= Affectation, exemple: SvVar = 5 (affecte le nombre 5 à SvVar)
+ = Affectation avec addition. Exemple: SvVar
+ = 1 (ajoute 1 à SvVar)
-= Affectation avec soustraction.
*= Affectation avec multiplication.
/= Affectation avec division.
& Concatène/joint deux chaînes. Exemple: « un » & 10 (equals ‘unlO’)
&= Affectation avec concaténation; Exemple: SvVar « un », et puis SvVar &= 10 (SvVar est maintenant égal à ‘unlO’)
+ Additionne deux nombres. Exemple: 10 + 20 {égale 30)
– Soustrait deux nombres. Exemple: 20 – 10 (égale 10) Agit aussi comme un opérateur unaire (pour affecter une valeur négative à une variable).
★ Multiplie deux nombres. Exemple: 20 * 10 (égale 200)
/ Divise deux nombres. Exemple: 20/10 (égale 2)
A Elève un nombre à une puissance. Exemple: 2 4 (égale 16)
= Teste si deux valeurs sont égales. Exemple: If Svar 5 Then (vrai si SvVar égale 5). Insensible à la casse quand utilisé avec des chaînes.
= = Teste si deux chaînes sont égales. Sensible à la casse. Les valeurs gauche et droite sont converties en chaînes si elles ne sont pas déjà des chaînes. Cet opérateur devrait être utilisé seulement si la comparaison des chaînes nécessite une sensibilité à la casse.
<> Teste si deux valeurs sont différentes. Insensible à la casse quand utilisé avec des chaînes. Pour que la comparaison soit sensible à la casse utilisez Not (« stringT “string2“)
> Teste si la première valeur est plus grande que la seconde. Les chaînes sont comparées dans l’ordre lexicographique même si le contenu de la chaîne semble être numérique.
> = Teste si la première valeur est plus grande ou égale que la seconde. Les chaînes sont comparées dans l’ordre lexicographique même si le contenu de la chaîne semble être numérique.
< Teste si la première valeur est plus petite que la seconde. Les chaînes sont comparées dans l’ordre lexicographique même si le contenu de la chaîne semble être numérique.
< = Teste si la première valeur est plus petite ou égale que la seconde. Les chaînes sont comparées dans l’ordre lexicographique même si le contenu de la chaîne semble être numérique.
And Conjonction logique. Exemple: If SvVar 5 And SvVar2 > 6 Then (Vrai si SvVar égale 5 et SvVar2 est plus grand (strictement) que 6)
Or Disjonction logique. Exemple: If SvVar 5 Or SvVar2 > 6 Then (Vrai si SvVar égale 5 ou SvVar2 est plus grand (strictement) que 6)
Not Négation logique. Exemple: Not 1 (False)
Les UDF :
Les UDF (User Defined Functions) sont des fichiers .au3 contenant une multitude de fonctions, c’est une bibliothèques de fonctions.
Il suffit de les inclure dans vos includes en début de code.
On peut bien évidemment en créer soi même selon les besoins, ces fichiers sont intéressants car ils évitent de réécrire les fonctions.
Exemple :
L’UDF SystemRestore.au3 de FredAI pour la gestion des points de restauration.
Code :
#include-once#RequireAdmin
; #INDEX# =======================================================================================================================
; Title .........: SystemRestore
; Description ...: Functions to manage the system retore. This includes create, enum and delete restore points.
; Author(s) .....: Fred (FredAI)
; Dll(s) ........: SrClient.dll
; ===============================================================================================================================
; #CURRENT# =====================================================================================================================
; _SR_CreateRestorePoint
; _SR_EnumRestorePoints
; _SR_RemoveRestorePoint
; _SR_RemoveAllRestorePoints
; _SR_Enable
; _SR_Disable
; _SR_Restore
; ===============================================================================================================================
; #MODIFIED/IMPLEMENTED# =====================================================================================================================
; WMIDateStringToDate
; ===============================================================================================================================
;Creating the WMI objects with global scope will prevent creating them more than once, to save resources...
Global $obj_SR, $obj_WMI
Global $SystemDrive = EnvGet('SystemDrive') & '\'
; #FUNCTION# ====================================================================================================================
; Name...........: _SR_CreateRestorePoint
; Description ...: Creates a system restore point
; Syntax.........: _SR_CreateRestorePoint($strDescription)
; Parameters ....: $strDescription - The system restore point's description. Can have up to 256 characters.
; Return values .: Success - 1
; Failure - 0 Sets @error to 1if an error occurs when calling the dll function.
; Author ........: FredAI
; Modified.......:
; Remarks .......: The system restore takes a few seconds to update. According to MSDN, this functiondoesn'tworkinsafemode.
; Related .......: _SR_RemoveRestorePoint
; Link ..........:
; Example .......: _SR_CreateRestorePoint('My restore point')
; ===============================================================================================================================
Func _SR_CreateRestorePoint($strDescription)
Local Const $MAX_DESC = 64
Local Const $MAX_DESC_W = 256
Local Const $BEGIN_SYSTEM_CHANGE = 100
Local Const $MODIFY_SETTINGS = 12
Local $_RESTOREPTINFO = DllStructCreate('DWORD dwEventType;DWORD dwRestorePtType;INT64 llSequenceNumber;WCHAR szDescription['&$MAX_DESC_W&']')
DllStructSetData($_RESTOREPTINFO,'dwEventType',$BEGIN_SYSTEM_CHANGE)
DllStructSetData($_RESTOREPTINFO,'dwRestorePtType',$MODIFY_SETTINGS)
DllStructSetData($_RESTOREPTINFO,'llSequenceNumber',0)
DllStructSetData($_RESTOREPTINFO,'szDescription',$strDescription)
Local $pRestorePtSpec = DllStructGetPtr($_RESTOREPTINFO)
Local $_SMGRSTATUS = DllStructCreate('UINT nStatus;INT64 llSequenceNumber')
Local $pSMgrStatus = DllStructGetPtr($_SMGRSTATUS)
Local $aRet = DllCall('SrClient.dll','BOOL','SRSetRestorePointW','ptr',$pRestorePtSpec,'ptr',$pSMgrStatus)
If @error Then Return0Return $aRet[0]
EndFunc ;==> _SR_CreateRestorePoint
; #FUNCTION# ====================================================================================================================
; Name...........: _SR_EnumRestorePoints
; Description ...: Enumerates all existing restore points.
; Syntax.........: _SR_EnumRestorePoints()
; Parameters ....: None
; Return values .: Success - An array with info on the restore points:
; $Array[0][0] => Number of restore points.
; $Array[n][1] => Restore point's sequence number.
; $Array[n][2] => Restore point's description.
; $Array[n][3] => Restore point's creation date.
; Failure - An empty bi-dimensinal array where $Array[0][0] = 0.
; Author ........: FredAI
; Modified.......:
; Remarks .......:
; Related .......: _SR_RemoveAllRestorePoints()
; Link ..........:
; Example .......: $rPoints = _SR_EnumRestorePoints()
; ===============================================================================================================================
Func _SR_EnumRestorePoints()
Local $aRet[1][3], $i = 0
$aRet[0][0] = 0
If Not IsObj($obj_WMI) Then $obj_WMI = ObjGet("winmgmts:root/default")
If Not IsObj($obj_WMI) Then Return $aRet
Local $RPSet = $obj_WMI.InstancesOf("SystemRestore")
If Not IsObj($RPSet) Then Return $aRet
For $RP In $RPSet
$i += 1
ReDim $aRet[$i+1][3]
$aRet[$i][0] = $RP.SequenceNumber
$aRet[$i][1] = $RP.Description
$aRet[$i][2] = WMIDateStringToDate($RP.CreationTime)
Next
$aRet[0][0] = $i
Return $aRet
EndFunc ;==> _SR_EnumRestorePoints
Func WMIDateStringToDate($dtmDate)
Return (StringMid($dtmDate, 5, 2) & "/" & _
StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) _
& " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate,13, 2))
EndFunc ;==> WMIDateStringToDate
; #FUNCTION# ====================================================================================================================
; Name...........: _SR_RemoveRestorePoint
; Description ...: Deletes a system restore point.
; Syntax.........: _SR_RemoveRestorePoint($rpSeqNumber)
; Parameters ....: $rpSeqNumber - The system restore point's sequence number. can be obtained with _SR_EnumRestorePoints
; Return values .: Success - 1
; Failure - 0and sets @error
; Author ........: FredAI
; Modified.......:
; Remarks .......: The system restore takes a few seconds to update. According to MSDN, this functiondoesn'tworkinsafemode.
; Related .......: _SR_RemoveAllRestorePoints
; Link ..........:
; Example .......: _SR_RemoveRestorePoint(20)
; ===============================================================================================================================
Func _SR_RemoveRestorePoint($rpSeqNumber)
Local $aRet = DllCall('SrClient.dll','DWORD','SRRemoveRestorePoint','DWORD',$rpSeqNumber)
If @error Then
Return SetError(1,0,0)
ElseIf $aRet[0] = 0 Then
Return1ElseReturn SetError(1,0,0)
EndIf
EndFunc ;==> _SR_RemoveRestorePoint
; #FUNCTION# ====================================================================================================================
; Name...........: _SR_RemoveAllRestorePoints
; Description ...: Deletes all existing system restore points.
; Syntax.........: _SR_RemoveAllRestorePoints()
; Parameters ....: None
; Return values .: Success - The number of deleted restore points.
; Failure - Returns 0if no restore points existed or an error occurred.
; Author ........: FredAI
; Modified.......:
; Remarks .......: The system restore takes a few seconds to update. According to MSDN, this functiondoesn'tworkinsafemode.
; Related .......: _SR_RemoveRestorePoint
; Link ..........:
; Example .......: $rpDeleted = _SR_RemoveAllRestorePoints()
; ===============================================================================================================================
Func _SR_RemoveAllRestorePoints()
Local $aRP = _SR_EnumRestorePoints(), $ret = 0For $i = 1 To $aRP[0][0]
$ret += _SR_RemoveRestorePoint($aRP[$i][0])
Next
Return $ret
EndFunc ;==> _SR_RemoveAllRestorePoints
; #FUNCTION# ====================================================================================================================
; Name...........: _SR_Enable
; Description ...: Enables the system restore.
; Syntax.........: _SR_Enable($DriveL = $SystemDrive)
; Parameters ....: $DriveL: The letter of the hard drive to monitor. Defaults to the system drive (Usually C:). See remarks.
; Return values .: Success - 1.
; Failure - 0
; Author ........: FredAI
; Modified.......:
; Remarks .......: Acording to MSDN, setting a blank string as the drive letter, will enable the system restore for all drives,
; +but some tests revealed that, on Windows 7, only the system drive is enabled.
; +This parameter must end with a backslash. e.g. C:\
; Related .......: _SR_Disable
; Link ..........:
; Example .......: $enabled = _SR_Enable()
; ===============================================================================================================================
Func _SR_Enable($DriveL = $SystemDrive)
If Not IsObj($obj_SR) Then $obj_SR = ObjGet("winmgmts:{impersonationLevel=impersonate}!root/default:SystemRestore")
If Not IsObj($obj_SR) Then Return0If $obj_SR.Enable($DriveL) = 0 Then Return1Return0
EndFunc ;==> _SR_Enable
; #FUNCTION# ====================================================================================================================
; Name...........: _SR_Disable
; Description ...: Disables the system restore.
; Syntax.........: _SR_Disable($DriveL = $SystemDrive)
; Parameters ....: $DriveL: The letter of the hard drive to disable monitoring. Defaults to the system drive (Usually C:). See remarks.
; Return values .: Success - 1.
; Failure - 0
; Author ........: FredAI
; Modified.......:
; Remarks .......: Acording to MSDN, setting a blank string as the drive letter, will enable the system restore for all drives,
; +but some tests revealed that, on Windows 7, only the system drive is enabled.
; +This parameter must end with a backslash. e.g. C:\
; Related .......: _SR_Enable()
; Link ..........:
; Example .......: $disabled = _SR_Disable
; ===============================================================================================================================
Func _SR_Disable($DriveL = $SystemDrive)
If Not IsObj($obj_SR) Then $obj_SR = ObjGet("winmgmts:{impersonationLevel=impersonate}!root/default:SystemRestore")
If Not IsObj($obj_SR) Then Return0If $obj_SR.Disable($DriveL) = 0 Then Return1Return0
EndFunc ;==> _SR_Disable
; #FUNCTION# ====================================================================================================================
; Name...........: _SR_Restore
; Description ...: Initiates a system restore. The caller must force a system reboot. The actual restoration occurs during the reboot.
; Syntax.........: _SR_Restore($rpSeqNumber)
; Parameters ....: $rpSeqNumber - The system restore point's sequence number. Can be obtained with _SR_EnumRestorePoints
; Return values .: Success - 1.
; Failure - 0
; Author ........: FredAI
; Modified.......:
; Remarks .......: After calling this function, call Shutdown(2) to reboot.
; Related .......: _SR_EnumRestorePoints
; Link ..........:
; Example .......: If _SR_Restore(20) Then Shutdown(2)
; ===============================================================================================================================
Func _SR_Restore($rpSeqNumber)
If Not IsObj($obj_SR) Then $obj_SR = ObjGet("winmgmts:{impersonationLevel=impersonate}!root/default:SystemRestore")
If Not IsObj($obj_SR) Then Return 0
If $obj_SR.Restore($rpSeqNumber) = 0 Then Return 1
Return 0
EndFunc ;==> _SR_Restore
Exemple d’utilisation :
#include < SystemRestore.au3>
#include <Date.au3>
_SR_CreateRestorePoint(« Point de restauration avec UDF SystemRestore.au3 : » & _NowDate() & » A : » & _NowTime())
Ceci va créer un nouveau point de restauration.
A partir de W8 il faut traiter une clé de registre si l’on veut que la création s’exécute.
Quand on crée quelques lignes on se préoccupe peu de la structure du code, mais si nous rajoutons beaucoup de fonction un code peu devenir très vite compliqué à lire.
Il faut utiliser les includes. Dans ces includes nous trouverons des fichiers .au3 avec les fonctions utile au code.
Si nous voulons créer un code avec une interface (GUI) il est conseillé de suivre une méthode simple mais utile.
Le code commence par nos includes, puis la déclaration des variables, ensuite la construction de la GUI
Vous pouvez utiliser Koda pour construire votre GUI, attribuer facilement le nom à vos variables, agir sur la police, couleur …
Koda se trouve via le menu Outils ou Alt + M
Les Includes :
Elles permettent dans un premier temps de stocker les UDF (Ensemble de fonction dans un même fichier .au3) que AutoIt charge, comme par exemple #include <ButtonConstants.au3>. Fonction GUICTRL (Button, Group, Radio, Checkbox) de l’include GuiButton.au3
Elles servent également à importer n’importe quel UDF, nous pouvons en trouver sur la toile. Exemple
Les Variables :
Il est bon de déclarer ses variables, souvent quand le fichier .au3 contenant votre code et compiler pour un .exe il se peut que vous ayez cette fenêtre.
Si on utilise Opt(« MustDeclareVars », 1) les variables non déclarées dans le script seront affichées dans la console.
Il ne faut pas laisser cette ligne active à la compilation cela engendre des soucis d’exécution du programme. Un ; devant la ligne pour la rendre inactive.
La Gui :
L’utilisation de Koda Form Designer est un avantage considérable. Cet outil sera très utile pour la construction de la GUI.
Voici son interface ;
Une fois la gui construite vous pouvez générer le code.
Pour voir ce que donne votre GUI vous pouvez cliquer sur la flèche droite dans le cadre de l’image ci-dessus.
Pour afficher le code il faut sélectionner la flèche de gauche.
Exemple commenté de la création d’ un code
Code :
#Cs ~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=
Cet exemple est une de base pour débuter ces codes
On commence par les fichiers include (#include)
Les fichiers 'include' contiennent les constantes relatives aux fonctions UDF.
Include AutoIt :-->C:\Program Files (x86)\AutoIt3\Include
#RequireAdmin :--> Spécifie que le script en cours exige les droits d'administrateur complets pour fonctionner.#include-once :--> Spécifie que le fichier courant ne peut être inclus qu'une seule fois.#include <ButtonConstants.au3> :--> Fonction GUICTRL (Button, Group, Radio, Checkbox) de l'include GuiButton.au3#include <EditConstants.au3> :--> Fonction GUICTRL (Edit, Input) de l'include GuiEdit.au3#include <GUIConstantsEx.au3> :--> Fonction GUICTRL (GUI Create, events)#include <StaticConstants.au3> :--> Fonction GUICTRL Label, Pic, Icon#include <WindowsConstants.au3> :--> Fonction GUICTRL Gui extended style#include <OS.au3>
On peut créer soit méme ces include. Il suffit de créer un autre fichier .au3 et de l'enregistrer sous le même répertoires que le fichiers de base.
Exemple ci-dessous
Je fais mon nouveau fichier (Que je nomme OS.au3) que j'enregistre dans le même répertoire et j'inclus cette fonction pour récupérer des infos sur l'OS
Func _GETWINDOWSVERSION(); :--> On ouvre la fonction
; :--> Déclaration des variables
Local $OS = "", $OBJIT
Local $WBEMFLAGRETURNIMMEDIATELY = 16
Local $WBEMFLAGFORWARDONLY = 32
; :--> Classe WMI
Local $OBJWMISERVICE = ObjGet("winmgmts:\\.\root\CIMV2")
Local $COLIT = $OBJWMISERVICE.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", $WBEMFLAGRETURNIMMEDIATELY + $WBEMFLAGFORWARDONLY)
; :--> Requêtes WMI
If IsObj($COLIT) Then
For $OBJIT In $COLIT ; :--> On ouvre la boucle
$OS &= $OBJIT.Caption
$OS &= $OBJIT.CSDVersion & " "
$OS &= _OSARCH()
Next
EndIf
Return $OS ; :--> Retourne la requête
EndFunc ; :--> On ferme la fonction.
#Ce ~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=#RequireAdmin#include-once#include <ButtonConstants.au3>#include <EditConstants.au3>#include <GUIConstantsEx.au3>#include <StaticConstants.au3>#include <WindowsConstants.au3>#include <OS.au3>
; On déclare les variables
Global $Interface, $edAffiche, $Label, $btOS, $btPC
$Interface = GUICreate("Interface", 319, 247, 192, 124) ; Création de la Gui :--> Amuser vous avec Koda :--> Onglet outils puis Koda(Formdesigner)
$edAffiche = GUICtrlCreateEdit("", 32, 40, 257, 129) ; création de la zone d'adition
GUICtrlSetData(-1, "") ; Contrôle de la zone d'édition
$Label = GUICtrlCreateLabel("Résultat de la recherche ", 40, 16, 123, 17) ; Création d'un label
$btOS = GUICtrlCreateButton("Version OS ", 32, 184, 121, 33) ; Création d'un bouton
$btPC = GUICtrlCreateButton("Button2", 160, 184, 129, 33) ; Création d'un bouton
GUISetState(@SW_SHOW) ; Contrôle de la GUI
While 1 ; on ouvre la boucle
$nMsg = GUIGetMsg() ; vérifie que la GUI est bien active
Switch $nMsg ; Déclare l'exécution
Case $GUI_EVENT_CLOSE ; La croix pour quitter l'interface
Exit ; Si croix validé on sort
Case $btOS ; On attribue au bouton Version OS
GUICtrlSetData($edAffiche, _GETWINDOWSVERSION()) ; On affche le résultat de #include <OS.au3>
Case $btPC
GUICtrlSetData($edAffiche, "Nom du PC" & @ComputerName & @CRLF & "Nom utilisateur" & @UserName) ; on affiche via des macros le nom du PC et de l'utilisateur.
EndSwitch ; on stop le switch
WEnd ; on sort
Script qui désactive le menu contextuel de la barre des tâches.
Code :
@echo off
: Change temporairement l'affichage pour permettre les caractères accentués de plusieurs langues européennes
chcp 28591 > nul
echo Désactiver le menu contextuel de la barre des tâches
echo *****************************************************************
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoTrayContextMenu /t REG_DWORD /d 1 /f
Pause
Script qui réactive le menu contextuel de la barre des tâches.
Code :
@echo off
echo Activer le menu contextuel de la barre des tâches
echo **************************************************************
reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoTrayContextMenu /f
Pause
Script qui désactive le menu contextuel du Bureau.
Code :
@echo off
: Change temporairement l'affichage pour permettre les caractères accentués de plusieurs langues européennes
chcp 28591 > nul
echo Désactiver le menu contextuel du Bureau
echo **************************************************
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoViewContextMenu /t REG_DWORD /d 1 /f
Pause
Script qui réactive le menu contextuel du Bureau.
Code :
@echo off
echo Activer le menu contextuel du Bureau
echo **********************************************
reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoViewContextMenu /f
Pause
MS-DOS (Microsoft Disk Operating System) : Tout comme Linux, Windows dispose d’une invite de commande permettant de lancer le programme qui autorise d’entrer directement au clavier les commandes pour appeler les programmes. Cette invite de commande peut s’avérer particulièrement utile dans les phases de développement de programme afin de lancer la compilation. Pour connaitre sous cmd.exe à quoi corresponde ces commandes utilisez le nom de la commande plus /? (exemple ATTRIB /?)
APPEND► Permet aux programmes d’ouvrir des fichiers de données se trouvant dans les dossiers spécifiés comme s’ils figuraient dans le dossier en cours.
Informations:
Syntaxe : append [;] [[Drive:]Path[;…]] [/x:{on|off}][/path:{on|off}] Si vous voulez taper une nouvelle ligne la première ne sera plus pris en compte . Pour annuler APPEND , tapez : APPEND ; (Valable uniquement sur XP et inférieur)
Plus d’informations : APPEND /?
Exemple :
append b:\lettres;a:\rapports
ARP► Affiche et modifie les tables de correspondance d’adresse IP/physique utilisées par le protocole de résolution d’adresse (ARP).
ASSOC►Affiche ou modifie les associations des extensions de fichiers.
Informations:
Syntaxe : ASSOC [.ext[=[Type du fichier]]]
Plus d’informations : ASSOC /?
Exemple : Affiche de l’extension de fichier .bat (.bat=batfile).
Code :
ASSOC.bat
AT► La commande AT est déconseillée. Utilisez plutôt schtasks.exe. La commande AT planifie l’exécution des commandes et programmes sur l’ordinateur à une date et une heure spécifiées.
Informations:
Syntaxe : AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]] AT [\\computername] time [/INTERACTIVE] [ /EVERY:date[,…] | /NEXT:date[,…]] « command »
Plus d’informations : AT /?
Exemple : On peut programmer le lancement d’une tâche certains jours de la semaine (ou tous les jours) très simplement avec l’option /EVERY: Pour programmer une tâche tous les jours il suffit de spécifier l’option /EVERY:l,ma,me,j,v,s,d .
Code :
AT04:00 /EVERY:d "c:\backup.cmd"
ATTRIB ► Affiche ou modifie les attributs d’un fichier.
Exemple : Spécifie la lettre de volume de la partition système.
Code :
bcdboot c:\windows /s h:
BOOTCFG ► Peut être utilisé pour configurer, interroger, modifier ou supprimer les paramètres de l’entrée de démarrage dans le fichier boot.ini. Active ou désactive le contrôle étendu de CTRL+C.
Informations:
Syntaxe : BOOTCFG <parameter>[arguments…] Exemple :
Code :
BOOTCFG /Copy /D "Windows avec débogage" /ID 1
Hésitez pas à interroger MS-DOS pour plus d’information :
Exemple : Corrige les erreurs sur le disque et localise les secteurs défectueux et récupère les informations lisibles.
Code :
CHKDSK d: /f /r
CHKNTFS ► Permet de vérifier si un volume est en FAT, FAT32 ou NTFS.
Informations:
Syntaxe : Chkntfs <Volume>[…]chkntfs chkntfs [/ d] [/ t [: <Time>]] [/ x <Volume> chkntfs[…]]Chkntfs [/c <Volume>[…]]
Plus d’informations : CHKNTFS /?
Exemple : Affiche l’intégrité du fichier.
Code :
CHKDSK C:
Restaure le comportement par défaut de l’ordinateur, tous les lecteurs sont vérifiés au démarrage et CHKDSK est exécuté pour ceux dont l’intégrité est incertaine.
Code :
CHKDSK /d
CIPHER ► Affiche ou modifie le cryptage des répertoires [fichiers] sur des partitions NTFS. Crypter les fichiers et les dossiers à l’aide de la commande Cipher.
Exemple : Pour définir l’état de compression de fichiers et sous-répertoires du répertoire en cours, sans modifier l’état de compression du répertoire en cours.
Code :
Compact /c /s *.*
CONVERT ► Convertit des volumes FAT en volumes NTFS. Vous ne pouvez pas convertir le lecteur en cours d’utilisation.
Exemple : Exécute le script test.vbs en affichant le logo.
Code :
cscript //logo c:\test.vbs
Lettre D :
DATE ► Affiche ou modifie la date.
Informations:
Syntaxe : date [/t | < mois-jour-année >]
Plus d’informations : DATE /?
Exemple : Affiche la date sans vous demander une nouvelle date.
Code :
DATE /t
DEL ► Supprime un ou plusieurs fichiers.
Informations:
Syntaxe : DEL [/ p] [/ f] [/s] [/ q] [/ a [:] <Attributes>] <Names> erase [/ p] [/ f] [/s] [/ q] [/ a [:] <Attributes>] <Names>
Plus d’informations : DEL /?
Exemple : Supprime les fichiers du répertoire C:\Users\vous\AppData\Local\Temp en forçant la suppression des fichiers en lecture seule et supprime les fichiers du répertoire actif et tous les sous-répertoires spécifiés. Affiche les noms des fichiers comme ils sont supprimés et tout ceci en mode silencieux.
Code :
DEL %temp%\*.* /f /s /q
DIR ► Affiche la liste des fichiers et des sous répertoires d’un répertoire.
Informations:
Syntaxe : dir [<Drive>:] [<Path>] [<FileName>] […] [/ p] [/ q] [/ w] [/ d] [/ a [: <Attributes>]][/ o [: <SortOrder>]] [/ t [: <TimeField>]] [/s] [/ b] [/l] [/ n] [/ x] [/ c] [/ 4]
Plus d’informations : DIR /?
Exemple : Affiche la liste des fichiers .txt sous C:\.
Code :
DIR C:\*.txt
DISKPERF ► Active ou désactive les compteurs de performance de disque.
Exemple : Permet d’afficher une liste de pilotes de périphériques installés sur l’ordinateur local.
Code :
DRIVERQUERY
Permet d’afficher la sortie dans un format de valeurs séparées par des virgules (CSV)
Code :
DRIVERQUERY /fo csv
Lettre E :
ECHO ► Affiche des messages à l’écran ou active/désactive l’affichage des commandes.
Informations:
Syntaxe : ECHO [ON | OFF] ECHO [message]
Plus d’informations : ECHO /?
Exemple : Permet d’empêcher l’écho des commandes à l’invite de commande.
Code :
ECHOOFF
Permet d’afficher une chaîne de caractères.
Code :
ECHO
Permet d’afficher une ligne vide.
Code :
ECHO.
ENDLOCAL ► Stoppe la localisation des modifications de l’environnement dans un fichier de commandes.
Informations:
Syntaxe : ENDLOCAL
Plus d’informations : ENDLOCAL /?
Exemple : Les variables d’environnement, dont les noms sont spécifiés dans la commande ENDLOCAL, sont exportées. Cela signifie que leurs noms et valeurs à partir de SETLOCAL / ENDLOCAL seront placés dans l’environnement restauré, soit en ajoutant des variables, soit en les modifiant. Dans l’exemple ci-dessous, la variable TEST aura la valeur abcd après l’exécution de ENDLOCAL.
Code :
setlocal
settest=abcd
endlocal test
ERASE ► Supprime un ou plusieurs fichiers.
Informations:
Syntaxe : ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributs]] noms Cette commande est identique à la commande DEL.
Plus d’informations : ERASE /?
Exemple : Supprime les fichier .tmp du répertoire Windows.
Code :
Erase c:\windows\*.tmp /f /s /q
EVENTCREATE► Permet à un administrateur de créer un message et un identificateur d’événements personnalisés dans un journal d’événement spécifié sous Windows XP.
FC ► Compare deux fichiers ou groupes de fichiers, et affiche les différences entre eux.
Informations:
Syntaxe : FC [/A] [/C] [/L] [/LBn] [/N][/OFF[LINE]][/T] [/U] [/W] [/nnnn] [lect1:][chemin1]fichier1 [lect2:][chemin2]fichier2 FC /B [lect1:][chemin1]fichier1 [lect2:][chemin2]fichier2
Plus d’informations : FC /?
Exemple : Compare les deux fichiers en mode binaire, c’est le mode par défaut pour comparer les fichiers portant les extensions de fichier suivantes : .exe, .com, .sys, .obj, .lib ou .bin.
Code :
FC /b benef.bat gains.bat
FIND ► Cherche une chaîne de caractères dans un ou plusieurs fichiers.
Exemple : Affiche la table de noms NetBIOS de l’ordinateur local.
Code :
nbtstat -n
NET ► Permet de passer des commandes sur le réseau. Entrer NET HELP pour afficher toutes les commandes disponibles.
Informations:
Syntaxe : NET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP | HELPMSG | LOCALGROUP | PAUSE | SESSION | SHARE | START | STATISTICS | STOP | TIME | USE | USER | VIEW ]
Plus d’informations : NET /?
Exemple : Affiche les statistiques Ethernet et les statistiques pour tous les protocoles.
Code :
NETSTAT -e -s
Ajoute l’ordinateur PC_Amesam à la base de données du domaine.
Code :
NET computer \\PC_Amesam /add
Affiche une liste des ordinateurs de votre domaine actuel.
Code :
NET VIEW
Affiche une liste des informations de session pour le serveur local.
Code :
NET SESSION
NLTEST ► Charge en mémoire les informations spécifiques à un pays.
Informations:
Syntaxe : NLTEST [/OPTIONS]
Plus d’informations : NLTEST /?
Exemple : Affiche des informations détaillées relatives à un utilisateur spécifique.
Code :
NLTEST /user:"Amesam"
NSLOOKUP► Affiche des informations sur le DNS. Avant d’utiliser cet outil, vous devez savoir comment fonctionne DNS. Nslookup n’est disponible que si le protocole TCP/IP a été installé.
Exemple : Crée une variable d’environnement %PATH% pour C:\utilitaire.
Code :
SETPATH=%PATH%;C:\utilitaire
PATHPING ► Outil de trace qui envoie plusieurs requête à chaque routeur situé entre une source et une destination pendant une période donnée, puis calcule les résultats basés sur les paquets renvoyés par chaque routeur.
Exemple : Envoyer le fichier test.txt situé dans le répertoire en cours sur une imprimante connectée au port LPT1 sur l’ordinateur local.
Code :
print /d:lpt1 test.txt
PROMPT ► Modifie l’invite de commandes de Windows.
Informations:
Syntaxe : PROMPT [texte] $A & (esperluette) $B | (barre verticale) $C ( (parenthèse gauche) $D date actuelle $E code ECHAP (code ASCII 27) $F ) (parenthèse droite) $G > (signe supérieur) $H retour arrière (efface le caractère précédent) $L < (signe inférieur) $N lecteur en cours $P lecteur et chemin d’accès en cours $Q = (signe égal) $S (espace) $T heure actuelle $V numéro de version de Windows
Plus d’informations : PROMPT /?
Exemple : Définit une invite de commande de deux lignes avec la date entre parenthèse et l’heure actuelle sur la première ligne et le signe supérieur à la ligne suivante avec le numéro de version de Windows.
Code :
prompt$c$d$f$s$s$t$_$g$v
PUSHD ► Enregistre le répertoire courant puis le modifie.
Informations:
Syntaxe : PUSHD [chemin | ..]
Plus d’informations : PUSHD /?
Exemple : Utiliser la commande pushd et popd, supprime tous les fichiers .txt du répertoire en cours.
Code :
pushd %1
del *.txt
popd
Lettre Q :
QPROCESS► Affiche des informations sur les processus qui s’exécutent sur un serveur hôte de Session Bureau à distance.
Informations:
Syntaxe :
Plus d’informations : QPROCESS /?
Exemple : Affiche des informations sur les processus qui s’exécutent sur un serveur hôte de Session Bureau à distance.
Code :
QPROCESS
QUSER► Affiche des informations sur les sessions utilisateur sur un serveur hôte de Session Bureau à distance.
Informations:
Syntaxe : QUERY USER [utilisateur| session | id_session] [/SERVER:serveur]
Plus d’informations : QUSER /?
Exemple : Affiche des informations sur les sessions utilisateur sur un serveur hôte de Session Bureau à distance.
Code :
QUSER
Afficher des informations sur l’utilisateur Amesam sur Server64:
Code :
QUSER Amesam /server:Server64
QWINSTA►Affiche des informations sur les sessions sur un serveur hôte de Session Bureau à distance.
Exemple : Copie les données et les sous-répertoires. Avec l’option /mir , si le répertoire de destination existe, les paramètres de sécurité de répertoire de destination sont remplacées. /np n’affiche pas le progression de la copie et enfin /TEE écrit la sortie de l’état dans la fenêtre de console, ainsi que dans le fichier journal.
Sc boot Indique si le dernier démarrage doit être enregistré en tant que la configuration de démarrage de bonne dernière.
Sc config Modifie la valeur des entrées d’un service dans le Registre et dans la base de données du Gestionnaire de contrôle de Service.
Sc continue Envoie une requête de contrôle CONTINUE à un service suspendu.
Contrôle SC Envoie un contrôle à un service.
Sc create Crée une sous-clé et des entrées pour le service dans le Registre et dans la base de données du Gestionnaire de contrôle de Service.
Delete SC Supprime une sous-clé de service à partir du Registre.
Sc description Définit la chaîne de description d’un service.
SC enumdepend Répertorie les services qui ne peuvent pas s’exécuter, sauf si le service spécifié est en cours d’exécution.
Sc failure Spécifie une ou plusieurs actions à entreprendre en cas de défaillance d’un service particulier.
SC failureflag Spécifie s’il faut déclencher les actions de récupération lorsqu’un service s’arrête à la suite d’une erreur.
SC getdisplayname Obtient le nom complet associé à un service particulier.
Sc getkeyname Obtient le nom de clé associé à un service particulier, en utilisant le nom complet comme entrée.
SC interrogate Envoie une requête de contrôle INTERROGATE à un service.
SC lock Verrouille la base de données du Gestionnaire de contrôle de Service.
Pause SC Envoie une requête de contrôle PAUSE à un service.
SC qc Interroge les informations de configuration pour un service.
SC qdescription Affiche la chaîne de description d’un service.
SC qfailure Affiche les actions qui seront effectuées si le service spécifié échoue.
Sc query Obtient et affiche des informations sur le service spécifié, pilote, type de service ou type de pilote.
SC queryex Obtient et affiche des informations détaillées sur le service spécifié, pilote, type de service ou type de pilote.
SC querylock Interroge et affiche l’état de verrouillage de la base de données du Gestionnaire de contrôle de Service.
SC sdset Définit le descripteur de sécurité d’un service, à l’aide de la définition du langage SDDL (Security Descriptor).
Sc sdshow Affiche le descripteur de sécurité d’un service, à l’aide du langage SDDL.
Sc start Démarre un service.
SC Stop Envoie une demande de contrôle STOP à un service.
Plus d’informations : SC /?
Exemple : Stop un service en cours d’exécution.
Code :
SC stop NomDuService
Affiche dans un fichier .txt les informations sur les services et drivers. Utilisée sans argument, elle renvoie la liste des services en cours d’exécution.
Code :
scquery > listeServices.txt
Pour supprimer un service il faut au préalable le stopper.
Code :
sc stop NomDuService
sc delete NomDuService
SCHTASKS ► Permet sous Windows XP et Windows Vista, à un administrateur de créer, supprimer, effectuer des requêtes, modifier, exécuter et mettre fin à des tâches planifiées sur un système local ou distant. Remplace AT.exe.
Informations:
Syntaxe : SCHTASKS /parameter [arguments]
Plus d’informations : SCHTASKS /?
Exemple : Cette action va exécuter cmd.exe le 01/09/2017 à 18h35.
SET ► Affiche, définit ou supprime des variables d’environnement Windows.
Informations:
Syntaxe : SET [variable=[chaîne]]
Plus d’informations : SET /?
Exemple : Affiche les variables d’environnement.
Code :
SET
Affiche une liste de toutes les variables d’environnement qui commencent par la lettre A.
Code :
Set A
Pour créer une variable test.
Code :
set testvar=test
SETLOCAL ► Commence la localisation des changements de l’environnement dans un fichier de commandes.
Informations:
Syntaxe :
Plus d’informations : SETLOCAL /?
Exemple : Mettre dans la variable « fichier » le nom du fichier et son extension (sans le chemin), puis l’afficher.
Code :
Setlocal enabledelayedexpansion
1. SET fichier=
2.for %%F in (c:\*) do (
3.SET fichier=%%~nxF
4. ECHO fichier: !fichier!
5. )
endlocal
SFC ► Vérifie les fichiers système protégés (FSP) et remplace les fichiers de version incorrecte par les versions correctes.
Informations:
Syntaxe : SFC [/SCANNOW] [/VERIFYONLY] [/SCANFILE=<fichier>] [/VERIFYFILE=<fichier>] [/OFFWINDIR=<répertoire Windows hors connexion> /OFFBOOTDIR=<répertoire Windows hors connexion>]
Plus d’informations : SFC /?
Exemple : Analyse l’intégrité de tous les fichiers système protégés et répare les fichiers ayant des problèmes lorsque cela est possible.
Code :
SFC /scannow
SHIFT ► Modifie la position des paramètres remplaçables dans un fichier de commandes.
Informations:
Syntaxe : SHIFT [/n]
Plus d’informations : SHIFT /?
Exemple :
Les lignes suivantes à partir d’un exemple de fichier batch appelé appelé MaCopie.bat montrent comment utiliser MAJ avec n’importe quel nombre de paramètres de traitement par lots. Dans cet exemple, appelé MaCopie.bat copie une liste de fichiers dans un répertoire spécifique. Les paramètres de traitement par lots sont représentés par les arguments de nom de répertoire et fichier.
Code :
@echo off
rem MYCOPY.BAT copies any number of files
rem to a directory.
rem The command uses the following syntax:
rem mycopy dir file1 file2 ...
set todir=%1
:getfile
shiftif"%1"==""goto end
copy %1 %todir%
goto getfile
:end
set todir=
echo All done
SHUTDOWN ► Permet d’effectuer l’arrêt local ou à distance d’une machine.
Exemple : Démarre MonProgramme à l’invite de commande et conserve l’usage de la fenêtre d’invite de commande en cours.
Code :
start MonProgramme
Démarre une nouvelle instance du bloc-notes avec le fichier test.txt.
Code :
startnotepadtest.txt
SUBST ► Affecte une lettre de lecteur à un chemin d’accès.
Informations:
Syntaxe : SUBST [lect1: [lect2:]chemin] SUBST lect1: /D Attention : Les commandes suivantes ne fonctionnent pas et ne doivent pas être utilisés sur les lecteurs qui sont spécifiés dans la commande subst : CHKDSK diskcomp diskcopy format Label recover
Plus d’informations : SUBST /?
Exemple : Pour créer un lecteur virtuel Y pour le chemin d’accès C:\user\Amesam\test.
Code :
subst Y: C:\user\Amesam\test
SYSTEMINFO ► Permet à l’administrateur d’afficher les informations de base de la configuration système.
Affiche à distance les informations de configuration d’un ordinateur nommé PC-TEST appartenant qui se trouve sur le domaine pc-aide-tuto-informatique.fr.
Exemple : Pour exécuter le vérificateur de pilote avec les paramètres standard du piloteverify du centre de sécurité.
Code :
verifier /standard /driver wscsvc
VERIFY ► Indique à Windows s’il doit ou non vérifier que les fichiers sont écrits correctement sur un disque donné.
Informations:
Syntaxe : VERIFY [ON | OFF]
Plus d’informations : VERIFY /?
Exemple : Sans paramètres affiche l’état en cours de la commande.
Code :
VERIFY
Active la commande.
Code :
VERIFYON
Désactive la commande.
Code :
VERIFYOFF
VOL ► Affiche le nom et le numéro de série du volume.
Informations:
Syntaxe : VOL [lecteur:]
Plus d’informations : VOL /?
Exemple : Affiche le nom et le numéro de série du volume E:.
Code :
VOL E:
VSSADMIN► Affiche les clichés instantanés de volume actuel et tous les rédacteurs du cliché instantané installés et les fournisseurs.
Informations:
Syntaxe : VSSADMIN
Delete Shadows – Supprime les clichés instantanés de volume List Providers – Liste les fournisseurs enregistrés de clichés instantanés de volume List Shadows – Liste les clichés instantanés de volume existants List ShadowStorage – Liste les associations de stockage de clichés instantanés de volume List Volumes – Liste les volumes éligibles pour les clichés instantanés List Writers – Liste les rédacteurs enregistrés de clichés instantanés de volume Resize ShadowStorage – Redimensionne les associations de stockage de clichés instantanés de volume
Plus d’informations : VSSADMIN/?
Exemple : Répertorie les volumes qui sont éligibles pour les clichés instantanés.
Code :
Vssadmin list volumes
Redimensionne la taille maximale d’une association de stockage de clichés instantanés (soyez prudent avec cette requête).
Exemple : Copie tous les fichiers et sous-répertoires (y compris tout sous-répertoire vide) du lecteur E:.
Code :
xcopy E: b: /s /e
Récupére tous les .wma du disque C: et les copie dans le répertoire dossierWMA du disque E:. Elle crée également une liste des fichiers copiés et l’enregistre sur le disque E: (E:\WMA.txt).