Changements Entrainant une Rupture de Script dans les Versions Récentes
Cette page contient une liste de toutes les modifications apportées dans les mises à jour récentes qui vont presque certainement casser les scripts existants. Veuillez lire attentivement cette liste lors de la mise à niveau au cas oû vous n'aurriez pas suivi les développements des versions bêta. Si l'un de ces problèmes vous concerne, vous devrez modifier vos scripts.
v3.3.14.3
UDFs:
v3.3.14.2
UDFs:
- La fonction _SQLite_Startup () ne télécharge plus automatiquement les fichiers DLL SQLite à partir de autoitscript.com. La plupart des utilisateurs ignoraient totalement que ce téléchargement se produisait à chaque exécution de script et que cela provoquait un grave problème de bande passante pour le site Web. Les DLL SQLite doivent maintenant être téléchargées manuellement. Consultez la documentation _SQLite_Startup() pour plus de détails.
v3.3.14.0
AutoIt :
- Si Min et Max ont la même valeur, alors Random() retournera cette valeur sans queg @error ne soit défini.
- Sous Vista ou Server 2008 _GDIPlus_Startup() nécessite une DLL explicite pour le support de GDI+ v1.1.
- Les opérations sur les fichiers texte non ouverts avec FileOpen() et les flags explicites Unicode détectent maintenant l'encodage légèrement différemment pour être plus en phase avec les éditeurs modernes. Cela inclut toutes les fonctions de fichier utilisées avec un nom de fichier, par exemple FileRead ("nomdefichier.txt"). Plus précisément :
-
- Les fichiers contenant un BOM seront ouverts dans le mode approprié selon ce BOM. Les BOMs UTF-8 et UTF-16 sont vérifiés.
- Les fichiers UTF-8 et UTF-16 sans BOM seront automatiquement détectés et ouverts dans le mode correspondant.
- Les fichiers contenant des valeurs NULL sont ouverts en mode Binaire ($FO_BINARY) par défaut (sauf s'ils sont détectés comme UTF-16 valide). Auparavant, ils étaient ouverts en mode ANSI. Utilisez le flag $FO_ANSI pour forcer le mode.
- Les fichiers contenant uniquement les caractères 1-127 sont ouverts par défaut en UTF-8 sans BOM ($FO_UTF8_NOBOM). Auparavant, ils étaient ouverts en mode ANSI. Utilisez le flag $FO_ANSI pour forcer le mode.
- Les fichiers contenant uniquement les caractères 1-255 sont ouverts par défaut en ANSI ($FO_ANSI).
- En raison de ce qui précède, FileGetEncoding() retourne maintenant 512 ($FO_ANSI) ou 256 ($FO_UTF8_NOBOM) au lieu de 0 qui était non documenté mais indiquait ANSI.
- Les nouveaux fichiers sont écrits par défaut en UTF-8 sans BOM ($FO_UTF8_NOBOM). Utilisez FileOpen() pour forcer le mode.
- Les fichiers UTF-16 sans BOM sont maintenant automatiquement détectés dans la plupart des cas.
UDFs :
- UDF Excel, fonction _Excel_BookOpen : Lorsque le paramètre $bReadOnly = False et l'accès en lecture-écriture ne peut pas être accordé, @error était définie à 4 et le classeur ouvert en lecture seule. Maintenant @error = 0, @extended = 1 et le classeur est ouvert en lecture seule.
- UDF Word, fonction _Word_DocOpen : Lorsque le paramètre $bReadOnly = False et l'accès en lecture-écriture ne peut pas être accordé, @error était définie à 4 et le document ouvert en lecture seule. Maintenant @error = 0, @extended = 1 et le document est ouvert en lecture seule.
v3.3.12.0
UDFs :
- Le paramètre $hPrintCallback (anciennement $sPrintCallback) dans _SQLite_Startup() nécessite maintenant un objet de fonction plutôt qu'une chaîne de fonction. Cela est dû à l'utilisation de Call() en cours de suppression de l'UDF.
- Le paramètre $hFunctionCall (anciennement $sFunctionCall) dans _FTP_ProgressDownload() et _FTP_ProgressUpload() nécessite maintenant un objet de fonction plutôt qu'une chaîne de fonction. Cela est dû à l'utilisation de Call() en cours de suppression de l'UDF.
-
_ArrayDelete() définit @error sur non-zéro si $iElement est hors limites. Veuillez consulter la documentation pour plus de détails.
- Changement du comportement et de l'ordre des paramètres pour _StringBetween(). Veuillez consulter la documentation pour plus de détails.
-
_GUICtrlListView_GetView() et _GUICtrlListView_SetView() utilisaient 0 pour l'affichage détaillé et 1 pour l'affichage des grandes icônes, alors que maintenant c'est 0 pour l'affichage des grandes icônes et 1 pour l'affichage détaillé.
- L'UDF Array a été réécrit. Des fonctions et/ou des paramètres ont été modifiés, supprimés ou ajoutés. Une liste détaillée peut être trouvée ici.
- L'UDF Excel UDF a été réécrit. Des fonctions et/ou des paramètres ont été modifiés, supprimés ou ajoutés. Une liste détaillée peut être trouvée ici.
Informations manquantes dans les notes de la version v3.3.10.0 :
-
_ArrayDisplay() a été réécrit avec des paramètres supplémentaires. Veuillez consulter la documentation pour plus de détails.
v3.3.10.1
UDFs :
Informations manquantes dans les notes de la version v3.3.10.0 :
- Les champs $tagBITMAPINFO ont été modifiés en utilisant le préfixe "bi".
v3.3.10.0
AutoIt :
- La valeur de retour de ShellExecute() a été changée. Au lieu de retourner 1, elle retourne le PID du processus exécuté ou -1 s'il n'existe pas de PID.
UDFs :
- Documentation de _Iif() supprimée. La fonction est toujours présente dans Misc.au3, mais elle sera supprimée ultérieurement. Les scripts l'utilisant devraient être mis à jour pour utiliser les opérateurs ternaire à la place.
- _IEErrorHandlerRegister() a été supprimé. La fonction n'est plus requise puisque les erreurs COM ne sont plus fatales.
- Documentation de _StringEncrypt() supprimée. La fonction est toujours présente dans String.au3, mais elle sera supprimée ultérieurement. Les scripts l'utilisant devraient être mis à jour pour utiliser les fonctions Crypt à la place.
Regardez l'exemple de _Crypt_EncryptData() pour une alternative à _StringEncrypt.
- Documentation de _StringReverse() supprimée. La fonction est toujours présente dans String.au3, mais elle sera supprimée ultérieurement. Les scripts l'utilisant devraient être mis à jour pour utiliser la fonction native StringReverse() à la place.
- Avec l'introduction des fonctions WinAPIEx, certaines constantes de l'include Constants.au3 ont été déplacées dans l'include WinAPIConstants.au3.
- L'UDF Word a été complètement réécrit. Des fonctions et des paramètres ont été renommés, supprimés ou ajoutés. Une liste détaillée peux être trouvée ici.
- $tagGDIPPENCODERPARAMS supprimé, utilisez $tagGDIPENCODERPARAMS.
-
$tagGDIPENCODERPARAMS utilise $tagGDIPENCODERPARAM comme première structure du tableau.
- $tagGDIPENCODERPARAM le champs "count" a été renommé en "nbOfValues".
- Les champs $tagBITMAPINFO ont été modifiés en utilisant le préfixe "bi".
- Mise à jour de la fonction _ArrayUnique() pour accélérer le traitement. Le dernier paramètre est utilisé pour sélectionner le comptage des chaines retournées dans $aArray[0].
- 'UDF ToolTip a été réécrit. Des fonctions et/ou des paramètres ont été renommés, supprimés ou ajoutés. Une liste détaillée peux être trouvée ici.
-
_ArrayDisplay() a été réécrit avec des paramètres supplémentaires. Veuillez consulter la documentation pour plus de détails.
v3.3.8.0
AutoIt :
-
ObjName() a eu un certain nombre de corrections d'erreur et de changements qui peuvent affecter les données retournées. Les UDFs intégrés ont été modifiés en conséquence mais les scripts personnalisés devront être modifiés.
-
ObjEvent() les objets AutoIt.Error n'ont plus les méthodes Raise() ou Clear() et les propriétés sont en lecture seule.
-
Int() et Hex() ne changent plus la valeur de @error
- Les méthodes COM nécessitent désormais des parenthèses pour que le langage puisse détecter en interne les propriétés et les méthodes plus facilement.
v3.3.6.0
UDFs :
- _DateToDayOfWeekIso renvoyait 0-6 et à été changé en 1-7 où Lundi = 1.
v3.3.4.0
Certaines des fonctionnalités suivantes sont devenues obsolètes. Celles-ci ne sont plus documentées, mais continuent à fonctionner. elles seront supprimées après la version 3.3.4.0. Il est fortement recommandé de mettre à jour les scripts utilisant ces fonctionnalités obsolètes par les nouveaux comportements. Certaines d'entre elles ont déjà été supprimées et seront notées comme telles.
AutoIt :
- Le mode de lecture "RAW" de la commande FileOpen() a été supprimé.
- InetGet("abort"), @InetGetActive et @InetGetBytesRead ont été supprimés. La liste ci-dessous, vous montre les nouvelles fonctions pour accéder aux anciens comportements :
-
-
InetGet("abort") - L'appel à la nouvelle fonction InetClose() avec le handle retourné par InetGet() arrêtera le téléchargement.
-
@InetGetActive - L'appel à la nouvelle fonction InetGetInfo() sans paramètres retourne le nombre de téléchargements actifs.
-
@InetGetBytesRead - L'appel à la nouvelle fonction InetGetInfo() avec le handle retourné par InetGet() renverra le nombre d'octets lu (et plus) pour le téléchargement concerné.
- AdlibEnable() et AdlibDisable() ont été supprimés. Voir les nouvelles fonctions AdlibRegister() et AdlibUnRegister().
- OnAutoItStart() a été supprimé. Voir la nouvelle directive #OnAutoItStartRegister.
- OnAutoItExit() a été supprimé. Voir les nouvelles fonctions OnAutoItExitRegister() et OnAutoItExitUnRegister().
v3.3.2.0
Certaines des fonctionnalités suivantes sont devenues obsolètes. Celles-ci ne sont plus documentées, mais continuent à fonctionner. elles seront supprimées après la version 3.3.2.0. Il est fortement recommandé de mettre à jour les scripts utilisant ces fonctionnalités obsolètes par les nouvelles. Certaines d'entre elles ont déjà été supprimées et seront notées comme telles.
AutoIt :
-
ShellExecute() et ShellExecuteWait() n'utilisent plus la valeur "open" par défaut. Voir la section remarques de ces fonctions pour plus de détails.
- La valeur de retour de InetGet() a changé. Il est important de lire et de comprendre les changements car il est possible d'avoir une perte de ressources si InetGet() est mal utilisé.
- InetGet("abort"), @InetGetActive et @InetGetBytesRead sont maintenant obsolètes. La liste suivante montre les nouvelles fonctions utilisées pour accéder aux anciennes fonctionnalités :
-
-
InetGet("abort") - Appeler la nouvelle fonction InetClose() avec le handle retourné par InetGet() arrêtera le téléchargement.
-
@InetGetActive - Appeler la nouvelle fonction InetGetInfo() sans paramètres retourne le nombre de téléchargement en cours.
-
@InetGetBytesRead - Appeler la nouvelle fonctionInetGetInfo() avec le handle retourné par InetGet() retourne le nombre d'octets lu (et plus) pour le téléchargement concerné.
- L'option FtpBinaryMode fixée avec AutoItSetOption() à été supprimée. Maintenant InetGet() prend un flag pour spécifier le mode de transfert.
- L'alias URLDownloadToFile() pour InetGet() a été supprimé.
- AdlibEnable() et AdlibDisable() sont devenus obsolètes. Voir les nouvelles fonctions AdlibRegister() et AdlibUnRegister().
- OnAutoItStart() est obsolète. Voir la nouvelle déclaration préprocesseur #OnAutoItStartRegister.
- OnAutoItExit() est obsolète. Voir les nouvelles fonctions OnAutoItExitRegister() et OnAutoItExitUnRegister().
- L'option OnExitFunc de AutoItSetOption() a été supprimée. Voir les nouvelles fonctions OnAutoItExitRegister() et OnAutoItExitUnRegister().
-
GUICreate() avec $WS_EX_MDICHILD à été corrigé pour être relatif à la zone cliente tel que décrit dans la documentation.
-
ProcessWait() retournent maintenant un PID au lieu de 1 en cas de succès.
-
WinWait(), WinWaitActive(), WinActivate(), WinActive() et WinMove() retournent maintenant un handle au lieu de 1 en cas de succès.
- La macro @YDAY utilise maintenant la portée 001 - 366 au lieu de 1 - 366. Cela rend la macro plus en accord avec d'autres langage (comme le C/C ++) et avec toutes les macros de date qui retournent des chaînes complétées par des 0 afin d'unifier la longueur de chaîne.
-
RegEnumKey() et RegEnumVal() retournent maintenant une chaîne vide au lieu d'un message d'erreur.
UDFs :
- Le dernier paramètre optionnel de _StringBetween() a été supprimé.
- _StringAddThousandsSep() a été supprimée. Il y a trop d'opinions sur ce que cette fonction devrait faire et trop de révisions de cette fonction ont été faites.
- _SQLite_SaveMode() a été renommé en _SQLite_SafeMode().
v3.3.0.0
AutoIt :
- Le support de Windows 9x et Windows NT 4.0 a été supprimé. Utilisez la version v3.2.12.1 de AutoIt si vous en avez vraiment besoin.
- @ProcessorArch modifié en @OSArch car trop ambigu.
-
RegRead() et RegWrite() n'utilisent plus des chaînes hexadécimale pour les types REG_BINARY - Le type de données binaire est nativement imposé.
AutoItX :
- La version native de la DLL utilise maintenant exclusivement des chaînes Unicode (LPWSTR et LPCWTSR). Si vous avez réellement besoin de chaîne ANSI, alors continuez à utiliser la version v3.2.12.1. La solution de contournement la plus simple consiste à utiliser une fonction "wrapper" pour convertir simplement entre Unicode et ANSI. Une sélection limitée de fonctions (WinWait ... et Send) ont une version ANSI, mais il n’est pas prévu d’ajouter des versions ANSI aux autres fonctions, sauf en cas de forte demande.
v3.2.12.0
AutoIt :
- RunAsSet() a été supprimé. Utilisez les nouvelles fonctions RunAs() et RunAsWait() à la place. Elles ont été améliorées avec une meilleure sécurité et plus de fonctionnalités (il est toujours recommandé de ne pas stocker des mots de passe importants dans vos scripts).
- L'option RunErrorsFatal a été supprimée. Run(), RunWait(), ShellExecute() et ShellExecuteWait() fixent maintenant @error en cas d'echec du lancement de l'application. AutoIt ne lance plus d'erreur fatale lorsqu'une application échoue au lancement.
-
StdoutRead(), StderrRead() et ConsoleRead() ont subit des changements significatifs. Ils ne bloquent plus, ils retournent immédiatement. Les paramètres ont changés. Il n'est plus possible de lire des paramètres de comptage. Le paramètre peek a été déplacé en deuxième paramètre. Le troisième paramètre spécifie maintenant si vous voulez que les données soient retournées en format binaire (texte par défaut). La macro @extended détient maintenant le nombre d'octets/caractères lu.
-
StdinWrite(), ConsoleWrite() et ConsoleWriteError() se comporterons maintenant différemment en cas de données binaires. Les données binaires sont écrites en l'état au lieu de les convertir en chaînes. Aussi, la valeur de retour de ces fonctions devient le nombre d'octets écrits au lieu d'une valeur générique de 1.
- Supprimé : Option ColorMode ( Opt() ).
- Corrigé : Random(Min,Max,1). Précédemment, ceci ne retournait jamais la valeur Max, donc si la valeur Max à été artificiellement incrémentée, le script à besoin d'être mis à jour.
UDFs :
Veuillez consulter ce fil de discussion pour plus de détails et d'aide concernant ces changements.
- GUIConstants.au3 est identique à GUIConstantsEx.au3. Cela signifie que beaucoup de scripts utilisant la fonctionnalité GUI avancée devront utiliser des déclarations #include supplémentaires pour inclure les fichiers contenant les constantes qui ont été précédemment et faussement inclusent.
- GUIDefaultConstants.au3 n'existe plus. Vous devez maintenant inclure le fichier individuel correspondant aux constantes des contrôles dont vous avez besoin. Par exemple : ListBoxConstants.au3, ComboConstants.au3, EditConstants.au3, etc...
- La documentation de _ArrayCreate() a été supprimée. La fonction est toujours présente, mais sera supprimée plus tard. Les scripts devraient être mis à jour afin d'utiliser la syntaxe d'initialisation de tableau développé dans AutoIt.
v3.2.10.0
AutoIt :
-
DllCall() : Types short_ptr, long_ptr, int_ptr obsolètes. Utilisez respectivement short*, long* et int*
UDFs
- _GUICtrlXXXYYY() ont été rebaptisées _GUICtrlXXX_YYY() sans aucun changement de fonctionnalités.