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 = ""
$file_line = ""
Dim $Array_return_Load[5] = [0,0,0,0,0]
Dim $Key1[10]
Dim $Key2[10]
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
For $i = 1 to $liste[0] ;boucle pour lire tous les fichiers avec la bonne extension
$txt = "" ;On vide la variable pour ne pas se retrouver avec plusieurs fois la même liste
$txt_load ="" ;on la vide pour ne pas qu'il y est de problème de chargement de fichiers
$txt &= $liste[$i] & "|" ;on les met dans une varibale pour ensuite les rangés dans une combobox
GuiCtrlSetData("18", $txt) ;on les range dans une combobox
$txt_load &= $liste[$i] ;on les met dans une variable pour les chargés
$file_load_macro = $select_folder &"\"& $txt_load ;on charge grâce au répertoire + nom du fichier (ligne au dessus)
load_macro_liste($file_load_macro);on charge les fichier un à un en mémoire
MsgBox(0,"","txt = "&$Array_return_Load[3]&@CRLF&"I = "&$i)
Dim $Key1[$i] = [$Array_return_Load[3]]
Next
EndIf
_ArrayDisplay($Key1)
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) ; transforme 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
;=======================================FONCTIONS=========================================;
;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) ;FONCTION CHARGEMENT 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 )
Return
EndFunc
Func load_macro_liste($file_load_macro) ;FONCTION CHARGEMENT MACRO
$file_line = _FileCountLines($file_load_macro)
$Name_Macro = FileReadLine($file_load_macro,1)
GUICtrlSetData ( "10", $Name_Macro )
$Key1 = FileReadLine($file_load_macro,2)
GUICtrlSetData ( "16", $Key1 )
$Key2 = FileReadLine($file_load_macro,3)
GUICtrlSetData ( "17", $Key2 )
$Name_TXT = FileReadLine($file_load_macro,4)
GUICtrlSetData ( "15", $Name_TXT )
Dim $Array_return_Load[5] = [$file_line,$Name_Macro,$Key1,$Key2,$Name_TXT]
Return $Array_return_Load
EndFunc
Func Save($path) ;FONCTION SAUVEGRDE MACRO
MsgBox(4096, "", "Sauvegarde réussi.")
_FileCreate($path&".mco")
FileWrite ( $path&".mco",""&$Name_Macro&@CRLF&$Key1&@CRLF&$Key2&@CRLF&$Name_TXT&@CRLF )
EndFunc