Cette section répond à quelques unes des questions les plus fréquemment posées dans le forum. Si vous ne pouvez pas trouver la réponse que vous cherchez ici, alors le forum doit être votre premier point d'appel.
Si vous voulez lancer quelque chose comme une commande DOS "Dir" alors vous devez le faire par l'interpréteur de commandes (command.com ou cmd.exe selon votre OS). La macro@ComSpec contient l'emplacement exact de ce fichier. Vous devriez utiliser la fonctionRunWait() qui attend la fin du programme DOS avant de passer à la ligne de script suivante. Voici un exemple d'exécution de la commande DOS sur le disque C: (qui lançe effectivement la commandeCommand.com /c Dir C:\)
RunWait(@ComSpec&" /c Dir C:\")
Seulement quelques extensions de fichiers sont habituellement "exécutable" - ce sont les .exe, .bat, .com, .pif. Les autres types de fichiers comme .txt et .msi sont actuellement exécutés avec un autre programme. Lorsque vous double-cliquez sur un fichier "MonFichier.msi", c'est la commande "Msiexec.exe MonFichier.msi" qui est exécutée en arrière-plan. Donc pour lancer un fichier .msi à partir d'AutoIt, vous devriez faire :
RunWait("msiexec MonFichier.msi")
Ou, lancer la commande "Start" qui saura automatiquement comment exécuter le fichier pour vous :
RunWait(@ComSpec&" /c Start MonFichier.msi")
Ou, utiliser la fonction ShellExecuteWait qui saura automatiquement comment exécuter le fichier pour vous:
ShellExecuteWait("MonFichier.msi")
Si vous voulez utiliser des guillemets à l'intérieur d'une chaîne, alors vous devez "les doubler". Donc pour chaque guillemet que vous voulez, vous devez en mettre deux. Par exemple, si vous vouliez déclarer une variable avec la chaîne:Un mot dans "cette" phrase est entre guillemets ! Vous devriez faire :
$var="Un mot dans ""cette"" phrase est entre guillemets !"
ou utilisez des apostrophes à la place :
$var='Un mot dans ""cette"" phrase est entre guillemets !'
Il y a une description détailléeici.
Si vous avez une variable nommée $msg et que vous voulez l'afficher dans une MsgBox alors cela ne marchera PAS :
#include<MsgBoxConstants.au3>En l'état, cela afficheraMa variable est $msg. Pour y arriver, dire à AutoIt de joindre la chaîne et la variable ensemble en utilisant l'opérateur& operator:
#include<MsgBoxConstants.au3>
MsgBox($MB_OK,"Exemple","Ma variable est "&$msg)
Mode avancé: Si vous avez beaucoup de variables à insérer dans une chaîne, alors vous trouverez utile la fonctionStringFormat(). Par exemple, si je voulais insérer $var1 à $var5 dans une chaîne, il serait plus facile de faire:
#include<MsgBoxConstants.au3>
$msg=StringFormat("Var1 est %s, Var2 est %s, Var3 est %s, Var4 est %s",$var1,$var2,$var3,$var4)
MsgBox($MB_OK,"Exemple",$msg)
Si vous utilisezSend pour envoyer le contenu d'une variable, attention si il contient des caractères spéciaux comme ! ^ + {SPACE} car il seront considérés comme des raccourcis-clavier spéciaux - Rarement ce que l'on attend. Pour contourner le problème, utilisez le mode RAW deSend() qui ne traduit pas les touches spéciales :
Send($mavariable,1)
Généralement une valeur de retour est utilisée pour signaler la réussite d'une fonction. Mais, si une fonction est déjà en train de retourner quelque chose (CommeWinGetText() ) alors nous aurons besoin d'une autre solution pour savoir si la fonction a réussi sa mission, en attribuant une valeur à @error.
Ah, c'est très facile. Si vous désirez faire stopper un script quand vous pressez une certaine combinaison de touches, alors utilisez la fonctionHotKeySet() pour lancer une fonction utilisateur quand la touche désirée est pressée. Cette fonction utilisateur devra juste contenir la commande de sortieExit.
Voici un code qui interrompra le script quand vous presserez CTRL+ALT+x :
HotKeySet("^!x","Sortie")
...
...
; Le reste du script
...
...
FuncSortie()
Exit
EndFunc ;==>Sortie
Vous devez ouvrir le programme complet de compilation (au lieu de simplement faire un clic droit sur un script et de sélectionner Compile).Cette page décrit le compilateur en détail.
Utilisez la fonction_Singleton(). Voir la documentation des Fonctions (UDF) pour plus de détails sur _Singleton() et comment l'utiliser.
SVP, consultez la sectionLimites et Défauts pour les limites techniques de AutoIt3.
Information supplémentaire sur les limites théoriques de AutoIt3.
Valeur | Description |
---|---|
Pas de limite | Nombre maximum de fenêtres GUI. |
Pas de limite | Nombre maximum de fonctions en cours d'utilisation. |
Pas de limite | Nombre maximum de variables en cours d'utilisation à un instant donné. |
1.7E308 à 1.7E+308 | Précision des nombres (à virgule flottante) de 15 chiffres. |
0x8000000000000000 à 0x7FFFFFFFFFFFFFFF | Précision des nombres hexadécimaux (entier signé 32-bit/64-bit). |
Ceci devrait être le bouton vous permettant d'ouvrir les exemples dans le fichier d'aide.
Ce problème est dû au fait que le fichier hhctrl.ocx n'est pas correctement enregistré ou corrompu.
Essayez de l'enregistrer en faisant "regsvr32 hhctrl.ocx" à partir de l'invite de commande, ou vérifiez sa validité.