批量复制、安装和设置电脑软件的批处理脚本程序源代码-2022年1月6日
https://www.autoahk.com/archives/39241
我能力有限,无法使用路径中带有空格符的 %~dp0
如果有那位网友有完美的带空格路径解决方案请在本文最下面的评论区回复一下,谢谢。
D:\ProgramSetup\Setup.bat
rem 批量复制、安装和设置电脑软件的批处理脚本程序源代码-2022年1月6日
rem D:\ProgramSetup\Setup.bat
rem 可以在局域网共享文件夹、RaiDrive连接群晖WebDAV后映射的虚拟磁盘或者银灿IS903量产U盘USB-CD-ROM中运行此批处理脚本
rem 路径中不可以有空格
rem 1、复制批处理脚本所在文件夹中的文件到D:\Program
Start /Wait Robocopy.exe %~dp0 D:\Program\ /e /mt /r:3 /w:3 *.*
rem 2、全自动静默安装AutoHotkey自动化热键脚本编程环境
Start /Wait D:/Program/AutoHotkey/AutoHotkey_1.1.33.10_setup.exe /S /A32 /U32 /U64 /D=D:/Program/AutoHotkey/
rem 3、等待3秒钟
ping -n 3 127.0.0.1>nul 2>nul
rem 4、设置AHK类型的自动化热键脚本文件的右键菜单关联(新建、运行、编译、编辑)
Start D:/Program/AutoHotkey/RightMenuSetup.ahk
rem 作者: 甲壳虫<jdchenjian@gmail.com>
rem 修改作者: 兔子
rem 5、运行、显示、最大化并激活 Total Commander 10.00 程序窗口
Start D:\Program\TotalCMD\Run.ahk
rem 6、运行并最小化 Everything 程序窗口
Start /Min D:\Program\Everything\Everything.exe
rem 7、运行Maye(快速启动工具,用于管理和使用快捷方式、
rem 设置快捷键(TotalCMD设置为F8,Everything设置为F11))
Start D:\Program\Maye\Maye.exe
rem https://blog.arae.cc/post/25830.html
rem https://github.com/25H/Maya/releases/latest
rem https://www.lanzoux.com/b0bqwqjvg
exit
D:/Program/AutoHotkey/RightMenuSetup.ahk
/*
D:/Program/AutoHotkey/RightMenuSetup.ahk
AutoHotkey 版本: 1.x
操作系统: WinXP
作者: 甲壳虫<jdchenjian@gmail.com>
博客: http://hi.baidu.com/jdchenjian
脚本说明: 此工具用来修改 AutoHotkey 脚本的右键菜单关联,适用于 AutoHotkey 安装版、绿色版。
脚本版本: 2009-01-21
修改作者: 兔子
更新说明:
2010.01.09 之前某个时间,修改AHK路径、编辑器路径、编译器路径,默认全部在当前目录下寻找
2010.01.09 去掉默认在新建菜单的勾
2010.06.21 如果SCITE为默认编辑器,则复制个人配置文件“SciTEUser.properties”到%USERPROFILE%
2010.06.25 修正因#NoEnv使%USERPROFILE%变量直接引用无效
2016.04.18 删除“2010.06.21”的改动
*/
; --- 20190207 晓亮修改 ---
#NoEnv
SetWorkingDir, %A_ScriptDir%
; 管理员权限运行
RunWith("admin")
#NoEnv
#SingleInstance, force
SendMode Input
SetWorkingDir %A_ScriptDir%
; 版本(仅用于显示)
Script_Version=v1.0.3.2
; AutoHotkey 原版的相关信息写在注册表HKCR主键中,
; 尝试是当前用户否有权操作该键,如果无权操作HKCR键(受限用户),
; 可通过操作注册表HKCU键来实现仅当前用户关联AHK脚本。
IsLimitedUser:=0
RegWrite, REG_SZ, HKCR, .test
if ErrorLevel
IsLimitedUser:=1
RegDelete, HKCR, .test
if ErrorLevel
IsLimitedUser:=1
if IsLimitedUser=0 ; 非受限用户操作HKCR键
{
RootKey=HKCR
Subkey=
}
else ; 受限用户操作HKCU键
{
RootKey=HKCU
Subkey=Software\Classes\ ; <-- 为简化后面的脚本,此子键须以“\”结尾
}
; 检查是否存在AHK注册表项
RegRead, FileType, %RootKey%, %Subkey%.ahk
if FileType<>
{
RegRead, value, %RootKey%, %Subkey%%FileType%\Shell\Open\Command ;AHK路径
AHK_Path:=PathGetPath(value)
RegRead, value, %RootKey%, %Subkey%%FileType%\Shell\Edit\Command ;编辑器路径
Editor_Path:=PathGetPath(value)
RegRead, value, %RootKey%, %Subkey%%FileType%\Shell\Compile\Command ;编译器路径
Compiler_Path:=PathGetPath(value)
RegRead, Template_Name, %RootKey%, %Subkey%.ahk\ShellNew, FileName ;模板文件名
}
else
FileType=AutoHotkeyScript
if AHK_Path=
{
IfExist, %A_ScriptDir%\AutoHotkey.exe
AHK_path=%A_ScriptDir%\AutoHotkey.exe
}
if Editor_Path=
{
IfExist, %A_ScriptDir%\SciTE\SciTE.exe
Editor_Path=%A_ScriptDir%\SciTE\SciTE.exe
}
if Compiler_Path=
{
IfExist, %A_ScriptDir%\Compiler\Ahk2Exe.exe
Compiler_Path=%A_ScriptDir%\Compiler\Ahk2Exe.exe
}
if Template_Name=
Template_Name=Template.ahk
; --- 20190207 晓亮修改 ---
;设置AHK默认文件夹为 D:\Program\AutoHotkey
AHK_path=D:\Program\AutoHotkey\AutoHotkeyU32.exe
Editor_Path=D:\Program\AutoHotkey\SciTE\SciTE.exe
Compiler_Path=D:\Program\AutoHotkey\Compiler\Ahk2Exe.exe
Gui, Add, Tab, x10 y10 w480 h250 Choose1, 设置|说明
Gui, Tab, 1
Gui, Add, GroupBox, x20 y40 w460 h50 , “运行脚本”关联的 AutoHotkey
Gui, Add, Edit, x35 y60 w340 h20 vAHK_Path, %AHK_path%
Gui, Add, Button, x385 y60 w40 h20 gFind_AHK, 浏览
Gui, Add, GroupBox, x20 y100 w460 h50 , “编辑脚本”关联的编辑器
Gui, Add, Edit, x35 y120 w340 h20 vEditor_Path, %Editor_Path%
Gui, Add, Button, x385 y120 w40 h20 gChoose_Editor, 浏览
Gui, Add, Button, x430 y120 w40 h20 gDefault_Editor, 默认
Gui, Add, GroupBox, x20 y160 w460 h50 , “编译脚本”关联的编译器
Gui, Add, Edit, x35 y180 w340 h20 vCompiler_Path, %Compiler_Path%
Gui, Add, Button, x385 y180 w40 h20 gChoose_Compiler, 浏览
Gui, Add, Button, x430 y180 w40 h20 gDefault_Compiler, 默认
Gui, Add, Checkbox, x35 y230 w270 h20 gNew_Script vNew_Script, 右键“新建”菜单中增加“AutoHotkey 脚本”
Gui, Add, Button, x310 y230 w80 h20 vEdit_Template gEdit_Template, 编辑脚本模板
Gui, Add, Button, x400 y230 w80 h20 vDelete_Template gDelete_Template, 删除脚本模板
Gui, Tab, 2
Gui, Font, bold
Gui, Add, Text,, AutoHotkey 脚本关联工具 ScriptSetting %Script_Version%
Gui, Font
Gui, Font, CBlue underline
Gui, Add, Text, gWebsite, 作者:甲壳虫 <jdchenjian@gmail.com>`n`n博客:http://hi.baidu.com/jdchenjian
Gui, Font
Gui, Add, Text, w450, 此工具用来修改 AutoHotkey 脚本的右键菜单关联,适用于 AutoHotkey 安装版、绿色版。
Gui, Add, Text, w450, 您可以用它来修改默认脚本编辑器、编译器,修改默认的新建脚本模板。设置后,在右键菜单中添加“运行脚本”、“编辑脚本”、“编译脚本”和“新建 AutoHotkey 脚本”等选项。
Gui, Add, Text, w450, 要取消脚本的系统关联,请按“卸载”。注意:卸载后您将无法通过双击来运行脚本,也不能通过右键菜单来启动脚本编辑器...
Gui, Tab
Gui, Add, Button, x100 y270 w60 h20 default gInstall, 设置
Gui, Add, Button, x200 y270 w60 h20 gUninstall, 卸载
Gui, Add, Button, x300 y270 w60 h20 gCancel, 取消
Gui, Show, x250 y200 h300 w500 CEnter, ScriptSetting %Script_Version%
GuiControl, Disable, Edit_Template ; 使“编辑脚本模板”按钮无效
IfNotExist, %A_WinDir%\ShellNew\%Template_Name%
GuiControl, Disable, Delete_Template ; 使“删除脚本模板”按钮无效
; 当鼠标指向链接时,指针变成手形
hCurs:=DllCall("LoadCursor","UInt",NULL,"Int",32649,"UInt") ;IDC_HAND
OnMessage(0x200,"WM_MOUSEMOVE")
; --- 20190207 晓亮修改 ---
goto,Install
return
; 改变鼠标指针为手形
WM_MOUSEMOVE(wParam,lParam)
{
global hCurs
MouseGetPos,,,,ctrl
if ctrl in static2
DllCall("SetCursor","UInt",hCurs)
return
}
return
GuiClose:
GuiEscape:
Cancel:
ExitApp
; 查找 AutoHotkey 主程序
Find_AHK:
Gui +OwnDialogs
FileSelectFile, AHK_Path, 3, , 查找 AutoHotkey.exe, AutoHotkey.exe
if AHK_Path<>
GuiControl,,AHK_Path, %AHK_Path%
gosub Default_Compiler
return
; 选择脚本编辑器
Choose_Editor:
Gui +OwnDialogs
FileSelectFile, Editor_Path, 3, , 选择脚本编辑器, 程序(*.exe)
if Editor_Path<>
GuiControl,,Editor_Path, %Editor_Path%
return
; 默认脚本编辑器
Default_Editor:
IfExist, %A_ScriptDir%\SciTE\SciTE.exe
Editor_Path=%A_ScriptDir%\SciTE\SciTE.exe
else ifExist, %A_WinDir%\system32\notepad.exe
Editor_Path=%A_WinDir%\system32\notepad.exe
GuiControl,, Editor_Path, %Editor_Path%
return
; 选择脚本编译器
Choose_Compiler:
Gui +OwnDialogs
FileSelectFile, Compiler_Path, 3, , 选择脚本编译器, 程序(*.exe)
if Compiler_Path<>
GuiControl,,Compiler_Path, %Compiler_Path%
return
; 默认脚本编译器
Default_Compiler:
GuiControlGet, AHK_Path
SplitPath, AHK_Path, ,AHK_Dir
IfExist, %AHK_Dir%\Compiler\Ahk2Exe.exe
{
Compiler_Path=%AHK_Dir%\Compiler\Ahk2Exe.exe
GuiControl,, Compiler_Path, %Compiler_Path%
}
return
; 设置
Install:
Gui, Submit
IfNotExist, %AHK_Path%
{
MsgBox, 16, ScriptSetting %Script_Version%, AutoHotkey 路径错误 !
return
}
IfNotExist, %Editor_Path%
{
MsgBox, 16, ScriptSetting %Script_Version%, 编辑器路径错误 !
return
}
IfNotExist, %Compiler_Path%
{
MsgBox, 16, ScriptSetting %Script_Version%, 编译器路径错误 !
return
}
; 写入注册表
RegWrite, REG_SZ, %RootKey%, %Subkey%.ahk,, %FileType%
if New_Script=1
{
RegWrite, REG_SZ, %RootKey%, %Subkey%.ahk\ShellNew, FileName, %Template_Name%
IfNotExist, %A_WinDir%\ShellNew\%Template_Name%
gosub Create_Template
}
else
{
; --- 20190207 晓亮修改 ---
; --- 此处不要删除右键新建ahk文件的菜单所以注释掉此代码
;RegDelete, %RootKey%, %Subkey%.ahk\ShellNew
IfExist, %A_WinDir%\ShellNew\%Template_Name%
gosub Delete_Template
}
RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%,, AutoHotkey 脚本
RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\DefaultIcon,, %AHK_Path%`,1
RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell,, Open
RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Open,, 运行脚本
RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Open\Command,, "%AHK_Path%" "`%1" `%*
RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Edit,, 编辑脚本
RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Edit\Command,, "%Editor_Path%" "`%1"
RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Compile,, 编译脚本
IfInString, Compiler_Path, Ahk2Exe.exe
RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Compile\Command,, "%Compiler_Path%" /in "`%1"
else
RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Compile\Command,, "%Compiler_Path%" "`%1"
/* 新版的scite不需要将“SciTEUser.properties”放在“USERPROFILE”目录下了
if Editor_Path=%A_ScriptDir%\SciTE\SciTE.exe
{
EnvGet,USERPROFILE,USERPROFILE
FileCopy,%A_ScriptDir%\SciTE\SciTEUser.properties,%USERPROFILE%\SciTEUser.properties,1
}
*/
;MsgBox, 64, ScriptSetting %Script_Version%, 设置完毕 !
ExitApp
; 卸载
Uninstall:
; --- 20190207 晓亮修改 ---
;MsgBox, 36, ScriptSetting %Script_Version%
;, 注意:卸载后您将无法通过双击来运行脚本,也不能通过右键菜单来启动脚本编辑器...`n`n确定要取消 AHK 脚本的系统关联吗 ?
;IfMsgBox, Yes
;{
;RegDelete, %RootKey%, %Subkey%.ahk
;RegDelete, %RootKey%, %Subkey%%FileType%
;gosub Delete_Template
;ExitApp
;}
return
; 编辑脚本模板
Edit_Template:
GuiControlGet, Editor_Path
IfNotExist, %Editor_Path%
{
MsgBox, 64, ScriptSetting %Script_Version%, 脚本编辑器路径错误 !
return
}
IfNotExist, %A_WinDir%\ShellNew\%Template_Name%
gosub Create_Template
Run, %Editor_Path% %A_WinDir%\ShellNew\%Template_Name%
return
; 使编辑脚本模板按钮有效/无效
New_Script:
GuiControlGet, New_Script
if New_Script=0
GuiControl, Disable, Edit_Template
else
GuiControl, Enable, Edit_Template
return
; 新建脚本模板
Create_Template:
GuiControlGet, AHK_Path
FileGetVersion, AHK_Ver, %AHK_Path%
FileAppend,
(
/*
AutoHotkey 版本: %AHK_Ver%
操作系统: %A_OSVersion%
作者: %A_UserName%
网站: http://www.AutoHotkey.com
脚本说明:
脚本版本: v1.0
*/
#NoEnv
SendMode Input
SetWorkingDir `%A_ScriptDir`%
), %A_WinDir%\ShellNew\%Template_Name%
GuiControl, Enable, Delete_Template ; 使“删除脚本模板”按钮有效
return
; 删除脚本模板
Delete_Template:
; --- 20190207 晓亮修改 ---
;MsgBox, 36, ScriptSetting %Script_Version%
; , 要删除当前的 AHK 脚本模板吗 ?`n`n脚本模板被删除后,仍可通过本工具重建模板。
;IfMsgBox, Yes
;FileDelete, %A_WinDir%\ShellNew\%Template_Name%
;GuiControl, Disable, Delete_Template ; 使“删除脚本模板”按钮无效
return
; 打开网站
Website:
Run, http://hi.baidu.com/jdchenjian
return
; 从注册表值字符串中提取路径
PathGetPath(pSourceCmd)
{
local Path, ArgsStartPos = 0
if (SubStr(pSourceCmd, 1, 1) = """")
Path := SubStr(pSourceCmd, 2, InStr(pSourceCmd, """", false, 2) - 2)
else
{
ArgsStartPos := InStr(pSourceCmd, " ")
if ArgsStartPos
Path := SubStr(pSourceCmd, 1, ArgsStartPos - 1)
else
Path = %pSourceCmd%
}
return Path
}
; 强制自身进程以 管理员权限 或 普通权限 或 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
}
}
D:\Program\TotalCMD\Run.ahk
;
;/*
; D:\Program\TotalCMD\Run.ahk
;===========================================
; 设置激活或者隐藏 Total Commander 10.00 主窗口的快捷键为 F8
; https://www.autoahk.com/archives/37780
; https://www.cnblogs.com/delphixx/p/15718194.html
;
; 脚本作者 : ds920
; 最新版本 : 1.1
; 更新时间 : 2021年12月22日
;
; 用法: (需要最新版本 AHK v1.1.31+)
; 1. 到飞扬时空的新浪博客下载并安装TotalCommander中文增强版到文件夹D:/TotalCMD
; 2. 将本脚本保存为"RunTC.ahk"并复制到D:/TotalCMD文件夹中
; 3. 使用Maye来设置RunTC.ahk的热键为 F8
;
; 升级更新历史:
; 版本1.0 2021年12月22日 新建 创建此AutoHotkey脚本并测试通过F8热键功能
; 版本1.1 2021年12月22日 修改 调整删除 SetTimer 定时器时判断TC主窗口是否激活的顺序
; 把基于窗口类的激活判断语句"if(WinActive("ahk_class" TTOTAL_CMD))"放在最外层
; 防止有相同标题的窗口激活时(例如:相同标题的浏览器等等)窗口激活误判
;
; 由于AutoHotkey的Hotkey语句设置的热键必需在任务栏或者桌面进程激活时才有效,
; 所以请使用Maye来设置Total Commander的热键 F8
; https://blog.arae.cc/post/25830.html
; https://github.com/25H/Maya/releases/
;
; 可以用 Total Commander 访问用RaiDrive异地远程连接群晖WebDAV文件服务并映射成的本地虚拟磁盘盘符 Z: 分区
; 可以用 Total Commander 访问用NetDrive2异地远程连接群晖SFTP文件服务并映射成的本地虚拟磁盘盘符 Y: 分区
; 可以用支持 Total Commander的WebDAV文件服务访问插件异地远程连接群晖WebDAV文件服务中的网络共享文件夹
; 可以用KeePass或者KeePass2Android来连接坚果云或者
; 群晖NAS的WebDAV文件服务来管理网址、用户名、账号、密码、口令、暗号、纪念日等个人敏感隐私信息和数据
; 可以用FileZilla Pro 专业版软件异地远程连接群晖的WebDAV文件服务并
; 批量上传文件夹到群晖的 RAID 1 镜像存储池中的共享文件夹之中
; 可以用腾讯文档的电脑客户端来新建在线文档和在线表格来进行办公文档和办公表格的分享和协作
; 可以用Bulk Rename Utility 2.7.1.2来批量重命名或者编号群晖WebDAV文件服务中的共享文件夹中的大量文件
; 可以用Double Killer Pro V 2.1.0.104来批量删除群晖WebDAV文件服务中的共享文件夹中的重复文件
; 可以安装并升级更新"火绒安全软件"来防杀电脑病毒木马恶意软件并拦截垃圾广告弹出的骚扰窗口
; 可以用SGI备份还原映像总裁镜像总裁一键还原工具软件来备份保护Windows操作系统和
; 电脑中应用程序软件和设置到GHO系统镜像文件
; SGI备份还原映像总裁镜像总裁一键还原工具软件官方网址是 https://www.sysceo.com/Software-softwarei-id-253.html
; 以便今后用杏雨梨云启动维护系统可启动固态U盘来恢复电脑系统应用程序软件GHO系统镜像文件到电脑的系统分区C盘
; 可以用Shadow Defender 影子卫士来保护Windows操作系统和电脑中应用程序软件的设置,
; 防止电脑软件设置被未授权的用户和程序非法更改和破坏
; 如果无法安装 Shadow Defender 影子卫士时可以用"DeepFreeze冰点还原精灵"或者
; "PowerShadow影子系统"或者"Returnil Virtual System(RVS)"来代替影子卫士
;
;===========================================
;*/
#SingleInstance,Ignore
loop,5
{
DetectHiddenWindows,On
Sleep,5
IfWinExist,QQ595076941_AutoAHKRun
ExitApp
}
Gui, Show, Hide,QQ595076941_AutoAHKRun
#Persistent
; #NoTrayIcon
DetectHiddenWindows,On
SetTitleMatchMode,2
; 设置激活或者隐藏 Total Commander 10.00 主窗口的快捷键为 F8
; Hotkey,F8,ActivateOrHideWindowHotkey
ActivateOrHideWindowHotkey()
return
; ——————————————————–
ActivateOrHideWindowHotkey()
{
; MsgBox,PressedHotkey检测到已经按下快捷键
Sleep,5
IfWinActive,ahk_class TTOTAL_CMD
{
Sleep,5
if(WinActive(ahk_class TTOTAL_CMD))
{
Sleep,5
WinGetClass, MyClass, A
IfInString,MyClass,TTOTAL_CMD
{
Sleep,5
IfWinActive,Total Commander
{
TCTitle:="Total Commander"
Sleep,5
WinGetActiveTitle,Title
IfInString,Title,%TCTitle%
{
; MsgBox,MinimizeWindow最小化指定窗口
WinMinimize,Total Commander ahk_class TTOTAL_CMD
Sleep,5
ExitApp
}
}
}
}
}
else
{
; MsgBox,ActivateWindow显示并且最大化并且激活指定窗口
SetTimer,ActivateWindowTimer,20
}
}
; ——————————————————–
;根据窗口类名显示并激活Total Commander窗口
ActivateWindowTimer()
{
; 1、如果程序没有运行则运行程序,这里我把可执行文件名改成了TotalCMD-v10.exe
Process,Exist,TotalCMD-v10.exe
if (%ErrorLevel%=0)
{
IfExist,D:/Program/TotalCMD/TotalCMD.exe
{
Run,D:/Program/TotalCMD/TotalCMD.exe
}
else
{
MsgBox,找不到文件 D:/Program/TotalCMD/TotalCMD.exe
return
}
}
; 2、显示并激活(切换到)指定窗口
WinShow,Total Commander ahk_class TTOTAL_CMD
WinMove,Total Commander ahk_class TTOTAL_CMD,,0,0,A_ScreenWidth,A_ScreenHeight
WinActivate,Total Commander ahk_class TTOTAL_CMD
WinMaximize,Total Commander ahk_class TTOTAL_CMD
Sleep,5
DetectHiddenWindows,On
SetTitleMatchMode,2
WinGet, WinID, ID,Total Commander ahk_class TTOTAL_CMD
DllCall("SwitchToThisWindow", "UInt", WinID, "UInt", 1)
; 3、检查指定窗口是否激活成功,
; 假如激活成功则退出Timer计时器循环执行,
; 如果激活失败则继续尝试激活指定窗口
Sleep,5
IfWinActive,ahk_class TTOTAL_CMD
{
Sleep,5
if(WinActive(ahk_class TTOTAL_CMD))
{
Sleep,5
WinGetClass, MyClass, A
IfInString,MyClass,TTOTAL_CMD
{
Sleep,5
IfWinActive,Total Commander
{
TCTitle:="Total Commander"
Sleep,5
WinGetActiveTitle,Title
IfInString,Title,%TCTitle%
{
SetTimer,ActivateWindowTimer,Delete
Sleep,5
ExitApp
}
}
}
}
}
}
;================= The End =================
;
/*
;================= 根据窗口类名激活或者隐藏窗口的AutoHotkey函数 =================
; 请使用 窗口信息工具 AHKInfo 1.3.5 获取窗口的类名
;根据窗口类名激活或者隐藏窗口
ActivateOrHideWindow(VarExeFileName:="TotalCMD-v10″,VarWinClassName:="TTOTAL_CMD")
{
; 1、如果程序没有运行则运行程序
Process,Exist,%VarExeFileName%.exe
if (%ErrorLevel%=0)
{
IfExist,%VarExeFileName%.exe
{
Run,%VarExeFileName%.exe
return
}
else
{
MsgBox,找不到文件 %VarExeFileName%.exe
return
}
}
; 2、如果窗口未置顶则显示并激活(切换到)指定窗口
IfWinNotActive,ahk_class %VarWinClassName%
{
loop,2
{
Sleep,50
WinShow,ahk_class %VarWinClassName%
;~ WinMaximize,ahk_class %VarWinClassName%
Sleep,50
WinGet, WinID, ID,ahk_class %VarWinClassName%
Sleep,50
DllCall("SwitchToThisWindow", "UInt", WinID, "UInt", 1)
}
return
}
; 3、如果窗口已经显示并置顶则隐藏窗口
;~ WinMinimize,ahk_class %VarWinClassName%
WinHide,ahk_class %VarWinClassName%
}
*/
;
D:\ProgramSetup\Tree.txt
卷 软件 的文件夹 PATH 列表
卷序列号为 ILOV-EYOU
D:.
├─AutoHotkey
│ ├─AHK电子书
│ ├─Compiler
│ ├─Icon
│ └─SciTE
│ ├─extensions
│ ├─locales
│ ├─toolbar
│ │ └─Lib
│ ├─tools
│ │ ├─AHK 正则终结者
│ │ │ └─Lib
│ │ ├─AHK 爬虫终结者
│ │ │ ├─jsoneditor-5.15.0
│ │ │ │ └─dist
│ │ │ │ └─img
│ │ │ └─Lib
│ │ ├─AHK 脚本关联工具
│ │ ├─AHK-Rare
│ │ │ ├─assets
│ │ │ ├─lib
│ │ │ │ └─Highlighters
│ │ │ └─tools
│ │ ├─ahkinfo
│ │ ├─AhkSpy
│ │ ├─AHK_Window_Info
│ │ ├─Au3Record
│ │ ├─Auto-GUI
│ │ │ ├─Constantine
│ │ │ ├─Icons
│ │ │ ├─Include
│ │ │ ├─Lib
│ │ │ └─Settings
│ │ ├─Auto-Syntax-Tidy
│ │ │ └─Syntax
│ │ ├─AutoItMacroGenerator
│ │ ├─AutoScriptWriter
│ │ ├─CLISD
│ │ ├─ColorFinder
│ │ │ └─Lib
│ │ ├─eXeScope
│ │ ├─FindText
│ │ ├─GenDocs
│ │ │ ├─Demo
│ │ │ └─Lib
│ │ ├─iCodeRepository3
│ │ │ ├─Clipboard_monitor
│ │ │ ├─help
│ │ │ │ └─pictures
│ │ │ └─爱码源码仓库
│ │ │ ├─AutoHotkey
│ │ │ └─AutoHotkey2
│ │ ├─Lib
│ │ │ └─DebugVars
│ │ ├─MacroCreator
│ │ │ ├─Documentation
│ │ │ │ ├─Lib
│ │ │ │ └─MacroCreator_Help-doc
│ │ │ │ ├─Examples
│ │ │ │ └─Images
│ │ │ ├─Lang
│ │ │ ├─LIB
│ │ │ └─Resources
│ │ │ └─Icons
│ │ ├─MagicBox
│ │ │ ├─Examples
│ │ │ ├─Functions
│ │ │ ├─Icons
│ │ │ ├─Lib
│ │ │ └─Settings
│ │ ├─SciTE交互示例
│ │ ├─SmartGUI
│ │ ├─Spy++
│ │ ├─TestSuite
│ │ ├─ViewWizard
│ │ ├─WindowSpy
│ │ ├─智能操作
│ │ └─自动更新
│ ├─user
│ │ ├─Extensions
│ │ ├─Macros
│ │ ├─Scriptlets
│ │ ├─Settings
│ │ └─Styles
│ ├─中文帮助
│ └─技巧
├─Everything
├─FileZillaPro
│ ├─Data
│ ├─docs
│ ├─filezillacfg
│ ├─KeePass
│ │ ├─Languages
│ │ ├─Plugins
│ │ └─XSL
│ ├─locales
│ │ ├─an
│ │ ├─ar
│ │ ├─az
│ │ ├─bg_BG
│ │ ├─ca
│ │ ├─ca_ES@valencia
│ │ ├─co
│ │ ├─cs_CZ
│ │ ├─cy
│ │ ├─da
│ │ ├─de
│ │ ├─el
│ │ ├─es
│ │ ├─et
│ │ ├─eu
│ │ ├─fa_IR
│ │ ├─fi_FI
│ │ ├─fr
│ │ ├─gl_ES
│ │ ├─he_IL
│ │ ├─hr
│ │ ├─hu_HU
│ │ ├─hy
│ │ ├─id_ID
│ │ ├─is
│ │ ├─it
│ │ ├─ja_JP
│ │ ├─ka
│ │ ├─kab
│ │ ├─km_KH
│ │ ├─ko_KR
│ │ ├─ku
│ │ ├─ky
│ │ ├─lo_LA
│ │ ├─lt_LT
│ │ ├─lv_LV
│ │ ├─mk_MK
│ │ ├─nb_NO
│ │ ├─ne
│ │ ├─nl
│ │ ├─nn_NO
│ │ ├─oc
│ │ ├─pl_PL
│ │ ├─pt_BR
│ │ ├─pt_PT
│ │ ├─ro_RO
│ │ ├─ru
│ │ ├─sk_SK
│ │ ├─sl_SI
│ │ ├─sr
│ │ ├─sv
│ │ ├─ta
│ │ ├─th_TH
│ │ ├─tr
│ │ ├─uk_UA
│ │ ├─vi_VN
│ │ ├─zh_CN
│ │ └─zh_TW
│ ├─resources
│ │ ├─16x16
│ │ ├─20x20
│ │ ├─24x24
│ │ ├─32x32
│ │ ├─480x480
│ │ ├─48x48
│ │ ├─blukis
│ │ │ ├─16x16
│ │ │ ├─32x32
│ │ │ └─48x48
│ │ ├─classic
│ │ │ └─16x16
│ │ ├─cyril
│ │ │ └─16x16
│ │ ├─default
│ │ │ └─480x480
│ │ ├─flatzilla
│ │ │ ├─16x16
│ │ │ ├─24x24
│ │ │ ├─32x32
│ │ │ └─48x48
│ │ ├─lone
│ │ │ ├─16x16
│ │ │ ├─32x32
│ │ │ └─48x48
│ │ ├─minimal
│ │ │ ├─16x16
│ │ │ └─32x32
│ │ ├─opencrystal
│ │ │ ├─16x16
│ │ │ ├─20x20
│ │ │ ├─24x24
│ │ │ ├─32x32
│ │ │ └─48x48
│ │ ├─sun
│ │ │ └─48x48
│ │ ├─tango
│ │ │ ├─16x16
│ │ │ ├─32x32
│ │ │ └─48x48
│ │ └─xrc
│ └─手动复制备份的配置和数据文件
│ ├─7z1900
│ ├─7zSfxTool
│ │ ├─Plugin
│ │ └─SFX 模块
│ └─TrafficMonitor显示电脑网速监控悬浮窗
│ ├─Logo
│ └─skins
│ ├─0默认皮肤
│ ├─皮肤01
│ ├─皮肤02
│ ├─皮肤03
│ ├─皮肤04
│ ├─皮肤05
│ ├─皮肤06
│ ├─皮肤07
│ ├─皮肤08
│ ├─皮肤09
│ ├─皮肤10
│ ├─皮肤11
│ └─皮肤12
├─FolderSizes
├─FSCapture
│ └─Languages
├─Hash
├─IObitUnlocker
├─JexChan
├─KeePass
│ ├─Languages
│ ├─Plugins
│ └─XSL
├─Maye
│ ├─bak
│ ├─cache
│ │ ├─icon
│ │ └─search
│ └─skin
├─PowerOff
├─Robocopy
├─SGI
├─TotalCMD
│ ├─Cache
│ ├─Filter32
│ ├─Language
│ └─User
├─TrafficMonitor
│ ├─Logo
│ └─skins
│ ├─0默认皮肤
│ ├─皮肤01
│ ├─皮肤02
│ ├─皮肤03
│ ├─皮肤04
│ ├─皮肤05
│ ├─皮肤06
│ ├─皮肤07
│ ├─皮肤08
│ ├─皮肤09
│ ├─皮肤10
│ ├─皮肤11
│ └─皮肤12
├─WizTree
│ ├─locale
│ │ ├─bg
│ │ │ └─LC_MESSAGES
│ │ ├─da
│ │ │ └─LC_MESSAGES
│ │ ├─de
│ │ │ └─LC_MESSAGES
│ │ ├─el
│ │ │ └─LC_MESSAGES
│ │ ├─en
│ │ │ └─LC_MESSAGES
│ │ ├─es
│ │ │ └─LC_MESSAGES
│ │ ├─fr
│ │ │ └─LC_MESSAGES
│ │ ├─hu
│ │ │ └─LC_MESSAGES
│ │ ├─it
│ │ │ └─LC_MESSAGES
│ │ ├─ja
│ │ │ └─LC_MESSAGES
│ │ ├─ko
│ │ │ └─LC_MESSAGES
│ │ ├─nl
│ │ │ └─LC_MESSAGES
│ │ ├─no
│ │ │ └─LC_MESSAGES
│ │ ├─pl
│ │ │ └─LC_MESSAGES
│ │ ├─pt_BR
│ │ │ └─LC_MESSAGES
│ │ ├─ru
│ │ │ └─LC_MESSAGES
│ │ ├─sk
│ │ │ └─LC_MESSAGES
│ │ ├─sr
│ │ │ └─LC_MESSAGES
│ │ ├─sv
│ │ │ └─LC_MESSAGES
│ │ ├─tr
│ │ │ └─LC_MESSAGES
│ │ ├─uk
│ │ │ └─LC_MESSAGES
│ │ ├─zh_CHS
│ │ │ └─LC_MESSAGES
│ │ └─zh_CHT
│ │ └─LC_MESSAGES
│ └─log
├─_Fix
│ └─局域网共享
│ └─备用版本-一键设置局域网共享
├─_Setup
│ ├─DeepFreeze
│ │ ├─360文件解锁
│ │ │ ├─Config
│ │ │ │ └─defaultskin
│ │ │ ├─MINI
│ │ │ └─Utils
│ │ └─LockHunter32
│ ├─FastCopy
│ │ └─doc
│ ├─NetDrive2
│ ├─ShadowDefender
│ └─WebDrive
└─图压