在打开文件选择器的时候,按下win+z可以触发一个AHK GUI窗口在 文件选择器 的右边。AHK GUI会有个按钮,点击之后会传递一个路径给 ahk_class #32770 并且自动回车,来模拟手动输入某些路径的情况,比较方便
1,自动实现win+z的功能,无需手动快捷键触发,就是打开文件选择器的时候,自动弹出AHK GUI窗口
2,关闭ahk_class #32770的同时,把AHK GUI也给关闭
注:ahk_class #32770 就是 文件选择器(如下图)
要求ahk版本:AutoHotkey 1.1.37.01
不要尝试用AI 。我已经试过了【ChatGPT、 newbing、 文心一言、 Claude】 没一个能解决的
[C] 纯文本查看 复制代码#z::
CheckWindow:
WinGet, hWnd, ID, ahk_class #32770
if (hWnd != "")
{
WinMove, ahk_id %hWnd%, , , , WidthToSet, HeightToSet
WinGetPos, WinX, WinY, WinWidth, WinHeight, ahk_id %hWnd%
GuiX := WinX + WinWidth + 10 ; GUI窗体与目标窗口之间的间距
Gui, New, +AlwaysOnTop
Gui, Add, Text,,
Gui, Add, Button, x15 y10 w100 h30 gButtonClicked1, 点击按钮1
Gui, Show, x%GuiX% y%WinY%
Gui, Show, w130 h720,
SetTimer, CheckWindow, off
return
}
ButtonClicked1:
WinActivate, ahk_class #32770 ; 切换到指定的窗口
ControlFocus, Edit1, ahk_class #32770 ; 焦点聚焦到路径输入框
ControlSetText, Edit1, C:\TEMP\, ahk_class #32770 ; 在路径输入框中输入指定路径
ControlSend, , {Enter}, ahk_class #32770 ; 发送 Enter 键以确认路径
return
OnMessage(0x10, "CloseWindow")
CloseWindow(wParam, lParam)
{
if WinExist("ahk_class #32770")
{
WinClose, ahk_class #32770
Gui, Destroy
ExitApp
}
}