Page 1 sur 1

[..] Sélection dans un menu déroullant.

Posté : mer. 23 oct. 2013 12:51
par gege
Bonjour,
Après plusieurs recherche et plusieurs essai, je n'arrive pas a sélectionner le nom d'une imprimante dans un menu déroulant. Pour pouvoir finir mon programme d'automatisation d’installation d'imprimante sur plusieurs PC.
Je suis débutant dans se domaine. Pourriez-vous m'écrire les quelques lignes manquante de code précis pour sélectionner l'imprimante (Canon LBP6680/3480 PCL5e) désiré dans le menu déroulant.
Merci d'avance pour votre aide.
image de la fenêtre avec le menu déroulant
[img][img]http://img.imagesia.com/fichiers/cp/imprimante_imagesia-com_cpi2_large.PNG[/img][/img]
Merci d'avance pour votre aide.
► Afficher le texte

Re: [..] Sélection dans un menu déroullant.

Posté : mer. 23 oct. 2013 23:06
par jguinch
Regarde la fonction ControlListView() dans la doc, avec "FindItem" puis "Select", tu devrais pouvoir t'en sortir.

Code : Tout sélectionner

$sRef = "HP LaserJet 4000"
$index = ControlListView( "Ajouter une imprimante", "", "[CLASS:SysListView32; INSTANCE:1]", "FindItem", $sRef)
ControlListView( "Ajouter une imprimante", "", "[CLASS:SysListView32; INSTANCE:1]", "Select", $index)
Sinon, pour la gestion des imprimantes, tu peux regarder cet UDF

Re: [..] Sélection dans un menu déroullant.

Posté : mer. 23 oct. 2013 23:11
par Tlem
Bonsoir.
Essayez de mettre le focus dans la vue en liste puis envoyez la séquence de touches correspondantes :

Code : Tout sélectionner

Send("Canon LBP6680")

Re: [..] Sélection dans un menu déroullant.

Posté : jeu. 24 oct. 2013 14:46
par gege
Bonjour,
Merci pour vos réponses,
En ce qui concerne la réponse de Tlem, j'avais déjà essayer cette possibilité que j'ai renouveler pour avoir une confirmation qu'elle ne fonctionne pas.

jguinch; j'ai regarder la documentation sur les deux fonctions ControlListView() "FindItem", je n'ai pas compris tes lignes de code et ces fonctions. Pourrais tu être un peu plus claire dans ta démarche que je puisse faire l'essai.

Quand la fenêtre du menu déroulant apparait, la première imprimante de la liste et déjà sélectionner en bleu.
j'ai fais l'essai avec la commande "send ("{DOWN 32}")" pour faire descendre ma sélection. Elle change bien de position mais de façon aléatoire donc je ne suis jamais sur la même sélection.
Merci de soutenir mon projet.

Image

Re: [..] Sélection dans un menu déroullant.

Posté : jeu. 24 oct. 2013 21:22
par Tlem
Vous est-il possible de donner un lien de téléchargement de votre installateur pour qu'on puisse voir ça de près ?

Re: [..] Sélection dans un menu déroullant.

Posté : ven. 25 oct. 2013 07:20
par gege
Bonjour,
(système d'exploitation OS des PC Win7)
Le lien de téléchargement du driver de l'imprimante Canon LBP6680/3480 PCL5e et
http://www.canon.fr/Support/Consumer_Pr ... oad&page=1

J'ai fais des essais avec la commande MouseClickDrag("left", 1110, 459, 1110, 500,100) sa ne fonctionne pas avec le système d'installation Canon (la souris se déplace correctement mais ne sélectionne pas la barre latérale coulissante du fichier d'installation).
Merci de vous occupez de mon soucis.

Re: [..] Sélection dans un menu déroullant.

Posté : ven. 25 oct. 2013 09:30
par Tlem
Bonjour.
Je n'avais pas de Windows 7 sous la main, donc j'ai testé sous XP.
Visiblement le texte de la liste n'est pas facilement accessible en lecture pour AutoIt. Mais comme vous avez une version déterminée du pilote, vous savez à quelle position ce trouve le pilote dont vous avez besoin.
Donc voici un code de sélection du pilote que j'ai testé et qui fonctionne sur XP :

Code : Tout sélectionner

; Sélection de la ligne 35 : LBP6680/3480
For $i = 1 To 35
    ControlSend("[CLASS:#32770]", "Liste des imprimantes", "[CLASS:ListBox; INSTANCE:1]","{DOWN}")
    Sleep(100)
Next

ControlClick("[CLASS:#32770]", "Liste des imprimantes", "[CLASSNN:Button1]", "left")

Re: [..] Sélection dans un menu déroullant.

Posté : ven. 25 oct. 2013 10:24
par jguinch
Mon code précédent n'aurait pas pu fonctionné, vu que la liste est une Listbox et non une Listview.
L'UDF GuiListBox.au3 (intégré à AutoIt), permettra de manipuler ce type de contrôle.

J'ai téléchargé le programme d'installation, ça à l'air de fonctionner avec ça :
► Afficher le texte

Re: [R] Sélection dans un menu déroullant.

Posté : lun. 28 oct. 2013 17:31
par gege
bonjour,

Tlem
jguinch
j'ai incorporé l'une après l'autre, vos quelques lignes de code sous windows 7 dans mon programme et les deux fonctionnent très bien. Je vous en remercie. Je ne les aurais jamais trouvé tout seul, c'était trop compliqué pour moi.

celle de Tlem est encore facilement compréhensible
celle de jguinch je ne l'ai pas comprise
encore merci à vous 2

Re: [..] Sélection dans un menu déroullant.

Posté : lun. 28 oct. 2013 21:03
par Tlem
Bonsoir.
Vous dites ne pas comprendre le code de jguinch, mais pourtant il a mit suffisamment de commentaires pour détailler chaque action importante. ^^

Refaite une lecture plus posée et regardez la documentation des fonctions, car sa méthode à le mérite de ne pas se baser sur la Xième ligne qui est supposée être tel pilote, mais bel et bien par rapport au nom de la machine. Son code est certes plus compliqué, mais bien mieux abouti et pérenne.