[..] Script pour entreprise.
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- sksbir
- Niveau 7
- Messages : 384
- Enregistré le : lun. 26 oct. 2009 17:57
- Localisation : Lyon
- Status : Hors ligne
Re: [..] Script pour entreprise.
Copie de données: simuler la souris pour faire un copier-coller n'est pas une bonne idée : Il vaut mieux simuler les raccourcis clavier.
Pour accéder au contenu du presse-papier, il y a les fonctions clipget() et clipput()
Pour stopper sur fenetre inactive ( vraiment inactive ? ou carrément absente ?) , il suffit d'utiliser winwaitactive() , avec un timeout, puis d'exploiter le code retour ( = 0 si le timeout est arrivé ) pour sortir du script
Pour accéder au contenu du presse-papier, il y a les fonctions clipget() et clipput()
Pour stopper sur fenetre inactive ( vraiment inactive ? ou carrément absente ?) , il suffit d'utiliser winwaitactive() , avec un timeout, puis d'exploiter le code retour ( = 0 si le timeout est arrivé ) pour sortir du script
Re: [..] Script pour entreprise.
Merci pour ta réponse. Je vais voir pour les copiers coller comment le pourrais faire avec les touche clavier.
Pour ce qui est de "Pour stopper sur fenetre inactive ( vraiment inactive ? ou carrément absente ?) , il suffit d'utiliser winwaitactive() , avec un timeout, puis d'exploiter le code retour ( = 0 si le timeout est arrivé ) pour sortir du script"
Je suis désolé mais je ne sais absolument pas ce que cela signifie. C'est trop technique pour moi.
Pour ce qui est de "Pour stopper sur fenetre inactive ( vraiment inactive ? ou carrément absente ?) , il suffit d'utiliser winwaitactive() , avec un timeout, puis d'exploiter le code retour ( = 0 si le timeout est arrivé ) pour sortir du script"
Je suis désolé mais je ne sais absolument pas ce que cela signifie. C'est trop technique pour moi.
- ZDS
- Membre émérite
- Messages : 554
- Enregistré le : jeu. 10 juin 2010 10:35
- Localisation : 22300 Cul-d'chouette Langue-de-vache
- Status : Hors ligne
Re: [..] Script pour entreprise.
Bonjour,
Copier des données en passant par la souris le clavier ou le presse papier sont des méthodes sales quand on peut faire autrement.
Exemple pour lire la cellule B7 d'un fichier Excel :Une quantité impressionnante de flags et de fonctions _ExcelXXXXXXXXX permettent de ne pas afficher la fenetre Excel ou de gérer les droits d'accès au fichier, de lire ou écrire des valeurs et de les sauvegarder, etc... Tout ce qu'il faut faire, c'est charger le flux du fichier au début du script pour ne pas avoir à le faire à chaque lecture.
Pour la copie, jette ton ton clic-droit/coller à la poubelle et utilise plutot un ControlSend (récupère les identifiants dont je t'ai parlé avec AutoIt3Info, il est installé de base, le raccourci est dans le menu Démarrer et dans les menus de Scintilla).
A bientôt.
Copier des données en passant par la souris le clavier ou le presse papier sont des méthodes sales quand on peut faire autrement.
Exemple pour lire la cellule B7 d'un fichier Excel :
► Afficher le texteLire cellule
Pour la copie, jette ton ton clic-droit/coller à la poubelle et utilise plutot un ControlSend (récupère les identifiants dont je t'ai parlé avec AutoIt3Info, il est installé de base, le raccourci est dans le menu Démarrer et dans les menus de Scintilla).
A bientôt.
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
Re: [..] Script pour entreprise.
Vous êtes trop fort pour moi. J'ai beau y mettre de la bonne volonté, je ne comprend pas.
Je ne veux pas que sa soit propre ou sale.
Je veux juste faire le script et l'utiliser une fois pour mettre a jour nos prix de produit.
Je n'y arriverais pas avec vos techniques de pro
Pour AutoIt3Info j'essaye de l'utiliser mais je ne comprend pas qu'elle infos je doit récupéré.
En bref, je pense abandonné. Ce n'es pas contre vous mais chacune de vos réponse m’embrouille un peu plus....
Je demande un copier coller plus ou moins propre on me répond d'utiliser uniquement des fonction excels.
Je suis nul en Auto-it et je n'ai pas vraiment envie d'aprendre a m'en servir. je veux juste savoir utilisé les fonctions de base.
Je ne veux pas que sa soit propre ou sale.
Je veux juste faire le script et l'utiliser une fois pour mettre a jour nos prix de produit.
Je n'y arriverais pas avec vos techniques de pro

Pour AutoIt3Info j'essaye de l'utiliser mais je ne comprend pas qu'elle infos je doit récupéré.
En bref, je pense abandonné. Ce n'es pas contre vous mais chacune de vos réponse m’embrouille un peu plus....
Je demande un copier coller plus ou moins propre on me répond d'utiliser uniquement des fonction excels.
Je suis nul en Auto-it et je n'ai pas vraiment envie d'aprendre a m'en servir. je veux juste savoir utilisé les fonctions de base.
- sksbir
- Niveau 7
- Messages : 384
- Enregistré le : lun. 26 oct. 2009 17:57
- Localisation : Lyon
- Status : Hors ligne
Re: [..] Script pour entreprise.
On pourrait te donner des réponses plus précises, mais pour ça, il faudrait que tu publies sur le forum le script autoit que tu as généré avec le recorder ( celui qui fonctionne, mais que tu veux améliorer en mettant des controles dedans ).
Re: [..] Script pour entreprise.
Je n'ai pas fait le scrit avec le recorder, sa ne fonctionnait pas.
Je peux essayer. Sa vous donnera des info. je le post quand j'ai fini.
Je peux essayer. Sa vous donnera des info. je le post quand j'ai fini.
Re: [..] Script pour entreprise.
Voila le code généré par AU3recorder. il ne fonctionne pas, le mien ne ressemble pas vraiment a celui ci.
Le probleme est que chaque Modification d'article a un nom de fenetre en fonction du nom du produit.
Code : Tout sélectionner
region --- Au3Recorder generated code Start ---
_WinWaitActivate("Microsoft Excel - Yoshimura 2011 DIST PRICE LIST(2) [Mode de compatibilité]","Yoshimura 2011 DIST ")
MouseClick("left",62,301,2)
MouseClick("right",62,301,1)
_WinWaitActivate("classname=Net UI Tool Window","")
MouseClick("left",27,31,1)
_WinWaitActivate("Microsoft Excel - Yoshimura 2011 DIST PRICE LIST(2) [Mode de compatibilité]","Yoshimura 2011 DIST ")
MouseMove(379,903)
MouseDown("left")
MouseMove(379,902)
MouseUp("left")
_WinWaitActivate("APISOFT Gestion Commerciale XCS - xxxxxxxxxxxxxxxxxxxx - Dossier en Euro - [Admin]","Articles : Standard")
MouseClick("left",87,134,2)
MouseClick("right",81,130,1)
MouseClick("left",113,198,1)
MouseClick("left",112,171,2)
_WinWaitActivate("APISOFT Gestion Commerciale XCS -xxxxxxxxxxx - Dossier en Euro - [Admin]","GSXR 600 K1-K5 - Lig")
MouseClick("left",233,903,1)
_WinWaitActivate("Microsoft Excel - Yoshimura 2011 DIST PRICE LIST(2) [Mode de compatibilité]","Yoshimura 2011 DIST ")
MouseClick("left",520,303,2)
MouseClick("left",534,296,2)
MouseClick("right",534,301,1)
_WinWaitActivate("classname=Net UI Tool Window","")
MouseClick("left",39,33,1)
_WinWaitActivate("Microsoft Excel - Yoshimura 2011 DIST PRICE LIST(2) [Mode de compatibilité]","Yoshimura 2011 DIST ")
MouseMove(363,903)
MouseDown("left")
MouseMove(363,902)
MouseUp("left")
_WinWaitActivate("APISOFT Gestion Commerciale XCS - xxxxxxxxxxxxxxx - Dossier en Euro - [Admin]","GSXR 600 K1-K5 - Lig")
MouseClick("left",321,530,2)
_WinWaitActivate("APISOFT Gestion Commerciale XCS - xxxxxxxxxxxxxxxx - Dossier en Euro - [Admin]","Article [Modificatio")
MouseClick("right",326,530,1)
MouseClick("left",364,594,1)
Send("{DOWN}{DOWN}{DOWN}")
MouseClick("left",366,373,1)
MouseClick("left",693,417,1)
Send("???{DOWN}{DOWN}{DOWN}{LEFT}{LEFT}??")
MouseClick("left",263,672,1)
_WinWaitActivate("APISOFT Gestion Commerciale XCS - xxxxxxxxxxxxxxx - Dossier en Euro - [Admin]","Articles : Standard")
MouseMove(267,903)
MouseDown("left")
MouseMove(267,902)
MouseUp("left")
_WinWaitActivate("Microsoft Excel - Yoshimura 2011 DIST PRICE LIST(2) [Mode de compatibilité]","Yoshimura 2011 DIST ")
MouseClick("right",17,303,1)
_WinWaitActivate("classname=Net UI Tool Window","")
MouseClick("left",67,124,1)
")
#region --- Internal functions Au3Recorder Start ---
Func _WinWaitActivate($title,$text,$timeout=0)
WinWait($title,$text,$timeout)
If Not WinActive($title,$text) Then WinActivate($title,$text)
WinWaitActive($title,$text,$timeout)
EndFunc
#endregion --- Internal functions Au3Recorder End ---
#endregion --- Au3Recorder generated code End ---
#endregion --- Au3Recorder generated code End ---
Modifié en dernier par loix le lun. 30 mai 2011 15:24, modifié 2 fois.
- Tlem
- Site Admin
- Messages : 11791
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Script pour entreprise.
Merci de rajouter les balises de code.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Script pour entreprise.
Voila. Désolé 

- sksbir
- Niveau 7
- Messages : 384
- Enregistré le : lun. 26 oct. 2009 17:57
- Localisation : Lyon
- Status : Hors ligne
Re: [..] Script pour entreprise.
Donc, tu as codé quelque chose, mais tu nous publies un autre code qui ne fonctionne pas ?loix a écrit :Voila le code généré par AU3recorder. il ne fonctionne pas, le mien ne ressemble pas vraiment a celui ci.
......
Par défaut, le titre des fenêtres est comparé à partir du début.loix a écrit :Le probleme est que chaque Modification d'article a un nom de fenetre en fonction du nom du produit.
Donc :
_WinWaitActivate("APISOFT Gestion Commerciale XCS - MCT Distribution - Dossier en Euro - [Admin]","Articles : Standard")
devient
_WinWaitActivate("APISOFT Gestion Commerciale XCS - MCT Distribution")
et comme ça, ça fonctionnera pour toutes les fenêtres dont le titre commence par la phrase recherchée.
Même remarque avec excel:
_WinWaitActivate("Microsoft Excel")
ça devrait suffire à condition que tu déclares comme postulat que le seul excel qui est ouvert, c'est ta feuille d'où tu copies les infos.
Pour que _winwaitactivate fonctionne sans lui préciser le 2eme argument, il faut modifier la déclaration de _winactivate :
Func _WinWaitActivate($title,$text,$timeout=0)
devient
Func _WinWaitActivate($title,$text="",$timeout=0)
Par ailleurs, je t'invite à recommencer la capture avec le recorder, mais en activant la capture du clavier, et surtout, à utiliser les raccourcis claviers quand tu fais ta capture : CTRL+C CTRL+V pour faire un copier-coller par exemple, et les flèches du clavier pour te déplacer, et ALT+xxxx pour activer les menus grâce aux lettres soulignées.
Ainsi, tu vas éviter que ton script foire juste parce qu'une fenêtre a été déplacée, ou parce que tu rejoues ton script sur un autre PC qui a une résolution d'écran différente...
N'utilise la souris que pour passer d'une fenetre à l'autre en cliquant sur le titre de la fenêtre. Comme winactivate n'a pas besoin de la souris, tu pourras alors virer de ton script tout ce qui est mousemove et mouseclick : tu ne garde que les _winactivate, en changeant le titre comme précisé au début de mon message.
Re: [..] Script pour entreprise.
Oulala. Je vais essayer.
Sinon mon code c'est simplement des coordonnées et la souris qui click donc...
Sinon mon code c'est simplement des coordonnées et la souris qui click donc...
Re: [..] Script pour entreprise.
Voila le code.
cela marche a peut pret. il y a quelques erreur étant donné qu'il n'y a pas encore de pause, le teps qu ele logiciel se lance.
cela marche a peut pret. il y a quelques erreur étant donné qu'il n'y a pas encore de pause, le teps qu ele logiciel se lance.
Code : Tout sélectionner
#region --- Au3Recorder generated code Start ---
_WinWaitActivate("Program Manager","")
MouseMove(266,883)
MouseDown("left")
MouseMove(266,882)
MouseUp("left")
_WinWaitActivate("Microsoft Excel - Yoshimura 2011 DIST PRICE LIST(2) [Mode de compatibilité]","")
MouseClick("left",96,305,1)
Send("{CTRLDOWN}c{CTRLUP}")
_WinWaitActivate("Program Manager","")
MouseMove(360,899)
MouseDown("left")
MouseMove(333,682)
MouseUp("left")
_WinWaitActivate("APISOFT Gestion Commerciale XCS - xxxxxxxxxxxxx - Dossier en Euro - [Admin]","")
Send("{CTRLDOWN}v{CTRLUP}{ENTER}{ENTER}")
_WinWaitActivate("Program Manager","")
MouseClick("left",168,897,1)
_WinWaitActivate("Microsoft Excel - Yoshimura 2011 DIST PRICE LIST(2) [Mode de compatibilité]","")
MouseClick("left",542,306,1)
Send("{CTRLDOWN}c{CTRLUP}")
_WinWaitActivate("Program Manager","")
MouseMove(391,890)
MouseDown("left")
MouseMove(389,889)
MouseUp("left")
_WinWaitActivate("APISOFT Gestion Commerciale XCS - xxxxxxxxxxxxxxxxxxxxx - Dossier en Euro - [Admin]","")
Send("{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{CTRLDOWN}{CTRLUP}{DOWN}{DOWN}{DOWN}{CTRLDOWN}{TAB}{TAB}{TAB}{CTRLUP}{CTRLDOWN}{RIGHT}{CTRLUP}{TAB}{TAB}???{DOWN}?{DOWN}?{DOWN}?{SHIFTDOWN}{TAB}{TAB}{SHIFTUP}??")
MouseMove(423,677)
MouseDown("left")
MouseMove(422,673)
MouseUp("left")
_WinWaitActivate("Program Manager","")
MouseMove(239,892)
MouseDown("left")
MouseMove(229,879)
MouseUp("left")
_WinWaitActivate("Microsoft Excel - Yoshimura 2011 DIST PRICE LIST(2) [Mode de compatibilité]","")
MouseClick("left",19,302,1)
MouseClick("right",19,302,1)
_WinWaitActivate("classname=Net UI Tool Window","")
MouseClick("left",54,121,1)
#region --- Internal functions Au3Recorder Start ---
Func _WinWaitActivate($title,$text,$timeout=0)
WinWait($title,$text,$timeout)
If Not WinActive($title,$text) Then WinActivate($title,$text)
WinWaitActive($title,$text,$timeout)
EndFunc
#endregion --- Internal functions Au3Recorder End ---
#endregion --- Au3Recorder generated code End ---
#endregion --- Au3Recorder generated code End ---
Modifié en dernier par loix le lun. 30 mai 2011 15:29, modifié 1 fois.
- sksbir
- Niveau 7
- Messages : 384
- Enregistré le : lun. 26 oct. 2009 17:57
- Localisation : Lyon
- Status : Hors ligne
Re: [..] Script pour entreprise.
Tu as encore pas mal de mousemove et mouseclic, mais c'est toi qui voit
N'oublie pas de mettre le sujet en [R] si tu penses que c'est résolu.
N'oublie pas de mettre le sujet en [R] si tu penses que c'est résolu.
Re: [..] Script pour entreprise.
Mon sujet n'es pas du tout clos.
Le code ne fonctionne pas. C'est vous qui m'avez demander de poster cela.
Il n'y a pas encore les vérifications etc etc..
Le code ne fonctionne pas. C'est vous qui m'avez demander de poster cela.
Il n'y a pas encore les vérifications etc etc..
- sksbir
- Niveau 7
- Messages : 384
- Enregistré le : lun. 26 oct. 2009 17:57
- Localisation : Lyon
- Status : Hors ligne
Re: [..] Script pour entreprise.
Comment ça, il ne fonctionne pas ? C'est toi qui l'a généré avec le Au3 recorder, alors si tu te remets dans le même contexte que celui de ton PC au moment de l'enregistrement, il va fidèlement réexécuter ce que tu lui as appris.loix a écrit :Mon sujet n'es pas du tout clos.
Le code ne fonctionne pas. C'est vous qui m'avez demander de poster cela.
Il n'y a pas encore les vérifications etc etc..
Mais maintenant, c'est à toi de continuer. Nous, on n'a pas tes fenêtres sous les yeux, et on ne sait pas exactement comment tu veux les manipuler et puis "etc..etc...", c'est un peu léger comme spécifications fonctionnelle non ?
Maintenant, pour améliorer ton script, tu dois déjà comprendre les instructions qui sont présentes . Par exemple, le début, c'est
_WinWaitActivate("Program Manager","")
MouseMove(266,883)
MouseDown("left")
MouseMove(266,882)
MouseUp("left")
_WinWaitActivate("Microsoft Excel
Bon, t'as utilisé le clic gauche, OK, ça, on le voit dans le code, mais il n'y a que toi qui sait pourquoi... Si c'est juste pour activer la fenetre excel, alors comme je te l'ai déjà dit, tu peux rééditer ton script et supprimer les 3 appels "mouse.."
mais avant de rééditer, je t'avais suggéré de remplacer tes actions à la souris par des actions au clavier pendant que tu fais l'enregistrement du script...RAPPEL : cocher la case "enregistrer le clavier" dans Au3 recorder avant de démarrer l'enregistrement.
Re: [..] Script pour entreprise.
A la base ma question était comment récupéré les données d'un champ..
Et personne ne ma encore répondu pour cela.
Vous m'avez demander de faire un record de mon exécution avec le moins de click souris possible.
Le voila.
Maintenant vous me dites c'est bon tu peux te débrouiller tout seul.
Mais pas du tout.
Je ne connais toujours pas le nom du champ du code et aucune de vos méthode ne ma permis de l'identifier.
Je pensais être sur le forum officiel ..
Et personne ne ma encore répondu pour cela.
Vous m'avez demander de faire un record de mon exécution avec le moins de click souris possible.
Le voila.
Maintenant vous me dites c'est bon tu peux te débrouiller tout seul.
Mais pas du tout.
Je ne connais toujours pas le nom du champ du code et aucune de vos méthode ne ma permis de l'identifier.
Je pensais être sur le forum officiel ..
-
- Niveau 1
- Messages : 1
- Enregistré le : ven. 19 juil. 2024 23:09
- Localisation : Reims
- Status : Hors ligne
Re: [..] Script pour entreprise.
Voici un exemple de script en AutoIt qui pourrait t'aider à automatiser les étapes que tu as décrites. Ce script ouvre Excel, copie certaines cellules, puis interagit avec un autre logiciel de gestion. Assure-toi d'avoir installé AutoIt et que l'application Excel et le logiciel de gestion sont correctement identifiés avant de lancer le script.
autoit
Copier le code
; Ouvrir Excel
Run("excel.exe")
WinWaitActive("Microsoft Excel")
; Sélectionner la première ligne dans Excel
Send("{HOME}") ; Aller au début de la ligne
Send("{DOWN}") ; Aller à la première ligne
Send("^c") ; Copier le contenu de la cellule (Ctrl+C)
; Passer à l'application de gestion
Run("nom_de_lapplication_ici.exe")
WinWaitActive("Nom de votre application")
; Coller le contenu dans la barre de recherche du logiciel de gestion
Send("^v") ; Coller (Ctrl+V)
; Revenir à Excel et copier le 3ème champ de la ligne
WinActivate("Microsoft Excel")
Send("{RIGHT 2}") ; Aller à la troisième cellule de la ligne
Send("^c") ; Copier le contenu de la cellule
; Revenir à l'application de gestion et coller ce contenu dans le champ approprié
WinActivate("Nom de votre application")
Send("^v") ; Coller
; Revenir à Excel pour supprimer la première ligne
WinActivate("Microsoft Excel")
Send("{HOME}") ; Aller au début de la ligne
Send("{DOWN}") ; Sélectionner la première ligne
Send("^x") ; Couper la première ligne (Ctrl+X)
; Fin du script
Explication :
Le script démarre Excel et s'assure qu'il est actif avec WinWaitActive().
Il navigue dans le tableau Excel, copie la première cellule de la première ligne, puis passe à l'application de gestion pour coller cette information.
Ensuite, il revient à Excel, copie le troisième champ de la même ligne, et le colle dans l'application de gestion.
Enfin, il revient dans Excel et supprime la première ligne après avoir copié les données.
Quelques précautions :
Vérifie que les applications sont bien nommées dans les commandes WinWaitActive() et Run().
Assure-toi que le chemin du programme Excel et de l'application de gestion sont corrects.
Tu peux ajuster ce script en fonction des spécifications exactes de ton projet. Bon courage pour ton stage !
autoit
Copier le code
; Ouvrir Excel
Run("excel.exe")
WinWaitActive("Microsoft Excel")
; Sélectionner la première ligne dans Excel
Send("{HOME}") ; Aller au début de la ligne
Send("{DOWN}") ; Aller à la première ligne
Send("^c") ; Copier le contenu de la cellule (Ctrl+C)
; Passer à l'application de gestion
Run("nom_de_lapplication_ici.exe")
WinWaitActive("Nom de votre application")
; Coller le contenu dans la barre de recherche du logiciel de gestion
Send("^v") ; Coller (Ctrl+V)
; Revenir à Excel et copier le 3ème champ de la ligne
WinActivate("Microsoft Excel")
Send("{RIGHT 2}") ; Aller à la troisième cellule de la ligne
Send("^c") ; Copier le contenu de la cellule
; Revenir à l'application de gestion et coller ce contenu dans le champ approprié
WinActivate("Nom de votre application")
Send("^v") ; Coller
; Revenir à Excel pour supprimer la première ligne
WinActivate("Microsoft Excel")
Send("{HOME}") ; Aller au début de la ligne
Send("{DOWN}") ; Sélectionner la première ligne
Send("^x") ; Couper la première ligne (Ctrl+X)
; Fin du script
Explication :
Le script démarre Excel et s'assure qu'il est actif avec WinWaitActive().
Il navigue dans le tableau Excel, copie la première cellule de la première ligne, puis passe à l'application de gestion pour coller cette information.
Ensuite, il revient à Excel, copie le troisième champ de la même ligne, et le colle dans l'application de gestion.
Enfin, il revient dans Excel et supprime la première ligne après avoir copié les données.
Quelques précautions :
Vérifie que les applications sont bien nommées dans les commandes WinWaitActive() et Run().
Assure-toi que le chemin du programme Excel et de l'application de gestion sont corrects.
Tu peux ajuster ce script en fonction des spécifications exactes de ton projet. Bon courage pour ton stage !
