bonjour,
Dans le cadre de mon activité de responsable IT, je cherche à automatiser l'installation d'imprimante sur les postes de nos clients. Cette installation nécessite le paramétrage du pilote, en renseignant certains champs . Afin d'accéder à ces champs, il faut cliquer sur des onglets
Je n'arrive pas à automatiser via la commande ControlClick le click sur l'onglet 'Autres' par exemple
J'ai utilisé l'utilitaire AutoIT V3 Window Info pour connaitre la classe et l'ID de l'onglet en question, mais ça ne sélectionne pas l'onglet désiré
Ci-joint copie d'écran en pièce jointe, où apparaissent le code .au3 , ainsi que la GUI du pilote et les infos données par AutoIT V3 Window Info
Merci de votre aide
cliquer sur un onglet
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.
- TommyDDR
- Modérateur
- Messages : 2102
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: cliquer sur un onglet
Dans AutoIT V3 Window Info, vous avez une ligne "ControlClick Coord", inscrivez les dans la fonction ControlClick
(Vérifiez le nom de fenêtre, je n'ai peut être pas choisi le bon apostrophe)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
- walkson
- Modérateur
- Messages : 1036
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: cliquer sur un onglet
Bonjour,
Ça serait peut être plus simple avec
Ça serait peut être plus simple avec
ControlCommand()

Code : Tout sélectionner
If ProcessExists("AutoIt3Help.exe") Then ProcessClose("AutoIt3Help.exe")
Run("C:\Program Files\AutoIt3\SciTE\Aide\AutoIt3Help.exe")
Sleep(500)
WinActive("Aide AutoIt", "");vérifier le titre de la fenêtre
For $i = 1 To 2
ControlCommand("Aide AutoIt","","SysTabControl321","TabRight", "")
Next
MsgBox(64,"N° Tab",ControlCommand("Aide AutoIt", "", "SysTabControl321","CurrentTab", ""))
ControlSetText("Aide AutoIt", "", "Edit1", "ControlSetText")
Sleep(500)
ControlClick("Aide AutoIt", "", "Button2")
Sleep(2000)
ControlCommand("Aide AutoIt","","SysTabControl321","TabLeft", "")
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Re: cliquer sur un onglet
bonjour, j'ai résolu le problème , après quelques essais, avec la fonction Send("^{TAB 7}" ) Le chiffre 7 indique que la tabulation est demandée 7 fois de suite . Je précise qu'il est nécessaire d'utiliser la fonction WinActivate() dans le script et avant la fonction Send() , sinon ça ne marche pas. Ci-joint copie d'écran du script
si certains ont une méthode pour atteindre DIRECTEMENT un onglet via son nom, je suis preneur. J'ai eu beau rechercher un peu partout, impossible de faire fonctionner la fonction CommandControl ou ControlClick (j'ai dû zapper un élément dedans)
salutations
si certains ont une méthode pour atteindre DIRECTEMENT un onglet via son nom, je suis preneur. J'ai eu beau rechercher un peu partout, impossible de faire fonctionner la fonction CommandControl ou ControlClick (j'ai dû zapper un élément dedans)
salutations
- walkson
- Modérateur
- Messages : 1036
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: cliquer sur un onglet
Bonjour,
Vérifiez le titre de la fenêtre
J'ai testé le code sur les options de mon imprimante et ça fonctionne (même class, même ID, même control etc...)
Si le handle retourne 0 dans la console, c'est qu'il y a une erreur... (titre ?)
Vérifiez le titre de la fenêtre
Code : Tout sélectionner
#include <GuiTab.au3>
$WindowTitle = "Option d´impression KONICA"
$Control = "SysTabControl321"
$hdl = WinActivate($WindowTitle)
$hWnd = ControlGetHandle($hdl, "", $Control)
ConsoleWrite($hWnd & @CRLF)
$idx = _GUICtrlTab_FindTab ( $hWnd, "Autres")
_GUICtrlTab_ClickTab ( $hWnd, $idx)
Si le handle retourne 0 dans la console, c'est qu'il y a une erreur... (titre ?)
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Re: cliquer sur un onglet
Ca retourne 0 dans la console... Misère, j'ai tout essayé, même Mouseclick() en désespoir de cause, mais le curseur ne vend pas bouger
- walkson
- Modérateur
- Messages : 1036
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: cliquer sur un onglet
Bonjour,
Faites un copier-coller du titre à partir de AutoIT V3 Window Info sinon il y a
lancer ce code (raccourcis Alt x pour lancer la fonction et Echap pour sortir)
Lancer la fenêtre KONICA qui doit être en premier plan puis Alt x
Dans la console vous devez avoir le Handle de la fenêtre Konica et le Handle des tab. Si c'est toujours 0, c'est sans espoir
Faites un copier-coller du titre à partir de AutoIT V3 Window Info sinon il y a
Opt("WinTitleMatchMode", 1) ;1=début, 2=sous-chaîne, 3=exact, 4=avancé, -1 à -4=NOCASE
à mettre en début de code à tester selon les options (souvent 2 ou 4). Après, il y a des fenêtres qui restent inaccessibles, ça arrivelancer ce code (raccourcis Alt x pour lancer la fonction et Echap pour sortir)
Lancer la fenêtre KONICA qui doit être en premier plan puis Alt x
Code : Tout sélectionner
HotKeySet("!x", "test");Alt x
HotKeySet("{Esc}", "Fin");Echap
While 1
Sleep(100)
WEnd
Func test()
$Hactive = WinActive("[ACTIVE]")
$titre = WinGetTitle($Hactive,"")
ConsoleWrite($Hactive &"--"& $titre & @CRLF)
$hWnd = ControlGetHandle($Hactive, "", "SysTabControl321")
ConsoleWrite($hWnd & @CRLF)
EndFunc
Func Fin()
Exit
EndFunc
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)