I needed to do two things to get this to work.
Firstly, including the word "ClassNN" in the first ControlClick parameter was incorrect, despite several examples, I found that I used this. The parameter can be the button text (Change ...), the beginning of the text (Change) or its ClassNN (Button8), but not "ClassNN Button8". Everything after that is unnecessary and works fine with default values. Currently, I just use "ControlClick, Change ..." as the whole line, although it would be wiser to specify WinTitle explicitly (either "PuTTY Reconfiguration" or "ahk_class PuTTYConfigBox" works).
Secondly, as MCL pointed out, I needed "WinWait, PuTTY Reconfiguration" before the ControlClick command. I do not quite understand why, but it works.
Here is my last working code, with F9, going to ProggyCleanTT 12 points, and F10 will switch to Lucida Console 20 point:
#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.
It does strange things if you do not wait a minute between pressing a hot key and an additional input, and probably it can have more reliable navigation, but it works.
source share