Everything 快捷键 ~ 1.4.1.1026 MD5 93ED3
Single.exe 2025-04-15
C:\APP\Everything\Everything-ahk.ahk
;-----------------------------------
; 此脚本从此行开始
; 设置显示或者隐藏Everything的快捷键为 ` (即~键,位于Esc键正下方,位于Tab键正上方)
; 【脚本编程压缩打包测试:徐亮 138####5488 E-Mail To: 595076941@qq.com】
; =====================================================================
; Everything
; 基于名称快速定位文件和文件夹,根据部分文件名快速搜索Windows电脑硬盘中的文件
; https://www.voidtools.com/zh-cn/
;
; https://www.voidtools.com/Everything-1.4.1.1026.x64.zip
; =====================================================================
#Persistent
; 按 Win + Z 终止此脚本的运行
; #z::ExitApp
;-----------------------------------
; 强制自身以 ansi + 管理员权限 运行,编译此脚本时选择 ANSI 32位 。
runwith("admin","ansi")
;-----------------------------------
; 多进程热键——快速响应随时中止 v2.1 By FeiYue
;
; 1、一般的多进程热键,每次按热键都会重新启动一个进程
; 这会造成热键响应延迟,和频繁启动、退出进程。
; 这个库利用线程叠加和双进程交替重启的设计解决了上述问题
;
; 2、Go.Go("标签名或函数名", 序号可省略) 启动子进程
; Go.Go("清理标签或为空", 序号可省略) 停止子进程
;-----------------------------------
class Go { ;// 类开始
init() {
static h:=Go.init()
#NoEnv
; #NoTrayIcon
Menu, Tray, Icon , %A_ScriptDir%\Ico.ico
#SingleInstance force
#MaxThreads 255
if (A_Args.Length()>0)
{
Suspend, On
flag:="Ahk_Sub"
s:=RegExReplace(A_Args[1], "\s")
this.WinKill(flag "[" s "]")
r:=this.Menu_Go.Bind(this)
Menu, MyMenu, Add, Run, % r
Gui, %flag%: Add, Text, 0x80 -Wrap
Gui, %flag%: Menu, MyMenu
Gui, %flag%: Show, Hide, % flag "[" s "]"
return
Ahk_SubGuiClose:
Critical
WinMenuSelectItem,,, 1&
return
}
else
{
flag:="Ahk_Main"
this.WinKill(flag)
Gui, %flag%: Show, Hide, % flag
OnExit(this.WinKill.Bind(this,"Ahk_Sub"))
Menu, Tray, Icon
}
}
Menu_Go() {
ControlGetText, s
s:=Trim(s)
if (s="Reload")
{
WinGetTitle, s
this.RunAhk(RegExReplace(s,"Ahk_Sub\[|]"))
ExitApp
}
if IsLabel(s)
gosub, %s%
else if IsFunc(s)
%s%()
loop
Sleep, 60000
}
WinKill(flag) {
DetectHiddenWindows, On
WinGet, list, List, % flag " ahk_class AutoHotkeyGUI"
loop % list
IfWinExist, % "ahk_id " list%A_Index%
{
WinGet, pid, PID
WinClose, ahk_class AutoHotkey ahk_pid %pid%,, 3
IfWinExist,,, Process, Close, %pid%
}
DetectHiddenWindows, Off
}
RunAhk(s="") {
if (A_IsCompiled)
Run, "%A_ScriptFullPath%" /f %s%
else
Run, "%A_AhkPath%" /f "%A_ScriptFullPath%" %s%
}
; 一个进程叠加超过100个线程就切换另一个进程,原进程重启
Go(LabelOrFuncName="", index=0) {
static arr:=[]
DetectHiddenWindows, On
SetFormat, IntegerFast, d
index:=Floor(index), (!arr[index] && arr[index]:=[0,0])
, ii:=Floor(arr[index][1]), jj:=Floor(arr[index][2])
, tt:="Ahk_Sub[" index "_" jj "]"
if (++ii>100)
{
IfWinExist, % tt
{
ControlSetText,, Reload
WinClose
}
else
this.RunAhk(index "_" jj)
arr[index][2]:=jj:=!jj, ii:=1
, tt:="Ahk_Sub[" index "_" jj "]"
}
arr[index][1]:=ii
IfWinNotExist, % tt
{
this.RunAhk(index "_" jj)
WinWait, % tt,, 3
}
IfWinExist, % tt
{
ControlSetText,, % LabelOrFuncName
WinClose
}
DetectHiddenWindows, Off
}
} ;// 类结束
;======== 下面开始设置快捷键 =========
;
;======== 设置显示或者隐藏 Everything 主窗口的快捷键为 ` (即~键,位于Esc键正下方,位于Tab键正上方) =========
`::Go.Go("aaa")
aaa:
DetectHiddenWindows,On ;设置脚本可以 "看见" 隐藏的窗口.
SetTitleMatchMode,2 ; 2: 窗口标题的任意位置包含 WinTitle 才能匹配.
; WinGetActiveTitle,Title
; MsgBox, 活动窗口是: " %Title%".
; if InStr("Everything",Title)
; if InStr(Title, "Everything") and WinActive(Everything ahk_class EVERYTHING))
IfWinActive,Everything ahk_class EVERYTHING
{
; WinHide,Everything ahk_class EVERYTHING
WinMinimize,Everything ahk_class EVERYTHING
Sleep,5
WinActivate,Program Manager
Sleep,5
WinActivate,Program Manager
Sleep,5
WinActivate,Program Manager
Sleep,5
WinActivate,开始
Sleep,5
WinActivate,开始
Sleep,5
WinActivate,开始
}
else
{
IfExist,%windir%\SysWOW64
{
IfExist,C:\APP\Everything\Everything64.exe
{
Run,C:\APP\Everything\Everything64.exe
}
else
{
MsgBox,0,,找不到文件 C:\APP\Everything\Everything64.exe,5
}
}
else
{
IfExist,C:\APP\Everything\Everything.exe
{
Run,C:\APP\Everything\Everything.exe
}
else
{
MsgBox,0,,找不到文件 C:\APP\Everything\Everything.exe,5
}
}
WinShow,Everything ahk_class EVERYTHING
WinGet, WinEverythingID, ID,Everything ahk_class EVERYTHING
DllCall("SwitchToThisWindow", "UInt", WinEverythingID, "UInt", 1)
WinActivate,Everything ahk_class EVERYTHING
loop,100
{
IfWinActive,Everything ahk_class EVERYTHING
{
Sleep,5
WinMove,Everything ahk_class EVERYTHING,,A_ScreenWidth/2,20,A_ScreenWidth/2-10,A_ScreenHeight-170
Sleep,5
ControlFocus,Edit1,Everything ahk_class EVERYTHING
Sleep,5
ControlFocus,Edit1,Everything ahk_class EVERYTHING
Sleep,5
; 由于用Ctrl+A全选文本框有时候会填入字母 a ,所以此处先获取控件位置,再移动鼠标光标,最后鼠标叁击文本框控件,文本中间有空格时双击无法全选,必需叁击
ControlGetPos, x, y, w, h,Edit1,Everything ahk_class EVERYTHING
Sleep,5
MouseMove, x+200, y+6
Sleep,5
Click,3
Sleep,5
break
}
else
{
Sleep,5
}
}
}
Go.Go()
return
;-----------------------------------
;
; 强制自身进程以 管理员权限 或 普通权限 或 ANSI 或 U32 或 U64 版本运行。
; 例1: runwith("admin","u32") 强制自身以 u32 + 管理员权限 运行。
; 例2: runwith("","ansi") 强制自身以 ansi 版本运行(权限不变)。
; 例3: runwith("normal") 强制自身以 普通权限 运行(版本不变)。
RunWith(RunAsAdmin:="default", ANSI_U32_U64:="default")
{
; 格式化预期的模式
switch, RunAsAdmin
{
case "Normal","Standard","No","0": RunAsAdmin:=0
case "Admin","Yes","1": RunAsAdmin:=1
case "default": RunAsAdmin:=A_IsAdmin
default: RunAsAdmin:=A_IsAdmin
}
switch, ANSI_U32_U64
{
case "A32","ANSI","A": ANSI_U32_U64:="AutoHotkeyA32.exe"
case "U32","X32","32": ANSI_U32_U64:="AutoHotkeyU32.exe"
case "U64","X64","64": ANSI_U32_U64:="AutoHotkeyU64.exe"
case "default": ANSI_U32_U64:="AutoHotkey.exe"
default: ANSI_U32_U64:="AutoHotkey.exe"
}
; 获取传递给 “.ahk” 的用户参数(不是 /restart 之类传递给 “.exe” 的开关参数)
for k, v in A_Args
{
if (RunAsAdmin=1)
{
; 转义所有的引号与转义符号
v:=StrReplace(v, "\", "\\")
v:=StrReplace(v, """", "\""")
; 无论参数中是否有空格,都给参数两边加上引号
; Run 的内引号是 "
ScriptParameters .= (ScriptParameters="") ? """" v """" : A_Space """" v """"
}
else
{
; 转义所有的引号与转义符号
; 注意要转义两次 Run 和 RunAs.exe
v:=StrReplace(v, "\", "\\")
v:=StrReplace(v, """", "\""")
v:=StrReplace(v, "\", "\\")
v:=StrReplace(v, """", "\""")
; 无论参数中是否有空格,都给参数两边加上引号
; RunAs.exe 的内引号是 \"
ScriptParameters .= (ScriptParameters="") ? "\""" v "\""" : A_Space "\""" v "\"""
}
}
; 判断当前 exe 是什么版本
if (!A_IsUnicode)
RunningEXE:="AutoHotkeyA32.exe"
else if (A_PtrSize=4)
RunningEXE:="AutoHotkeyU32.exe"
else if (A_PtrSize=8)
RunningEXE:="AutoHotkeyU64.exe"
; 运行模式与预期相同,则直接返回。 ANSI_U32_U64="AutoHotkey.exe" 代表不对 ahk 版本做要求。
if (A_IsAdmin=RunAsAdmin and (ANSI_U32_U64="AutoHotkey.exe" or ANSI_U32_U64=RunningEXE))
return
; 如果当前已经是使用 /restart 参数重启的进程,则报错避免反复重启导致死循环。
else if (RegExMatch(DllCall("GetCommandLine", "str"), " /restart(?!\S)"))
{
预期权限:=(RunAsAdmin=1) ? "管理员权限" : "普通权限"
当前权限:=(A_IsAdmin=1) ? "管理员权限" : "普通权限"
ErrorMessage=
(LTrim
预期使用: %ANSI_U32_U64%
当前使用: %RunningEXE%
预期权限: %预期权限%
当前权限: %当前权限%
程序即将退出。
)
MsgBox 0x40030, 运行状态与预期不一致, %ErrorMessage%
ExitApp
}
else
{
; 获取 AutoHotkey.exe 的路径
SplitPath, A_AhkPath, , Dir
if (RunAsAdmin=0)
{
; 强制普通权限运行
switch, A_IsCompiled
{
; %A_ScriptFullPath% 必须加引号,否则含空格的路径会被截断。%ScriptParameters% 必须不加引号,因为构造时已经加了。
; 工作目录不用单独指定,默认使用 A_WorkingDir 。
case, "1": Run, RunAs.exe /trustlevel:0x20000 "\"%A_ScriptFullPath%\" /restart %ScriptParameters%",, Hide
default: Run, RunAs.exe /trustlevel:0x20000 "\"%Dir%\%ANSI_U32_U64%\" /restart \"%A_ScriptFullPath%\" %ScriptParameters%",, Hide
}
}
else
{
; 强制管理员权限运行
switch, A_IsCompiled
{
; %A_ScriptFullPath% 必须加引号,否则含空格的路径会被截断。%ScriptParameters% 必须不加引号,因为构造时已经加了。
; 工作目录不用单独指定,默认使用 A_WorkingDir 。
case, "1": Run, *RunAs "%A_ScriptFullPath%" /restart %ScriptParameters%
default: Run, *RunAs "%Dir%\%ANSI_U32_U64%" /restart "%A_ScriptFullPath%" %ScriptParameters%
}
}
ExitApp
}
}
; 此脚本到此行结束
;-----------------------------------
C:\APP\Everything\Everything-bat.bat
@ECHO OFF
title Everything 【脚本编程压缩打包测试:徐亮 138####5488 E-Mail To: 595076941@qq.com】
setlocal enabledelayedexpansion
pushd "%~dp0"
cd /d "%~dp0"
REM @ECHO OFF&(PUSHD "%~DP0")&(REG QUERY "HKU\S-1-5-19">NUL 2>&1)||(
REM powershell -Command "Start-Process '%~sdpnx0' -Verb RunAs"&&EXIT)
REM taskkill /f /im uc.exe /t >NUL 2>NUL
REM sc stop GsServer >NUL 2>NUL
REM sc delete GsServer >NUL 2>NUL
REM reg delete "HKLM\SYSTEM\CurrentControlSet\Services\GsServer" /F >NUL 2>NUL
if defined PROGRAMFILES(X86) (
echo Running Everything on 64-bit system
REM pause
start C:\APP\Everything\AutoHotkeyA32.exe Everything-ahk.ahk
) else (
echo Running Everything on 32-bit system
REM pause
start C:\APP\Everything\AutoHotkeyA32.exe Everything-ahk.ahk
)
C:\APP\Everything\7z SFX Builder v2.5.0.5 配置文件.txt
;!@Install@!UTF-8!
InstallPath="C:\\APP"
GUIMode="1"
OverwriteMode="1+8"
RunProgram="waitall:\"C:\\APP\\Everything\\Everything-bat.bat\""
;!@InstallEnd@!
7zSFXBuilder_SFXName=C:\APP\Everything.exe
7zSFXBuilder_SFXIcon=C:\APP\Everything\Everything.ico
7zSFXBuilder_UseDefMod=7zsd_LZMA2
7zSFXBuilder_SFXFile_1=C:\APP\Everything\
7zSFXBuilder_7Zip_Level=Ultra
7zSFXBuilder_7Zip_Method=LZMA2
7zSFXBuilder_7Zip_Dictionary=64 MB
7zSFXBuilder_7Zip_BlockSize=Solid
C:\APP\Everything\一键设置自启动AutoRun-AHK\打开启动文件夹.bat
start "" "shell:common startup"
C:\APP\Everything\一键设置自启动AutoRun-AHK\打开启动文件夹.VBS
Set objShell = CreateObject("Wscript.Shell")
objshell.run """shell:common startup"""
WScript.quit
C:\APP\Everything\一键设置自启动AutoRun-AHK\7z-SFX-Builder-v2.5.0.5-配置文件.txt
注意:Shortcut=”T,{ 这里的 T 表示在 “C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp”文件夹中新建快捷方式,以便在电脑系统启动时自动运行1批应用程序软件。
“C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp”文件夹可以运行 shell:common startup 命令打开
;!@Install@!UTF-8!
InstallPath="D:\\APP"
GUIMode="1"
OverwriteMode="1+8"
RunProgram="\"D:\\APP\\AutoRun-AHK\\\""
Shortcut="T,{D:\\APP\\AutoRun-AHK\\AutoRun-VBS.vbs},{},{},{},{AutoRun-AHK},{D:\\APP\\AutoRun-AHK\\},{},{}"
;!@InstallEnd@!
7zSFXBuilder_SFXName=D:\APP\AutoRun-AHK.exe
7zSFXBuilder_SFXIcon=D:\APP\AutoRun-AHK\ICO.ico
7zSFXBuilder_UseDefMod=7zsd_LZMA2
7zSFXBuilder_SFXFile_1=D:\APP\AutoRun-AHK\
7zSFXBuilder_7Zip_Level=Ultra
7zSFXBuilder_7Zip_Method=LZMA2
7zSFXBuilder_7Zip_Dictionary=64 MB
7zSFXBuilder_7Zip_BlockSize=Solid
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.run "D:\APP\Autorun-AHK\AutoHotkeyA32.exe D:\APP\Autorun-AHK\Autorun-AHK.ahk"
Set oShell = Nothing
注意:AutoHotkey脚本运行外部应用程序的路径中含有空格符时可以通过 Run, % “C:\Program Files (x86)\Everything 快捷键 ~ MD5 889C5 Single.exe” 来运行
; Run,% "带空格的程序路径"
run,% .
; run,C:\app\GoodSync\x64\GoodSync2Go.exe
; run,D:\APP\MayeLite\Maye Lite.exe,D:\APP\MayeLite\
; run,D:\APP\RegHotkey\RegHotkey.exe
; run,D:\APP\Everything\Everything.exe
ExitApp