Auteur/autrice : Amesam
MENACE INFORMATIQUE CARTE EN TEMPS RÉEL
VirusTotal
Télécharger iso Windows et Office
Voici un petit lien que beaucoup apprécieront =>ICI
Il permet de télécharger les images ISO officiels Micro$oft de :
- Windows 7 à Windows 10
- Office 2007 à Office 2016
Swl1f


10 conseils pour rester net sur le web
A découvrir et à faire partager.
https://www.cnil.fr/fr/10-conseils-pour … sur-le-web

Quel navigateur ?

Quel Navigateur ?
Il est important de suivre les évolutions de vos navigateurs, les mises à jour ont un rôle important aussi bien au niveau de la sécurité mais aussi pour la stabilité de votre navigateur.

Internet Explorer
Internet Explorer a fait un grand pas dans le domaine de la sécurité et inclus dans ses dernières versions des mises à jour importantes. Malgré ce travail internet Explorer reste néanmoins en chute libre sur sa cote de popularité à cause d’une mauvaise réputation car ses anciennes versions ne respectaient plus les évolutions d’internet.
Si vous êtes sur Windows 10, vous disposez déjà de Microsoft Internet Explorer 11. Cependant, Microsoft Edge est un tout nouveau navigateur, également fourni avec Windows 10. Par ailleurs, il s’agit de votre navigateur par défaut.
Pour la mise à jour d’internet explorer 11 cliquez sur la roue dentée en haut du navigateur, allez ensuite A propos de Internet Explorer. Vérifier que votre navigateur installe bien les mises à jour automatiquement.


Edge
Largement plus performant qu’Internet Explorer, Edge vous permet de facilement de partager des pages Web. Ce navigateur permet également d’interagir avec Cortana, l’assistant vocal de Microsoft.
Depuis la mise à jour de Windows 10, Edge prend enfin en charge les extensions, ce qui permet d’enrichir les fonctionnalités de base du navigateur (par ex.: ADBlock PLus, Ghostery… etc.). Extensions Edge
Pour assurer ces mises à jour elles sont déployées avec les mises à jour automatiques.
Apprendre à connaître Microsoft Edge

Google Chrome
Le navigateur de Google qui a su développer un dynamisme bien particulier. Il est aussi très fluide et à la particularité d’être rapide, Google Chrome est conçu pour vous permettre de naviguer soit-disant sur la toile en sécurité.
Contrairement à ce qui peut se dire, il n’est pas Open source mais simplement basé sur Chromium.
Google vie en partie des publicités c’est pour cela que Adblock PLus a été transféré pour Google Chrome qui lui-même n’étant pas gêné par cela dans ses opérations de Tracking et de Profiling.
Cependant, performant, réactif et simple à utiliser, Chrome dispose également d’un grand catalogue d’extensions. Les extensions conçues pour Chrome sont parfois bridées à cause du règlement de Google, contrairement à Mozilla Firefox.
Pour la mise à jour de Google Chrome, cliquez sur les trois petits points en haut à droite de votre navigateur, , allez ensuite sur Aide puis sur A propos de Chrome. Vérifier que votre navigateur installe bien les mises à jour automatiquement.


Mozilla Firefox
Libre et Open source, Mozilla Firefox offre la possibilité de s’assurer qu’Internet reste une ressource ouverte et accessible à tous. Disponible pour Windows, Linux et MAC, la fondation Mozilla ne cherche pas à générer des profits avec vos données et respecte la vie privée de ses utilisateurs (contrairement aux autres navigateurs proposés sur cette page). Vous pouvez adapter le navigateur à vos besoins (Attention tout de même car vous pouvez agir sur des fonctions qui peuvent rendre instable le navigateur)
Les modules de Mozilla Firefox offrent un large panel d’options qui vous permettra de personnaliser votre navigateur.
Pour la mise à jour de Mozilla Firefox, cliquez sur trois barres en haut à droite du navigateur, allez ensuite le point d’exclamation en bas du menu et cliquez sur A propos de Firefox. Vérifier que votre navigateur installe bien les mises à jour.


Opera
Opera est un navigateur Web gratuit et développé par la société norvégienne Opera Software et pour Windows, Linux et OS X Mac
Particulièrement léger il a su se mettre à chaque fois à la hauteur de ses confrères.
Opéra est très rapide et avec une légèreté qui lui est toujours appréciable avec au final peu de faille de sécurité.
Valable pour Microsoft Windows, Mac OS, GNU/Linux. De nombreuses extensions de qualité sont disponibles et on peut les rechercher directement dans le menu Extension du navigateur ou via
addons.opera.com
Pour la mise à jour d’Opera cliquez sur le menu en haut à gauche du navigateur, allez ensuite sur A propos de d’Opera. Vérifier que votre navigateur installe bien les mises à jour automatiquement.


Safari
Safari est le navigateur par défaut de OS X Mac. Les navigateurs Web tentent de rendre la navigation de tous les internautes du monde plus propre, plus sécurisée, moins angoissante, en particulier en utilisant des filtres développés par des tiers extérieurs.
Ces filtres recherchent en permanence la présence du nom de domaine (site Web) de chaque lien (URL) sur laquelle vous cliquez (lien dans les pages Web visitées, liens des résultats de recherches avec un moteur de recherche, etc. …) dans deux listes noires qu’ils maintiennent :
Pour la mise à jour d’internet explorer 11 cliquez sur la roue dentée en haut du navigateur, allez ensuite A propos de Internet Explorer. Vérifier que votre navigateur installe bien les mises à jour automatiquement.


Amesam Administrateur du site
Deep web
Le Deep web, web profond

Attention le Dark Web peut-être dangereux !
Ne pas confondre le Dark Web et le Deep Web, Dark Web est une sous partie du Deep Web et Deep Web est lui même la sous partie du Web visible (Surfacique).

Avant de commencer reprenons la base.
Le Web et Internet ont tendance à être confondue:
Internet est un réseau de réseaux informatiques qui est composée de millions de réseaux aussi bien public que privé. L’information est transmise grâce à des protocoles http ou https de transfert de données qui permet à l’élaboration d’un ensemble de services diverses comme le courrier électronique, P2P ou encore le World Wide Web (le Web).
le Web est une application parmi d’autres qui utilise Internet et ses millions de réseaux comme un support physique. C’est un réseau d’information constituée par des milliards de documents dispersés sur des millions de serveur dans le monde et sont relayés les uns aux autres selon le principe de l’hypertexte, on compare souvent le Web à une toile d’araignée qui a des liens qui sont reliés les uns aux autres. Donc nous avons deux sortes de Web, le Web visible et le web invisible soit le Deep Web avec une sous partie qui est le Dark Web.
Le Deep web, web profond en français, appelé aussi web invisible est une collection de pages non-indexées, ce qui signifie qu’on ne pourra pas les trouver via les moteurs de recherche, comme Google, bing, Yahoo… ou bien vos navigiteurs, Mozilla, Google Chrome, Edge, IE…
Principales raison de la non indexation :
- Le format non indexable
- Le contenu privé (web privé)
- Le contenu à accès limité
- Le contenu sous un nom de domaine non standard
- Le contenu non lié (pages sans backlins)
- Le contenu de script
- Le contenu dynamique
- L’Internet des objets (L’IDO)
Ne croyez pas ou n’allez pas croire que ces pages non indexés sont forcément mauvaises, par exemple vous faites une recherche de billet d’avion et vous vous rendez, sur Air France, vous allez donc remplir le formulaire de réservation. Une fois votre demande validée vous arrivez sur une nouvelle fenêtre qui est généré grâce à des filtres afin de stocker votre saisie dans la banque de données de Air France. Et bien cette page n’est indexés par aucun moteur de recherche, si vous faite une recherche Google, Bing ou autres vous ne trouverez jamais cette page. C’est du Deep Web. Autre exemple, si vous allez sur un document partager sur Google Drive par exemple, consulter des mails sur Gmail, c’est également du Deep Web, si vous êtes sur un réseau interne, intranet ,c’est du Deep Web … Vous voyez pas si compliqué.
Savez-vous que le Web classique ne représente qu’en réalité qu’une toute petite partie du contenu disponible.
Le deep web représenterait 96 % de l’intégralité du web alors que le web accessible ne représenterait que 4% (selon ginjfo)
Donc 96% de ressources profondes sont donc des pages qui existent bel et bien, mais qui ne sont pas visibles.

Comment y accéder ?

En aucun cas allez sur le Dark Web pour vous en amuser. Au contraire, je vous le déconseille fortement. En dehors des sites très intéressants, on peut y trouver des sites vraiment très dangereux.
Précautions à prendre :
- Ne jamais saisir vos identifiants sur Tor, vous pouvez tomber sur un hacker sans même le savoir.
- Ne cliquez jamais sur une pub du deep Web, la plupart de ces pubs téléchargent sans votre accord des logiciels malveillants.
- Un vrai conseil, faite attention où vous surfez car comme expliqué aucune loi sur le Web Profond, vous pouvez donc tomber sur un site de personnes mal attentionnées et qui pourrait se retourner contre vous, même physiquement car malheureusement vous pouvez avoir affaire directement à des gens déterminé et voir extrêmement dangereux !
- Utiliser une machine virtuelle au lieu de votre machine physique, cela vous évitera des soucis qui peuvent rendre votre PC inutilisable. Et renseignez-vous pour la paramétrer.
- Ne téléchargez aucun fichier.
Vous pouvez rencontrez des sites ou des nids à virus qui sont utiles pour les réseaux mafieux. Tueur à gage, oui, ce n’est pas une plaisanterie, drogue à vendre, tout s’achète, le bitcoin également, vous pouvez aussi trouver des sites ou des films particulièrement choquant et violent et voir horrible. Vous pouvez même trouver des sites pour transactions humaines. Enfin pour vous dire que vous risquez beaucoup à allez sur le Web Profond et pas seulement pour votre PC mais aussi pour votre vie personnel et vous pouvez être choqué par des contenus tout simplement horrible, inhumain ! Donc SVP faites attention à vous ! Et n’oubliez pas que vous pouvez avoir une personne, une organisation malintentionnée et non surveillée par les services dédiés (trop compliqué (au vue de la masse))
Tor

Tor est un navigateur maintenu par des volontaires qui fournissent un anonymat en ligne en masquant qui vous êtes et d’où vous vous connectez. Ce service vous protège également du réseau Tor lui-même.
Le domaine .onion ne fait pas partie de la hiérarchie officielle des DNS, il est réservé à un autre usage. Il indique une adresse anonyme accessible par l’intermédiaire du réseau Tor.
Tor est de ce qui à de mieux pour le web profond il n’y pas de loi pas d’ordre pas de justice voilà pourquoi Tor peut être dangereux.
La racine .onion n’est possible qu’avec le navigateur Tor. Darknet permet d’accéder à la face la moins accessible du Web.


Le Darknet est un réseau superposé qui utilise des protocoles spécifiques intégrant des fonctions d’anonymisation.
Mais c’est quoi un réseau superposé . Et bien pour faire simple, c’est un réseau bâti sur un autre réseau. Et les protocoles ? Un accord entre des processus définis, comme nous venons de voir dans cette page.
Et de plus avec des fonctions d’anonymisation qui assemblent le tout.
Dit comme ceci c’est très simple, mais en réalité c’est bien plus compliqué, c’est un résumé grossièrement simplifié.
Tor est un navigateur pour un web sans limite.
Attention sans limite veut dire que tout s’affiche, ça vous l’avez compris !
Le « but à la base » de Tor est de combattre le tracking (analyse dynamique à des fins publicitaires), mais également de masquer l’adresse IP, le navigateur WEB Tor intègre des mécanismes de blocage et de filtrage logicielles.
Non, non, le processus n’est pas fait pour une utilisation malveillante. Premièrement une éthique existe et se respecte et attention car de grands États pour ne pas citer suivent minutieusement les flux.
Et oui

Tor subi des restrictions, d’une part comme les États-Unis qui vont au procès et d’autres restrictions, voir refus de site Web qui veulent se protéger.
Donc effectivement Tor et d’autres de notre web profond permettent de faire tout ce que la toile permet, mais attention tout y traine, j’insiste sur ce point ! Et une surveillance existe !
Bonne toile !


Amesam Administrateur du site
Moteur de recherche – Qwant

Je vous présente le moteur de recherche qui respecte les lois et les cultures européennes.
Son siège est en France [cocorico].
Il est important de bien choisir son navigateur comme décrit ici, tout d’abord en fonction de ses goûts, puis de sa sécurité et de sa rapidité.
Mais il est tout aussi important de bien choisir aussi son moteur de recherche.
Et ce n’est pas ce qui manque sur la toile.
Voici les plus connus et utilisés (vous savez, ceux qui s’installent à votre insu et qui se retrouvent par défaut sans rien vous demander),
il y a (ex : Google, Bing, Yahoo, Ask, Lycos).
Qwant : Ce nom vous dit quelque chose ?
Qwant est un moteur de recherche qui a trois particularités.
• Respect de votre vie privée
Qwant délivre les meilleurs résultats possibles à vos recherches sans jamais chercher à savoir qui vous êtes ou ce que vous faites.
Qwant ne garde donc rien en mémoire et n’exploite aucune donnée personnelle à des fins publicitaires ou autres.
• Neutralité et impartialité
Qwant rend l’ensemble du Web visible sans discrimination et sans partialité.
• Recherche panoramique
Qwant fournit sur la même page les résultats issus de l’ensemble du Web. Sites internet, réseaux sociaux, images, vidéos, shopping, musiques… Tout est facilement accessible en une seule recherche.
Alors, n’hésitez plus, installez Qwant sur votre ordinateur et définissez-le en tant que moteur de recherche.
Il suffit de choisir votre navigateur ici pour installer l’extension.
Tous les paramètres sont à porter de main et facile à configurer pour vos recherches.
Plus d’informations ICI


Réinitialisation de Microsoft Edge
- Supprimer le dossier Microsoft.MicrosoftEdge_8wekyb3d8bbwe
- Au clavier : appuyer simultanément sur les touches et R .
- Taper : %localappdata%\packages ► valider par Entrée ou OK.

- Sur le dossier Microsoft.MicrosoftEdge_8wekyb3d8bbwe faire clic-droit ► Supprimer (si « accès refusé » cliquer sur [Continuer]).

- Réinitialisation avec Powershell.
- Menu « Démarrer » ► sur Windows PowerShell faire clic-droit ► Exécuter en tant qu’administrateur.


- Sélectionner intégralement la commande suivante, puis clic-droit ► Copier :
Code : Tout sélectionner
Get-AppXPackage -AllUsers -Name Microsoft.MicrosoftEdge | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml" -Verbose}
- Dans la fenêtre PowerShell faire un clic-droit (la commande se collera dans la fenêtre).

- Valider en tapant sur Entrée.

- Edge a été réinitialisé, il faudra le reparamétrer à sa guise.
- On peut installer par exemple uBlock origin, pour bloquer les publicités intempestives.
- L’extension est actuellement disponible en téléchargement sur Windows Store.


Amesam Administrateur du site
Désactiver provisoirement AdblockPlus sur les navigateurs

Adblock Plus est un bloqueur de publicités populaire pour Firefox, Chrome, Opera, Safari, Android et Internet Explorer, Edge, Maxthon et Yandex Browser.
Il bloque les publicités indésirables proposées par les sites que vous visitez.
Certains sites pour des raisons diverses, exigent que vous désactiviez les bloqueurs de publicité comme Adblock Plus et cela pour pouvoir télécharger leurs logiciels de sécurité gratuits, ou pour visitiez leurs sites.
Cette désactivation peut être bien évidemment provisoire.
Les publicités sont des moyens de rémunération pour les sites et certains exigent que Adblock Plus soit désactivé.
Exemple sur le site de Malekal :

- Ici, nous allons voir comment désactiver Adblock Plus sur Internet Explorer, Mozilla, Chrome et Edge.
Avec Internet Explorer
- Afficher le barres de menus : clic-droit dans le bandeau supérieur -> cocher « Barre des menus » et « Barre d’état »
(dans cette dernière apparaît le logo d’ABP si activé). - Cliquer sur le logo ABP en bas de page.
- Cliquer sur Désactiver pour *le site choisi*.
- Effectuer la manœuvre inverse à la fin.
Avec Firefox
- Si l’icône ABP n’est pas présente sur l’interface, cliquer sur « Menu »
- Cliquer sur l’icône ABP
- Cocher Désactiver pour *le site choisi*

Avec Google Chrome
- Cliquer sur l’icône ABP
- Cliquer sur Activer sur ce site

- Vous aurez donc un affichage vous indiquant que ADB est désactivé pour le site en question.

Avec Microsoft Edge
- Cliquer sur l’icône ABP
- Cliquer sur Activer sur ce site

- Vous aurez donc un affichage vous indiquant que ADB est désactivé pour le site en question.


Amesam Administrateur du site
Navigateurs
Koda FormDesigner
- 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.

- 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.

Le code édité par Koda :
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$hGUI = GUICreate("MA GUI", 418, 362, 2407, 196)
GUISetBkColor(0xC0C0C0)
$Label1 = GUICtrlCreateLabel("Voici ma GUI", 24, 8, 110, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x0000FF)
$Edit1 = GUICtrlCreateEdit("", 16, 152, 385, 193)
GUICtrlSetData(-1, "Edit1")
$btACT1 = GUICtrlCreateButton("Action 1", 24, 48, 105, 25)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetBkColor(-1, 0x808000)
$btACT2 = GUICtrlCreateButton("Action 2", 24, 80, 105, 25)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetBkColor(-1, 0x808000)
$btACT3 = GUICtrlCreateButton("Action 3", 24, 112, 105, 25)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetBkColor(-1, 0x808000)
$ckNIV1 = GUICtrlCreateCheckbox("Niveau 1", 168, 48, 97, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$ckNIV2 = GUICtrlCreateCheckbox("Niveau 2", 168, 80, 97, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$ckNIV3 = GUICtrlCreateCheckbox("Niveau 3", 168, 112, 97, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Niveau :", 168, 24, 61, 20)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$Pic1 = GUICtrlCreatePic("E:\AutoIT\Files Folders Search\1308547900.jpg", 280, 24, 113, 113)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
– 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.







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) :








Administrateur du site
Scite4AutoIt3
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.


- 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.








– 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


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.

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.



– 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.



Exemple :
Code : Tout sélectionner
#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 function MsgBox.
; Author(s) .....: guinness, jpm
; ===============================================================================================================================
; #CONSTANTS# ===================================================================================================================
; Message Box Constants
; Indicates the buttons displayed in the message box
Global Const $MB_OK = 0 ; One push button: OK
Global Const $MB_OKCANCEL = 1 ; Two push buttons: OK and Cancel
Global Const $MB_ABORTRETRYIGNORE = 2 ; Three push buttons: Abort, Retry, and Ignore
Global Const $MB_YESNOCANCEL = 3 ; Three push buttons: Yes, No, and Cancel
Global Const $MB_YESNO = 4 ; Two push buttons: Yes and No
Global Const $MB_RETRYCANCEL = 5 ; Two push buttons: Retry and Cancel
Global Const $MB_CANCELTRYCONTINUE = 6 ; Three buttons: Cancel, Try Again and Continue
Global Const $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
Global Const $MB_ICONSTOP = 16 ; Stop-sign icon
Global Const $MB_ICONERROR = 16 ; Stop-sign icon
Global Const $MB_ICONHAND = 16 ; Stop-sign icon
Global Const $MB_ICONQUESTION = 32 ; Question-mark icon
Global Const $MB_ICONEXCLAMATION = 48 ; Exclamation-point icon
Global Const $MB_ICONWARNING = 48 ; Exclamation-point icon
Global Const $MB_ICONINFORMATION = 64 ; Icon consisting of an 'i' in a circle
Global Const $MB_ICONASTERISK = 64 ; Icon consisting of an 'i' in a circle
Global Const $MB_USERICON = 0x00000080
; Indicates the default button
Global Const $MB_DEFBUTTON1 = 0 ; The first button is the default button
Global Const $MB_DEFBUTTON2 = 256 ; The second button is the default button
Global Const $MB_DEFBUTTON3 = 512 ; The third button is the default button
Global Const $MB_DEFBUTTON4 = 768 ; The fourth button is the default button.
; Indicates the modality of the dialog box
Global Const $MB_APPLMODAL = 0 ; Application modal
Global Const $MB_SYSTEMMODAL = 4096 ; System modal
Global Const $MB_TASKMODAL = 8192 ; Task modal
; Indicates miscellaneous message box attributes
Global Const $MB_DEFAULT_DESKTOP_ONLY = 0x00020000 ; Same as desktop of the interactive window station
Global Const $MB_RIGHT = 0x00080000 ; The text is right-justified.
Global Const $MB_RTLREADING = 0x00100000 ; Displays message and caption text using right-to-left reading order on Hebrew and Arabic systems.
Global Const $MB_SETFOREGROUND = 0x00010000 ; The message box becomes the foreground window
Global Const $MB_TOPMOST = 0x00040000 ; The message box is created with the WS_EX_TOPMOST window style.
Global Const $MB_SERVICE_NOTIFICATION = 0x00200000 ; The caller is a service notifying the user of an event.
Global Const $MB_RIGHTJUSTIFIED = $MB_RIGHT ; Do not use, see $MB_RIGHT. Included for backwards compatibility.
; Indicates the button selected in the message box
Global Const $IDTIMEOUT = -1 ; The message box timed out
Global Const $IDOK = 1 ; OK button was selected
Global Const $IDCANCEL = 2 ; Cancel button was selected
Global Const $IDABORT = 3 ; Abort button was selected
Global Const $IDRETRY = 4 ; Retry button was selected
Global Const $IDIGNORE = 5 ; Ignore button was selected
Global Const $IDYES = 6 ; Yes button was selected
Global Const $IDNO = 7 ; No button was selected
Global Const $IDCLOSE = 8 ; Close button was selected
Global Const $IDHELP = 9 ; Help button was selected
Global Const $IDTRYAGAIN = 10 ; Try Again button was selected
Global Const $IDCONTINUE = 11 ; Continue button was selected
; ===============================================================================================================================
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.



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

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

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

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

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

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

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

Amesam Administrateur du site
Commencer avec AutoIt

- Commencer avec AutoIt.
- Les variables.
- L’action sous condition.
- Les boucles.
- Les fonctions.
- Les macros.
- Les Opérateurs.
- Les UDF.
- Création du code.
~*~*~*~*~*~*~*~*~*~*~*~*~*~*
- 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


- 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.



- 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.
- Ce qui donne pour MsgBox :

- Autoit.fr traduit cette aide en français. A ce jour cette traduction est encore en cours mais de nombreuses aides sont déjà traduites :

- 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.

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 :
- 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 = @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
- La variable ne sera utilisée que dans une seule fonction : Elle doit être déclarée en tant que Local.
- Local $Ma_Variable

- 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.

#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.
- Dans la programmation, tout langage confondu, cette action sous condition sera toujours pareil.
on fait ça
SINON
on fait ça
FINI
Exemple :

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 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 :
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 :

For $i = 0 To 10 Step 1 ; Pour $i on 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
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 :

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
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 :

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)
- 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.


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
- Ici par exemple nous utilisons @OSVersion qui nous retourne la version du système d’exploitation.

- Exemple 2 :
- On peut multiplier la demande.


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.
- 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
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
Local $Ma_variable = 7
Local $Ma_var = 7
If $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 (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.
- UDF distribué par AutoIt
- 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.
#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 1 if 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 function doesn't work in safe mode.
; 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 Return 0
Return $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 - 0 and sets @error
; Author ........: FredAI
; Modified.......:
; Remarks .......: The system restore takes a few seconds to update. According to MSDN, this function doesn't work in safe mode.
; 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
Return 1
Else
Return 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 0 if 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 function doesn't work in safe mode.
; Related .......: _SR_RemoveRestorePoint
; Link ..........:
; Example .......: $rpDeleted = _SR_RemoveAllRestorePoints()
; ===============================================================================================================================
Func _SR_RemoveAllRestorePoints()
Local $aRP = _SR_EnumRestorePoints(), $ret = 0
For $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 Return 0
If $obj_SR.Enable($DriveL) = 0 Then Return 1
Return 0
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 Return 0
If $obj_SR.Disable($DriveL) = 0 Then Return 1
Return 0
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.
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore", "SystemRestorePointCreationFrequency", "REG_DWORD", 0
- 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
- 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.



#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

Amesam Administrateur du site
Activer/Désactiver CMD
À faire sous un fichier .bat

Script qui désactive l’invite de commande.
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 CMD
echo **************
reg add HKCU\Software\Policies\Microsoft\Windows\System /v DisableCMD /t REG_DWORD /d 2 /f
Pause
Script qui réactive l’invite de commande.
Code :
@echo off
echo Activer CMD
echo **********
reg delete HKCU\Software\Policies\Microsoft\Windows\System /v DisableCMD /f
Pause

Amesam Administrateur du site
Activer/Désactiver la restauration système
À faire sous un fichier .bat

Script qui désactive la restauration système.
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 la restauration système
echo *******************************************
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\SystemRestore" /v DisableSR /t REG_DWORD /d 1 /f
Pause
Script qui réactive la restauration système.
Code :
@echo off
echo
echo Activer la restauration système
echo ***************************************
reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\SystemRestore" /v DisableSR /
Pause

Amesam Administrateur du site
Activer/Désactiver le gestionnaire des tâches
À faire sous un fichier .bat

Script qui désactive le gestionnaire 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 le gestionnaire des tâches
echo ********************************
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableTaskMgr /t REG_DWORD /d 1 /f
Pause
Script qui réactive la restauration système.
Code :
@echo off
echo
echo Activer le gestionnaire des tâches
echo ******************************************
reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableTaskMgr /f
Pause

Amesam Administrateur du site
Activer/Désactiver l’accès au Panneau de configuration
À faire sous un fichier .bat

Script qui désactive l’accès au panneau de configuration.
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 l'accès au panneau de configuration
echo *********************************************************
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v NoDispCPL /t REG_DWORD /d 1 /f
Pause
Script qui réactive la restauration système.
Code :
@echo off
echo Activer l'accès au panneau de configuration
echo *****************************************************
reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v NoDispCPL /f
Pause

Amesam Administrateur du site
Activer/Désactiver l’invite de commande
À faire sous un fichier .bat

Script qui désactive l’invite de commande.
Code :
@echo off
chcp 28591 > nul
echo Désactiver l'invite de commande
echo ****************************************
reg add HKCU\Software\Policies\Microsoft\Windows\System /v DisableCMD /t REG_DWORD /d 2 /f
Pause
Script qui réactive la restauration système.
Code :
@echo off
echo Activer l'invite de commande
echo ************************************
reg delete HKCU\Software\Policies\Microsoft\Windows\System /v DisableCMD /f
Pause

Amesam Administrateur du site