发表回复 
【RunMenuZz】超轻便自由的快速启动应用工具
2016-11-09, 17 : 57 (这个帖子最后修改于: 2018-10-31 16 : 07 by Zz.)
Lightbulb 【RunMenuZz】超轻便自由的快速启动应用工具
RunMenuZz已升级成为RunAny!Github地址:https://github.com/hui-Zz/RunAny

一直在寻找一种最快捷方便的应用启动工具,至今也用过了各种各样的,先总结下:
1. 自动搜索加载程序,启动方式是模糊搜索匹配形式,如Win+R运行、Listary、Launchy等
- 优点:不用操心配置、搜索强大
- 缺点:无软件分类、步骤繁琐不快捷,重选项多时需打全名
2. 纯手动配置,添加应用启动方式及参数,如AltRun、RunZ等
- 优点:步骤简单快速、可配置性高、功能强大
- 缺点:配置费时且易丢,一套配置不适用不同电脑

本人对效率启动感悟是:二八原则放在哪都是通用的,所有的软件只有“二”是最常用,怎么迅速打开二才是高效率的保证,而不是让那“八”的搜索结果来混淆视听

本人从第1、2种的缺点出发,现初步实现了一个超轻便自由的快速启动应用工具——RunMenuZz

首先用户需配置多个程序安装的父级目录,如C:\Program Files和D:\Program Files(不建议C:\,扫描全盘效率不高)
然后用户再自由配置一个应用启动菜单,在父级目录下的应用会自动识别运行,同名情况可使用全路径
每个菜单名首字母(或用&指定任意)便是启动快捷键,速度够快,可用|添加别名前缀
软件配置放在云同步盘可以完全通用所有不同电脑
快捷、自由、通用

======

大家用一段时间就会发现,启动常用软件就跟打字一样高效方便(`为热键):
`ww就是work分类下的word
`aw就是app下的Wiz
`sw就是sys下的WinRAR

代码: (全选)
/*
【RunMenuZz】超轻便自由的快速启动应用工具
联系:hui0.0713@gmail.com 讨论QQ群:3222783、271105729、493194474
by Zz @2016.11.06
*/
#Persistent            ;~让脚本持久运行
#NoEnv                    ;~不检查空变量为环境变量
#SingleInstance,Force    ;~运行替换旧实例
ListLines,Off            ;~不显示最近执行的脚本行
SetBatchLines,-1        ;~脚本全速执行(默认10ms)
SetControlDelay,0        ;~控件修改命令自动延时(默认20)
SetWorkingDir,%A_ScriptDir%    ;~脚本当前工作目录
SplitPath,A_ScriptFullPath,,,,fileNotExt
iniFile:=fileNotExt ".ini"
IfNotExist,%iniFile%
    gosub,iniFileWrite
gosub,MenuTray
MenuObj:=Object()
menuRoot:=Object()
menuRoot.Insert("AppMenu")
menuLevel:=1

;~;[设定自定义显示菜单热键]
IniRead,menuKey,%iniFile%,key
try{
    Hotkey,%menuKey%,MenuShow,On
}catch{
    MsgBox,1,,[key]`n%menuKey%`t<—热键语法不正确`n`n`n详细请参照AutoHotkey按键列表,需要打开吗?
    IfMsgBox OK
        Run,http://ahkcn.sourceforge.net/docs/KeyList.htm
    return
}
;~;[读取软件安装目录下所有exe]
IniRead,appPath,%iniFile%,appPath
Loop,parse,appPath,`n
{
    IfExist,%A_LoopField%
    {
        Loop,%A_LoopField%\*.exe,0,1
        {
            fileName:=RegExReplace(A_LoopFileName,"i)\.exe$","")
            MenuObj[(fileName)]:=A_LoopFileLongPath
        }
    }else{
        MsgBox,路径不对: %A_LoopField%
    }
}
;~;[读取自定义树形菜单设置]
IniRead,menuName,%iniFile%,menuName
Loop,parse,menuName,`n
{
    if(RegExMatch(A_LoopField,"^-")){
        ;~;[生成目录树层级结构]
        menuItem:=RegExReplace(A_LoopField,"^-+")
        menuLevel:=StrLen(RegExReplace(A_LoopField,"(^-+).*","$1"))
        if(menuItem){
            Menu,%menuItem%,add
            Menu,% menuRoot[menuLevel],add,%menuItem%,:%menuItem%
            menuLevel+=1
            menuRoot[menuLevel]:=menuItem
        }else if(menuRoot[menuLevel]){
            Menu,% menuRoot[menuLevel],Add
        }
    }else if(InStr(A_LoopField,"|")){
        ;~;[生成有前缀备注的应用]
        menuDiy:=StrSplit(A_LoopField,"|")
        appName:=RegExReplace(menuDiy[2],"i)\.exe$")
        if(MenuObj[appName]){
            MenuObj[menuDiy[1]]:=MenuObj[appName]
        }else{
            MenuObj[menuDiy[1]]:=menuDiy[2]
        }
        MenuAdd(menuRoot[menuLevel],menuDiy[1])
    }else if(RegExMatch(A_LoopField,"i)^(\\\\|.:\\).*?\.exe$") && FileExist(A_LoopField)){
        ;~;[生成完全路径的应用]
        SplitPath,A_LoopField,fileName,,,nameNotExt
        MenuObj[nameNotExt]:=A_LoopField
        MenuAdd(menuRoot[menuLevel],nameNotExt)
    }else{
        ;[生成已取到的应用]
        appName:=RegExReplace(A_LoopField,"i)\.exe$")
        if(!MenuObj[appName])
            MenuObj[appName]:=A_LoopField
        MenuAdd(menuRoot[menuLevel],appName)
    }
}
if(ini){
    TrayTip,,RunMenuZz菜单初始化完成,3,1
    Run,%iniFile%
}
ini=true
return
;~;[生成菜单]
MenuAdd(menuName,menuItem){
    global MenuObj
    Menu,%menuName%,add,%menuItem%,MenuRun
    try {
        Menu,%menuName%,Icon,%menuItem%,% MenuObj[(menuItem)],0
    } catch e {
        ;~ Menu,%MenuName%,Delete,%menuItem%
    }
}
;~;[显示菜单]
MenuShow:
    if(!ini){
        TrayTip,请不要太急,RunMenuZz菜单正在生成中...再试一下,3,1
        return
    }
    try{
        Menu,% menuRoot[1],Show
    }catch{
        MsgBox,菜单显示错误,请检查%iniFile%中[menuName]下面的菜单配置
    }
    return
;~;[菜单运行]
MenuRun:
    Run,% MenuObj[(A_ThisMenuItem)]
    return
;~;[托盘菜单]
MenuTray:
    Menu,Tray,NoStandard
    Menu,Tray,add,重启(&R),Menu_Reload
    Menu,Tray,add
    Menu,Tray,add,挂起(&S),Menu_Suspend
    Menu,Tray,add,暂停(&A),Menu_Pause
    Menu,Tray,add,退出(&X),Menu_Exit
    Menu,Tray,Default,重启(&R)
    Menu,Tray,Click,1
    return
Menu_Reload:
    Reload
    return
Menu_Suspend:
    Menu,tray,ToggleCheck,挂起(&S)
    Suspend
    return
Menu_Pause:
    Menu,tray,ToggleCheck,暂停(&A)
    Pause
    return
Menu_Exit:
    ExitApp
    return
;~;[配置生成]
iniFileWrite:
    ini:=true
    FileAppend,% ";【RunMenuZz】超轻便自由的快速启动应用工具`n;联系:hui0.0713@gmail.com 讨论QQ群:3222783、271105729、493194474`n;by Zz @2016.11.06`n;初次使用请先按一下F1显示菜单`n",%iniFile%
    FileAppend,% "[key]`nF1`n;【自定义显示菜单热键】参照AutoHotkey按键列表`n;单键如:【``】【F1】【LWin】【RAlt】【AppsKey】`n;组合键如:左A​lt+z:【<!z】左Win+z:【<#z】左Ctrl+``:【<^``】右Shift+/:【>+/】`n`n",%iniFile%
    FileAppend,% "[appPath]`n;【软件安装根目录】`n;已加入系统[运行]路径的目录无需添加,如:C:\Windows的应用`nC:\Program Files\`nC:\Program Files (x86)\`n`n[menuName]`n;【自定义树形启动菜单】`n;如果有多个同名应用,请加上全路径`n;目录前-为1级目录,--为2级以此类推,分隔符亦是如此`n",%iniFile%
    FileAppend,% "cmd.exe`n-`n-app`n计算器|calc.exe`n--img`n  画图|mspaint.exe`n  ---`n  截图|SnippingTool.exe`n--sys`n  ---media`n     wmplayer.exe`n--佳软`n  StrokesPlus.exe`n  TC|Totalcmd64.exe`n  Everything.exe`n-edit`n  notepad.exe`n  写字板|wordpad.exe`n-`nIE(&E)|C:\Program Files\Internet Explorer\iexplore.exe`n-`n设置|Control.exe`n",%iniFile%
    return


附件 缩略图
   
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 3用户表示感谢Zz
2016-11-09, 21 : 22
Wink RE: 【AppMenuZz】超轻便自由的快速启动应用工具
不错,十分好用,感谢Zz的分享!!!
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2016-11-10, 11 : 37
RE: 【AppMenuZz】超轻便自由的快速启动应用工具
感谢!鼓励!

简单,再简单一点儿
博客 http://blog.csdn.net/liuyukuan
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2016-11-18, 17 : 31
RE: 【RunMenuZz】超轻便自由的快速启动应用工具
报错,
Error:"IniRead"需要至少4个参数
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2016-11-22, 11 : 41
RE: 【RunMenuZz】超轻便自由的快速启动应用工具
@michael6
;~;[设定自定义显示菜单热键]
;~;[读取软件安装目录下所有exe]
;~;[读取自定义树形菜单设置]
请检查这三段代码下的IniRead是否做了错误的修改
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2016-11-23, 11 : 15
RE: 【RunMenuZz】超轻便自由的快速启动应用工具
@Zz
只把代码拷进了ini文件执行,未对代码做修改。
我的AHK版本是1.0.47.06,是否与版本低有关系?
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2016-11-27, 16 : 56
RE: 【RunMenuZz】超轻便自由的快速启动应用工具
@michael6
很有关系,起码得1.1以后的版本吧,我是用1.1.24
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2018-10-29, 18 : 47
RE: 【RunMenuZz】超轻便自由的快速启动应用工具
很不错啊, 希望可以支持鼠标快捷键, 毕竟F系列键一般很容易被占用
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2018-10-31, 16 : 15 (这个帖子最后修改于: 2018-10-31 16 : 16 by Zz.)
RE: 【RunMenuZz】超轻便自由的快速启动应用工具
(2018-10-29 18 : 47)刘得娃 提到:  很不错啊, 希望可以支持鼠标快捷键, 毕竟F系列键一般很容易被占用

鼠标快捷是支持修改的,详情可以看https://wyagd001.github.io/zh-cn/docs/KeyList.htm,另外RunMenuZz已经升级成为RunAny,功能强大了数倍Big Grin
github地址:https://github.com/hui-Zz/RunAny
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
发表回复 


论坛跳转:


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合