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

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

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

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

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

QuickInputList=
(Ltrim
	&Q)2857xxxxxxxxxx@qq.com
	-
	&G)chendddddddddd@szmhzs.com
)

以下为快捷演示:

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

以下为完整代码:

;我的快捷替换短语>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;[*] 的作用是不用输入终止符即自动替换
;[ad*----地址类];{
:*:]aa:: 
	QuickInputList=
	(Ltrim
		&X)aaaaaaaaaaaaaaaaaaaaaaaaa,aaa,aaaaaaaaaaaaaaaa
		&S)bbbbbbbbbbbbbb,bbbbb,bbbbbbbbbbbbbbb
		&M)cccccccccccccccc,ccc,ccccccccccccc
		-
		&Y)ddddddddddddddddd,徐dddd,18-ddddd
		&P)深圳市eeeeeeeeeeeeeeeeee,潘ee,187eeeeeeeeeeee
		-
		&Z)深圳市fffffffffffffffffffff,周fff,185fffffffffffffffffffff
		&J)深圳gggggggggggggggggg,周ggg,1ggggggggggggggggg
	)
	MySub_QuickInput(QuickInputList)
return
;}


;[em*----邮箱类] ;{
:*:]ee:: 
	QuickInputList=
	(Ltrim
		&Q)2857xxxxxxxxxx@qq.com
		&G)chendddddddddd@szmhzs.com
	)
	MySub_QuickInput(QuickInputList)
return
;}

;[tel*----电话类] ;{
:*:]tt:: 
	QuickInputList=
	(Ltrim
		&C)陈xxxxx,18-xxxxxx
		&Z)张xxxx,1xxx-xxxx-xxxxx
	)
	MySub_QuickInput(QuickInputList)
return
;}

;[-*----日期类] ;{
:*:]--::
	QuickInputList=
	(Ltrim
		&1)%A_YYYY%%A_MM%%A_DD%
		&2)%A_YYYY%-%A_MM%-%A_DD%
		&3)%A_YYYY%.%A_MM%.%A_DD%
		&4)%A_YYYY%年%A_MM%月%A_DD%日
		&5)[%A_YYYY%.%A_MM%.%A_DD%]
	)
	MySub_QuickInput(QuickInputList)
return
;}

;[**----名称类] ;{
:*:]mm::
	QuickInputList=
	(Ltrim
		&M)深圳市aaaaaaaaaaaaaa
		&L)联ggggggggggggggggggg
		&G)广西dddddddddddddddddd
		-
		&T)厦门gggggggggggg
	)
	MySub_QuickInput(QuickInputList)
return
;}

;我的过程或函数>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
MySub_QuickInput(String){
		menu,KyMenu_QuickInput,Add
		menu,KyMenu_QuickInput,DeleteAll
		Loop,parse,String,`n,`r
		{
			if (A_LoopField="")
				continue
			if (A_LoopField="-")
				menu,KyMenu_QuickInput,Add
			else
				menu,KyMenu_QuickInput,Add,% A_LoopField,KyMenu_QuickInput_Handler
		}
		menu,KyMenu_QuickInput,show
	return

	KyMenu_QuickInput_Handler:
		PostMessage, 0x50, 0, 67699721, , A
		outputStr:=substr(A_ThisMenuItem,4,strlen(A_ThisMenuItem))
		SendInput   {raw}%outputStr%
	return
}

给TA捐赠
共{{data.count}}人
人已捐赠
教程

AutoHotkey编码过程中的相对路径

2018-1-20 22:11:54

其他教程

Include和对象的组合技

2018-1-23 8:00:22

16 条回复 A文章作者 M管理员
  1. AHK中文社区

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

  2. kawvin

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

    • AHK中文社区

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

  3. AHK中文社区

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

  4. DOTF

    😳 thx~

  5. DOTF

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

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

    • dome

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

    • kawvin

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

    • DOTF

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

    • dome

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

    • DOTF

      好哒,谢谢

  6. liu10086

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

  7. ghty

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

  8. sanmaodo

    很实用,谢谢分享!

  9. 李晓龙

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

  10. ╲

    谢谢

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