autohotkey --- 热键只对特定程序生效,并设置不同等级的搜索功能

autohotkey — 热键只对特定程序生效,并设置不同等级的搜索功能

基本环境

为什么要做这个事情.
这个没什么好说的,为了让同个快捷键在不同程序中存在相似但不完全相同的功能.例如ctrl+f 搜索这个键 在平时调用的是全局的搜索软件,在 pycharm 里面则是普通的搜索功能.

个人认为的快捷键设计原则:

  1. 键少功能多. 少量的人机接口方式,实现更多的功能.
  2. 连击最多2次单击,且由双手食指触发. 因为食指灵敏, 且我们习惯了鼠标的双击动作.
  3. 如果为双键结合,那么修饰键最好按整体功能进行分离,例如 shift 用来修饰编辑文本的. alt用来处理窗口操作的.
  4. 尽可能保留已经习惯的触发键,例如s为保存,f为查找. c为复制
  5. 不同软件的同概念性的快捷键应该保持一致. 例如 ctrl f 为一般的搜索功能,那么可以把百度激活搜索框的快捷键设置为ctrl f. 这样就不需要每次都用鼠标去单击搜索框,也不需要安装vim等插件. 因为是搜索引擎.没有必要保留原本的ctrl+F的功能.
  6. 可将同概念性的功能按软件的先后层次进行顺序切换,例如,在百度里面, 如果没有在输入框中,则按一次ctrl+f先激活输入框,再按一次搜索打开的标签或者直接跳转到系统的全局搜索 ,例如everything这类工具,再按一次则切换回浏览器的输入框,完全没有必要设置那么多个快捷键。
  7. 设计的时候先考虑新添加的功能是否与旧功能具有概念相似性。切记一上来就是一个新的快捷键。这是很多人一开始常犯的毛病。
    举个具体的例子,在pycharm中,单独使用了一个ctrl +d 作为重复一行或者选中内容的快捷键. 其实完全没必要这么做. 只要在原始的复制ctrl+c加一个是否选取内容的判断就可以,当没有选择内容的时候,默认就是重复复制一行. 在选中多行,或者一行中局部内容的时候,直接重复填充反而会很乱. 还要额外去记一个快捷键.

代码

level = 0 ;搜索水平等级
Hotkey, IfWinActive, ahk_class SunAwtFrame ; 这边是指定在pycharm软件里面使用,那么在全局的+f并不会影响到这边,
Hotkey,+f,findsomething ; 设置热键,和标签,ahk的标签你可以理解为就是一段代码的代号,他和函数不一样,是没有返回的,就是方便指代一个代码段
findsomething: ;标签,搜索的具体代码功能
{
if level = 0 ;在pycharm 中,按第一次是ide中的搜索,再按一次是全局搜索,这时候就会跳出ide环境了.
{
    ;除了大容量的文本发送,建议一律使用sendinput, 
    ;他比send的发送速度快得多,不容易被其他的热键中间插一脚
    ;比如方向控制中,连续向上5次,用send能明显看到光标的移动,但是用sendinput就是飞跃的感觉
    SendInput,^f  
    level = 1
    SetTimer,iniState,1000,On ;设置一个定时器,1000 ms 后 运行 iniState部分的代码,定时器状态为开
}
else if level = 1
{
    SendInput,+!^0  ; 调用全局搜索软件listary
    level = 0 
}
return
}
iniState:
;控制在pycharm 搜索打开1秒后 自动回到初始状态,就是1秒之后,再次搜索还是在pycharm里面,这样就不影响pycharm的使用体验
SetTimer,iniState,Off ;关闭定时器
level = 0  ; 回到最低的搜索水平
return
  • 效果
    请添加图片描述

获得窗口属性

  1. 这个很简单,右键正在运行的脚本,电极window spy

在这里插入图片描述2. 就会弹出一个窗口.
在这里插入图片描述

  1. 把鼠标放在哪个程序上,这边就会显示该程序的信息.
  • 在我推荐的那个ide中也有类似的功能,有一个增强模式,可以获得更精细的窗口信息

在这里插入图片描述

指定多个应用

这个还没有试出来,按理说不复杂才对. 之后再添加进来.

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
AutoHotkey 脚本文件需要以 UTF-8 with BOM 编码格式保存,以避免在使用非ASCII字符时出现乱码问题。你可以在保存文件时,选择“UTF-8 with BOM”编码格式来确保文件不会出现乱码。如果你在使用 AutoHotkey 时遇到了热键乱码的问题,请确保你的脚本文件是以正确的编码格式保存的。你可以参考 AutoHotkey 的 FAQ 页面中关于编码的部分来获取更多详细信息。 另外,AutoHotkey 的脚本文件是以 .ahk 为后缀名的纯文本文件,你可以在脚本文件中定义各种热键,并在热键中执行相应的操作。例如,你可以定义一个热键为 #z 来打开一个网页,同时也可以定义一个热键为 ^!n (Ctrl + Alt + N) 来打开记事本软件。确保你的脚本文件热键的定义是正确的,并且使用了正确的按键符号。 希望以上信息对解决你的问题有所帮助。如果你还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [aardio + AutoHotkey 混合编程](https://blog.csdn.net/jacenhe/article/details/127040236)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [如何使用 AutoHotkey](https://blog.csdn.net/xyxing87/article/details/123964111)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值