[Ex] Outil de relevé de s/n (fonctionne avec une douchette)

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

[Ex] Outil de relevé de s/n (fonctionne avec une douchette)

#1

Message par GhostLine »

Bonjour à tous,

Voici mon dernier script, écrit pour répondre à la demande d'un de nos clients : relever les numéros de série de tous les matériels connectés à une configuration, quelle que soit cette configuration.

Du coup, j'ai opté pour une définition de chaque configuration en utilisant un fichier INI contenant le détail de chaque pièce.

Le programme, dans mon cas, est lancé à partir d'une image PXE, sur le réseau : à la fin de la saisie, le fichier INI se recopie sur le serveur (afin de collecter plus facilement les numéros de série de chaque configuration).

NB : ce programme est prévu pour fonctionner avec une douchette (lecteur code à barre) configurée avec un CR en fin de code.

Le code :
► Afficher le texte
Un fichier INI :
► Afficher le texte
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [Ex] Outil de relevé de s/n (fonctionne avec une douchet

#2

Message par TommyDDR »

Juste quelques remarques :roll:

1) Ne pas utiliser Koda, ou alors si vous le faite, arrangez le code ensuite
2) (en rapport avec le 1) Quand vous avez des variables de type $Input01, $Input02, etc, c'est que vous DEVEZ (dans 99% des cas) utiliser un tableau. $Input[0], $Input[1], etc
3) (en rapport avec le 2) Quand vous répétez une partie de votre code en ne changeant que quelques données, utilisez une boucle et des tableaux
4) Mettez TOUJOURS Opt("MustDeclareVars", 1) en début de script, cela vous forcera à bien déclarer vos variables et vous évitera quelques soucis au runtime.
5) Évitez les HotKeySet, il y a toujours une autre solution (l'utilisateur n'appréciera rarement que vous lui bloquiez sa touche ENTER ^^)
6) Chaque FileFindFirstFile DOIT avoir un FileClose
7) Pensez à toutes les possibilités : Votre FileMove se base sur une lecture de ini, si celui-ci n'existe pas, réfléchissez où vous voulez que le fichier s'enregistre
7 Bis) Pensez bien que FileMove("C:\xxx\yyy\aaa.ini", "bbb.ini") correspond à FileMove("C:\xxx\yyy\aaa.ini", @WorkingDir & "\bbb.ini") et non pas à FileMove("C:\xxx\yyy\aaa.ini", @ScriptDir & "\bbb.ini"). Dans la plupart des cas @WorkingDir = @ScriptDir, mais dès lors que vous faites un FileOpenDialog, FileSaveDialog, etc... ou que vous êtes appelé par un Run("VotreExe.exe", "WorkingDir\Different\De\ScriptDir") @WorkingDir sera différent de @ScriptDir.
C'est pour ça qu'il est préférable d'indiquer clairement le chemin voulu.
Voici votre code après avoir appliqué tous ces conseils.
► Afficher le textecode
Je ne vous donne pas ce code pour dire "vous codez mal", j'ai pris le temps de la corriger pour que vous puissiez l'analyser et que vous puissiez apprendre. :wink:

Bonne lecture.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [Ex] Outil de relevé de s/n (fonctionne avec une douchet

#3

Message par GhostLine »

Merci pour les remarques, et je ne le prends pas mal, au contraire ;)

Edit : et il manque le code :)

Edit2 : et effectivement, pour l'utilisation de tableaux pour les $inputXX, je suis un c**, j'aurai dû y penser ^^'

Edit3 : pour le hotkeyset, outre le fait que l'interface est prévu pour une machine sans clavier, l'appli prendra le devant de l'écran, sans autre possibilité d'interaction avec le système. C'est en tout cas la solution la plus simple que j'ai trouvé, compte tenu du fait que la "saisie" d'un code barre est quasi instantanée, et que je n'ai pas de certitude quant à la "longueur" de ce que j'attends en saisie. De plus, pour avoir fait un programme similaire utilisant un "Select ... Case" sur _ispressed(0D), j'ai pu constater que parfois, le CR passait à la trappe, car trop rapide.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [Ex] Outil de relevé de s/n (fonctionne avec une douchet

#4

Message par TommyDDR »

En effet, avec le code c'est mieux :oops:

Edit : Pour le HotKeySet, si votre touche doit être détecté uniquement dans votre fenêtre, regardez du coté de GUISetAccelerator(xxx)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Répondre