AHK有各种自定义快捷键,但也不可能记住所有的.所以快速跳转的菜单也还是很有必要的
看了AHK中的菜单,有个好处是可以依据#if在不同应用程序下定义独有的菜单.这个很好.
另外,因为Listary具有即时搜索功能,而且也自带的目录跳转和菜单自定义
AHK下找了半天好像没有找到具有即时搜索功能的..
所以,目前还是不能抛弃Listary,因为有便携版,所以也方便,那么就在想要发挥Listary的余热吧.
就看到在这Listary菜单里面加入AHK的执行项,试了一下,步骤效果如下:
Listary菜单自定义中
#NoTrayIcon
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
param = %1% ;param传输参数的值
msgbox % param ;检查传入值
myfun(param)
EmptyMem()
exitapp ;运行完就自动关闭
return
myfun(t)
{
sendinput %t% ;外部传入参数
sleep 200
}
EmptyMem(PID="AHK Rocks")
{
pid:=(pid="AHK Rocks") ? DllCall("GetCurrentProcessId") : pid
h:=DllCall("OpenProcess", "UInt", 0x001F0FFF, "Int", 0, "Int", pid)
DllCall("SetProcessWorkingSetSize", "UInt", h, "Int", -1, "Int", -1)
DllCall("CloseHandle", "Int", h)
}
随便先试了几个
PS: 这菜单里面可以嵌入子带单,那么也应该是可以加入#if条件下的AHK菜单的,是吗?
但是我遇到一个问题,我另外一个AHK文件自定义了SPACE+X的热键,在这里发送参数发送不过来执行不了,不知道为什么?
请教各位,啊因为我已经定义space + b打开系统托盘,这个AHK文件正在运行中,我用键盘操作快捷键有效的.
但是我新创建的ahk文件, sendinput, {space}b 这个时候却无效了,只显示打出来来一个b?这是为什么?
感谢大佬,求大佬解惑啊.为什么一个ahk文件不能send另一个ahk文件自定义的热键(如:空格+字母))?
最后我发现这种传递参数运行的方法有一个好处就是,不需要让对应AHK文件后台运行,只需要用的调用然后就退出了,相当于”阅后即焚”!