使用AHK热字符串,快捷替换为指定内容,自动生成菜单

使用AHK热字符串,快捷替换为指定内容,自动生成菜单

发个快速进行字符串替换的脚本,可以独立运行,也可以加到QZ的custom.ahk里运行

修改代码段里的以下内容:

前面3个字符是快捷键,自动替换为从第4个字符开始的内容,如果某行是“-”,则在菜单里添加分隔符。

  1. QuickInputList=
  2. (Ltrim
  3. &Q)2857xxxxxxxxxx@qq.com
  4. -
  5. &G)chendddddddddd@szmhzs.com
  6. )

以下为快捷演示:

1、[ad*—-地址类],快捷键为:]aa
2、[em*—-邮箱类],快捷键为:]ee
3、[tel*—-电话类] ,快捷键为:]tt
4、[-*—-日期类],快捷键为:]–
5、[**—-名称类],快捷键为:]mm

以下为完整代码:

  1. ;我的快捷替换短语>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  2. ;[*] 的作用是不用输入终止符即自动替换
  3. ;[ad*----地址类];{
  4. :*:]aa::
  5. QuickInputList=
  6. (Ltrim
  7. &X)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  8. &S)bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
  9. &M)cccccccccccccccccccccccccccccccc
  10. -
  11. &Y)ddddddddddddddddd,徐dddd18-ddddd
  12. &P)深圳市eeeeeeeeeeeeeeeeee,潘ee187eeeeeeeeeeee
  13. -
  14. &Z)深圳市fffffffffffffffffffff,周fff185fffffffffffffffffffff
  15. &J)深圳gggggggggggggggggg,周ggg1ggggggggggggggggg
  16. )
  17. MySub_QuickInput(QuickInputList)
  18. return
  19. ;}
  20.  
  21.  
  22. ;[em*----邮箱类] ;{
  23. :*:]ee::
  24. QuickInputList=
  25. (Ltrim
  26. &Q)2857xxxxxxxxxx@qq.com
  27. &G)chendddddddddd@szmhzs.com
  28. )
  29. MySub_QuickInput(QuickInputList)
  30. return
  31. ;}
  32.  
  33. ;[tel*----电话类] ;{
  34. :*:]tt::
  35. QuickInputList=
  36. (Ltrim
  37. &C)陈xxxxx18-xxxxxx
  38. &Z)张xxxx1xxx-xxxx-xxxxx
  39. )
  40. MySub_QuickInput(QuickInputList)
  41. return
  42. ;}
  43.  
  44. ;[-*----日期类] ;{
  45. :*:]--::
  46. QuickInputList=
  47. (Ltrim
  48. &1)%A_YYYY%%A_MM%%A_DD%
  49. &2)%A_YYYY%-%A_MM%-%A_DD%
  50. &3)%A_YYYY%.%A_MM%.%A_DD%
  51. &4)%A_YYYY%年%A_MM%月%A_DD%日
  52. &5)[%A_YYYY%.%A_MM%.%A_DD%]
  53. )
  54. MySub_QuickInput(QuickInputList)
  55. return
  56. ;}
  57.  
  58. ;[**----名称类] ;{
  59. :*:]mm::
  60. QuickInputList=
  61. (Ltrim
  62. &M)深圳市aaaaaaaaaaaaaa
  63. &L)联ggggggggggggggggggg
  64. &G)广西dddddddddddddddddd
  65. -
  66. &T)厦门gggggggggggg
  67. )
  68. MySub_QuickInput(QuickInputList)
  69. return
  70. ;}
  71.  
  72. ;我的过程或函数>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  73. MySub_QuickInput(String){
  74. menu,KyMenu_QuickInput,Add
  75. menu,KyMenu_QuickInput,DeleteAll
  76. Loop,parse,String,`n,`r
  77. {
  78. if (A_LoopField="")
  79. continue
  80. if (A_LoopField="-")
  81. menu,KyMenu_QuickInput,Add
  82. else
  83. menu,KyMenu_QuickInput,Add,% A_LoopField,KyMenu_QuickInput_Handler
  84. }
  85. menu,KyMenu_QuickInput,show
  86. return
  87.  
  88. KyMenu_QuickInput_Handler:
  89. PostMessage, 0x50, 0, 67699721, , A
  90. outputStr:=substr(A_ThisMenuItem,4,strlen(A_ThisMenuItem))
  91. SendInput {raw}%outputStr%
  92. return
  93. }
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
教程

AutoHotkey编码过程中的相对路径

2018-1-20 22:11:54

其他教程

Include和对象的组合技

2018-1-23 8:00:22

16 条回复 A文章作者 M管理员
欢迎您,新朋友,感谢参与互动!
  1. hexuren

    我记得你生成了gif吧 把动图放上更好!

  2. kawvin

    不知道什么原因,上传GIF,总是出错,上传不了。

    • hexuren

      好吧! 我帮你发 你把gif发我一下

  3. hexuren

    你应该是用ScreenToGif 这个小工具做的,不知道什么原因,对这个工具生成的gif网站竟然不支持,我这边使用camtasia转换重新生成一下就好用了!

  4. DOTF

    😳 thx~

  5. DOTF

    😥 你好,感谢分享,热字串可用,但是遇到一个问题,就是一旦在哪个程序上使用了热字串,就无法再切换会原本的中文输入了,只能敲出英文,除非关闭程序重启。

    比如说在outlook使用了一次热字串以后,就无法再切换回中文输入,除非关闭outlook重启。这一点在excel和word里都会遇到同样情况,我不知道自己是不是个例,我是win7系统,office2013,输入法搜狗。如有时间请不吝赐教,谢谢!

    • thqby-fans

      这个跟你的输入法有关系吧

    • kawvin

      PostMessage, 0x50, 0, 67699721, , A
      这一句的作用就是切换到英文输入法,主要是用来防止中文输入法的影响,如果有问题,可以注销本行。

    • DOTF

      🙄 此行删除后完全可用,中英文切换没有问题,非常感谢~OuO!

    • thqby-fans

      哈哈 解决问题适当打赏会有更多分享!!

    • DOTF

      好哒,谢谢

  6. liu10086

    如何优化这个脚本,像输入法那样直接修改文件夹或文件的名字,现在用的这个脚本,每次修改文件夹等按到快捷短语,修改文字的输入框就消失了,还有能不能搞个分组这样就可以用一个组管理所有快捷短语

  7. ghty

    完美解决了我的问题,万分感谢!!!!

  8. sanmaodo

    很实用,谢谢分享!

  9. 李晓龙

    哦哦,作为一个程序员,居然不会AutoHotKey,丢人啊

  10. ╲

    谢谢

个人中心
购物车
优惠劵
私信列表
搜索