我正在编写一个 Autohotkey 脚本,它可以处理一些 Photoshop 窗口和控件。
我需要能够取消当前聚焦的控件(例如,Edit3)的焦点,以便之后没有控件具有焦点(我可以解释为什么我需要在必要时这样做,但这似乎无关紧要,我真的需要所有控制不专心)。
AHK 的 ControlFocus 命令不提供这样的选项。
我试过像这样使用Windows Message:
SendMessage, 0x8, 0, 0, Edit3, A ; WM_KILLFOCUS = 0x08
但它什么也没做。 相比之下,相反的工作正常并集中控制:
SendMessage, 0x7, 0, 0, Edit3, A ; WM_SETFOCUS = 0x07
也许我对 WM_KILLFOCUS 消息做错了什么?
澄清一下:我不想模拟点击、切换窗口、添加要聚焦的新的不可见控件等。我只想知道如何取消对控件的聚焦。
那么,知道如何在不聚焦另一个控件的情况下取消对控件的聚焦吗?
last_active_win:=winexist("A") ;在启动你的 gui 之前获取之前的 windows 进程
界面 +AlwaysOnTop
Gui 添加,按钮,x10 w100 h30,% 1
Gui Show,, My GUI ;启动获得焦点的 gui
睡眠 500
WinActivate ahk_id %last_active_win% ;重新激活以前的窗口以取消 gui 控件的焦点
退货
您可以发送#d,您将转到桌面。哪个将专注于桌面,但可以为您工作。
SendInput, #d