2

我正在尝试制作一个持久的浮动工具栏,以帮助我在 Windows 平板电脑(无键盘)上执行常见任务,例如“撤消”、“复制”和“删除”。现在我有这个:

Gui, Destroy
Gui,+AlwaysOnTop
Gui,+ToolWindow
Gui,+Border
Gui, Add, Button, y5 w60, &Undo
Gui, Add, Button, y5 w60, &Delete
Gui, Add, Button, y8 h18, X
Gui, Show, y0
Return

ButtonUndo:
ControlSend,, ^z
Return

ButtonDelete:
ControlSend,, {Backspace}
Return

ButtonX:
ButtonCancel:
Gui, Destroy
ExitApp

End:
Reload
Return

但它似乎没有做任何事情,只是在我单击按钮时发出错误声音。我是否需要先告诉它以某种方式关注不同的窗口?

4

2 回答 2

0

我真的很喜欢这个主意!问题是,一旦您单击其中一个按钮,焦点就会从您要控制的应用程序中移开……所以您将命令发送到您自己的 AutoHotKey 应用程序……

解决此问题的一种简单方法是首先发送一个Alt+ Esc,然后在 20 毫秒睡眠后发送您的命令。

ButtonUndo:
    Send, !{Esc} ; Changed from Alt+Tab
    Sleep, 20
    Send, ^z
Return
于 2013-02-24T19:35:02.373 回答
0

这是一个使用 Settimer 进行切换的示例

SetTimer, CheckWin, 100; Put at the beginning of your script   

CheckWin:
WinGetTitle, CurrName, A
if (CurrName = PrevName) ; check if window has been changed
    Return ; Only continue if an other application was activated
LastName = %PrevName% ; Use %LastName% in winactivate
PrevName = %CurrName% ; When new app, then sync AppName and PrevName
Return
于 2013-02-25T06:08:10.403 回答