J'ai découvert AutoIt il y a deux jours, et pour m’entraîner et voir les possibilités de ce langage j'ai créer un petit programme : MacroMan ( Génial comme nom ).
Il permet de faire quoi
Et bien il permet d'enregistrer une combinaison de touche avec "Alt" ou "Ctrl" + une autre touche du clavier (de préférence une lettre) qui écrira un texte entrée par l'utilisateur.
Téléchargement :
C'est par ici !
Et enfin voici les sources :
► Afficher le texte
Code : Tout sélectionner
#cs ----------------------------------------------------------------------------
AutoIt Version : 3.3.8.1
Auteur: Lucas
Fonction du Script :
Création de raccourci clavier
#ce ----------------------------------------------------------------------------
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#include <Misc.au3>
#include <Array.au3>
#include <ComboConstants.au3>
#Region ### START Koda GUI section ### Form=c:\users\lucas\desktop\programmes\autoit\macroman\form1.kxf
Global $Form1_1 = GUICreate("MacroMan", 300, 175, 192, 124)
Global $MenuItem3 = GUICtrlCreateMenu("&Fichier")
Global $MenuItem1 = GUICtrlCreateMenuItem("Ouvrir Macro", $MenuItem3)
Global $MenuItem2 = GUICtrlCreateMenuItem("Ouvrir Macro Liste", $MenuItem3)
Global $MenuItem4 = GUICtrlCreateMenuItem("Sauvegrde", $MenuItem3)
Global $MenuItem5 = GUICtrlCreateMenuItem("Quitter", $MenuItem3)
Global $version = GUICtrlCreateLabel("Version 0.1", 240, 120, 57, 17)
Global $Auteur = GUICtrlCreateLabel("Créer par Lucas", 216, 136, 79, 17)
Global $Name_Input_Macro = GUICtrlCreateInput("Macro1", 72, 8, 121, 21)
Global $LBL_Name_Macro = GUICtrlCreateLabel("Nom Macro :", 8, 10, 65, 17)
Global $LBL_Raccourci_Keyboard = GUICtrlCreateLabel("Raccourci clavier :", 8, 34, 93, 17)
Global $and = GUICtrlCreateLabel("et", 170, 34, 30, 17)
Global $LBL_TXT = GUICtrlCreateLabel("Texte :", 8, 58, 37, 17)
Global $Macro_Input_TXT = GUICtrlCreateInput("Texte", 48, 56, 121, 21)
Global $CMB_Key1 = GUICtrlCreateCombo("", 104, 32, 49, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Ctrl|Alt")
Global $Input2 = GUICtrlCreateInput("", 200, 32, 49, 21)
Global $CMB_Macro_liste = GUICtrlCreateCombo("", 100, 80, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
Global $Label1 = GUICtrlCreateLabel("Liste des macros :", 8, 82, 89, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$docs = @MyDocumentsDir
$file_open_macro = ""
While 1
$Name_Macro = GUICtrlRead("10")
$Key1 = GUICtrlRead("16")
$Key2 = GUICtrlRead("17")
$Name_TXT = GUICtrlRead("15")
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $MenuItem5
$exit = MsgBox(4,"Quitter ?","Si vous quittez le logiciel vos macro ne marcheront plus."&@CRLF&"Continuer ?")
If $exit = 6 Then
Exit
Else
EndIf
;================================CHARGEMENT======================
Case $MenuItem1 ;CHARGEMENT D'UNE MACRO
$file_open_macro = FileOpenDialog ( "Selectionner une macro",""&$docs,"Macro (*.mco)", 2); Ouverture d'un boite de dialoge pour ouvrir une macro
If @error Then; On test si il y a une erreur, si ce n'est pas le cas on continue
MsgBox(4096, "", "Aucun fichier n'a pas était ouvert.")
Else
Load($file_open_macro)
EndIf
;==========================================CHARGEMENT LISTE================================
Case $MenuItem2
$select_folder = FileSelectFolder("Choisissez un dossier comportenant des macros pour créer une macro liste",@DesktopDir)
$liste = _FileListToArray($select_folder,"*.mco")
If @error = 1 Then
MsgBox(0, "Erreur", "Aucun dossier trouvé !")
ElseIf @error = 4 Then
MsgBox(0, "Erreur", "Aucun fichier au format .mco trouvé, création de la macro liste impossible !")
Else
$txt = ""
For $i = 1 to $liste[0]
$txt &= $liste[$i] & "|"
Next
GuiCtrlSetData("18", $txt)
EndIf
Case $CMB_Macro_liste
$combo = GUICtrlRead ( "18" )
$file_open_macro = $select_folder &"\"& $combo ;Lire la combo box
Load($file_open_macro)
;=========================SAVE===========================
Case $MenuItem4
$path = FileSaveDialog("Sauvegrder la Macro",""&$docs,"Macro (*.mco)", 2, $Name_Macro)
If @error Then
MsgBox(4096, "", "Le fichier n'a pas était sauvegrder.")
Else
save($path)
EndIf
EndSwitch
$Key2 = StringUpper ( $Key2 ) ;transforme la chaine en MAJUSCULE
$Key2 = __StringToHex($Key2) ; transforma la 2e chaine en hexa
$cursor = GUICtrlRead ("16")
If StringCompare($Key1,"Ctrl")=0 Then
$Key1 = "11"
ElseIf StringCompare($Key1,"Alt")=0 Then
$Key1 = "12"
EndIf
Macro($Key1,$Key2)
WEnd
;=================================================================================;
;Utilisation des macros
Func Macro($Key1,$Key2)
If _IsPressed($Key1) and _IsPressed($Key2) Then
send($Name_TXT)
EndIf
EndFunc
;Converti du texte en hexadecimal
Func __StringToHex($sString)
Return Hex(StringToBinary($sString))
EndFunc
;Converti de l'hexadecimal en texte
Func __HexToString($sString)
If StringLeft($sString, 2) <> "0x" Then $sString = "0x" & $sString
Return BinaryToString($sString)
EndFunc
Func Load($file_open_macro)
$file_line = _FileCountLines($file_open_macro)
$Name_Macro = FileReadLine($file_open_macro,1)
GUICtrlSetData ( "10", $Name_Macro )
$Key1 = FileReadLine($file_open_macro,2)
GUICtrlSetData ( "16", $Key1 )
$Key2 = FileReadLine($file_open_macro,3)
GUICtrlSetData ( "17", $Key2 )
$Name_TXT = FileReadLine($file_open_macro,4)
GUICtrlSetData ( "15", $Name_TXT )
EndFunc
Func Save($path)
MsgBox(4096, "", "Sauvegarde réussi.")
_FileCreate($path&".mco")
FileWrite ( $path&".mco",""&$Name_Macro&@CRLF&$Key1&@CRLF&$Key2&@CRLF&$Name_TXT&@CRLF )
EndFunc
Si vous voulez r'apporter un bug, ou si vous avez juste une question ou un avis c'est ici
Au passage le logiciel est vraiment peut avancé, il ne gère pas encore les macro liste ( plusieurs macros en même temps ) ce qui implique que les macro ne fonctionne que une par une
De plus on peut changer le texte des combobox pour faire planter le logicielle
V'là