À l'aide de AutoHotkey à cliquer sur un bouton dans une fenêtre

Je veux faire un script AutoHotkey pour modifier la police du PuTTY SSH client. (Je préfère les petits caractères pour la haute densité d'information, mais quand je vais les montrer quelque chose à un collègue, ils doivent être en mesure de voir clairement.) J'ai reçu ce jour:

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
#SingleInstance force  ; Lets the RunMe plugin for Notepad++ reload the script with Shift-F5.

#IfWinActive ahk_class PuTTY    ; If PuTTY is active
  ^+1::                         ; and Ctrl-Shift-1 is pressed
  {
    Send !{Space}               ; Alt-Space to open the system menu
    Send g                      ; open Change Settings
    Send !g                     ; select the Category menu
    Send w                      ; select the Window category
    Send {Right}                ; expand the category
    Send a                      ; select the Appearance subcategory
    ControlClick, ClassNN Button8, ahk_class PuTTYConfigBox, , Left, 1
  }
#IfWinActive

Lorsqu'il est exécuté à partir d'un Mastic de fenêtre de terminal, le tout grâce à "Envoyer un" navigue le Mastic menus comme prévu, m'amener à l'Apparition de la sous-catégorie. À ce point, je tiens à cliquer sur le bouton "Modifier" pour définir la police. Je préfère ne pas envoyer un tas d'onglets ou de spécifier une coordonnée d'écran pour sélectionner le bouton, comme cela semble kludgey et à rompre avec les futures mises à jour. Je ne peux pas obtenir ControlClick de travailler, bien que. La ligne que j'ai utilisé ci-dessus est ma meilleure supposition après quelques heures de recherche, et je ne vois pas pourquoi il ne fait rien.

Voici la Fenêtre Spy de sortie quand je suis en vol stationnaire au-dessus du bouton:

>>>>>>>>>>( Window Title & Class )<<<<<<<<<<<
PuTTY Reconfiguration
ahk_class PuTTYConfigBox

>>>>>>>>>>>>( Mouse Position )<<<<<<<<<<<<<
On Screen:  1051, 207  (less often used)
In Active Window:   432, 202

>>>>>>>>>( Now Under Mouse Cursor )<<<<<<<<
ClassNN:    Button8
Text:   Change...
Color:  0xF0F0F0  (Blue=F0 Green=F0 Red=F0)

>>>>>>>>>>( Active Window Position )<<<<<<<<<<
left: 619     top: 5     width: 456     height: 438

>>>>>>>>>>>( Status Bar Text )<<<<<<<<<<

>>>>>>>>>>>( Visible Window Text )<<<<<<<<<<<
&Apply
&Cancel
Cate&gory:
Cursor appearance:
B&lock
&Underline
&Vertical line
Cursor &blinks
Adjust the use of the cursor
Fo&nt used in the terminal window
Font: Lucida Console, 24-point
Change...
Allow selection of variable-pitch fonts
Font &quality:
Antialiased
Non-Antialiased
ClearType
Default
Font settings
Hide mouse &pointer when typing in window
Adjust the use of the mouse pointer
Gap b&etween text and window edge:
&Sunken-edge border (slightly thicker)
Adjust the window border

>>>>>>>>>>>( Hidden Window Text )<<<<<<<<<<<

>>>>( TitleMatchMode=slow Visible Text )<<<<
1

>>>>( TitleMatchMode=slow Hidden Text )<<<<

Merci pour votre aide.

Le menu s'affiche dans une nouvelle fenêtre? Si oui, faire les commandes de navigation (comme Send g etc.) ouvrir de nouvelles fenêtres ou de modifier le titre de la fenêtre? Si c'est le cas, essayez d'ajouter un WinWait avant ControlClick. Choisissez un identifiant (probablement un titre de fenêtre combinée avec ahk_class) qui vous permettra de trouver uniquement la fenêtre qui apparaît après la dernière commande (Send a). J'espère que c'est assez clair.
Les commandes de navigation ne pas le faire, autant que je peux dire, ouvrir de nouvelles fenêtres ou de modifier le titre de la fenêtre. Cependant, votre suggestion travaillé de toute façon (avec un changement à la ControlClick paramètres). Merci!

OriginalL'auteur Robert | 2013-09-16