AutoHotkey模拟创建Gui工具栏

概述

在操作某些软件的时候,如Markdown神器Typora,在实际编写时,通过快捷键可以快速实现自己想要的效果,但有时候快捷键太多,也不是很方便,有个工具栏辅助快捷键会好很多。

重点

重点是要画出界面,然后界面上有按钮可以点击,最主要的是自定义工具栏不能把焦点从软件身上拿走,不然无法定位到需要的位置上

解决方案

Gui, +AlwaysOnTop +ToolWindow +E0x08000000

前面就是实现工具栏置顶和不显示在任务栏的效果,最主要的是后面那个参数,即窗口效果为不获取焦点 再配合 NoActivate 即可

Gui, Show, NoActivate AutoSize, TyporaTools ; NoActivate 让当前活动窗口继续保持活动状态.

另外

因为是辅助工具栏,没必须始终显示,需要的时候调出来,关闭的时候结束整个脚本即可 借助两句话

Gui, Destroy ;开始的时候销毁默认线程上的Gui然后重新绘制
GuiClose: ;一定记得加上这个标识,不然关闭按钮只是执行了窗体隐藏而非关闭
ExitApp
return

其他

然后就是给画面添加按钮,然后设置按钮事件如执行快捷键等

完整代码

;自定义窗口
Gui, Destroy
Gui, +AlwaysOnTop +ToolWindow +E0x08000000
Gui, Add, Button, gPaste w60, Paset ;粘贴
Gui, Add, Button, gPaste_R w60, Plant ;粘贴纯文本
Gui, Add, Button, gCode w60, Code ;插入代码
Gui, Show, NoActivate AutoSize, TyporaTools ; NoActivate 让当前活动窗口继续保持活动状态.
return ; 自动运行段结束. 在用户进行操作前脚本会一直保持空闲状态.

Paste:
Send, ^{
          
   v}
return
Paste_R:
Send, ^+{
          
   v}
return
Code:
Send, !{
          
   1}
Sleep 100
Send, {
          
   Down}
Sleep 100
Send, xml-dtd
Sleep 100
Send, {
          
   Shift}
Sleep 200
Send, ^{
          
   a}
return
GuiClose:
ExitApp
return

PS

如果不喜欢按钮样式的工具栏,还可以将按钮换成图标,然后给图片绑定 g-标签事件即可 这里我将图标借助 ym + 5 换成了横向排列

;自定义窗口
Gui, Destroy
Gui, +AlwaysOnTop +ToolWindow +E0x08000000
;Gui, Add, Button, gLeftScreen w60, Left 
;Gui, Add, Button, gRightScreen w60, Right 
Gui, Add, Picture, gImgBtnLeftScreen, D:WinExeAutoHotKeyImageic_left.png
Gui, Add, Picture, gImgBtnRightScreen ym + 5, D:WinExeAutoHotKeyImageic_right.png
Gui, Add, Picture, gImgBtnLock ym + 5, D:WinExeAutoHotKeyImageic_lock.png
Gui, Show, NoActivate AutoSize, WinTools ; NoActivate 让当前活动窗口继续保持活动状态.
return ; 自动运行段结束. 在用户进行操作前脚本会一直保持空闲状态.
经验分享 程序员 微信小程序 职场和发展