Windows电脑软件安装流程 2025年11月1日
Windows电脑软件安装流程 2025年11月1日






Windows电脑软件安装流程
请用塑料直尺或者小物品压在此纸质文档上,依次逐行操作移动直尺,完成一行向下移动一行。
Windows软件安装流程.docx
请用塑料直尺或者小物品压在此纸质文档上,
依次逐行操作移动直尺,完成一项向下移动一项,
专注于当前操作,不要同时操作多项任务。
"完成
打勾" 序号 具体操作步骤和注意事项
1 用AIBurn如意烧量产512GB银灿IS903金属外壳U盘。
2 从U盘的U光盘DVD-ROM启动电脑到WinPE,在WinPE下分区装系统。
3 "用DiskGenius对电脑本地硬盘分区,硬盘1分区1C盘128GB,
硬盘1分区2 D盘余下空间,硬盘2分区1全部空间,都用NTFS格式。"
4 用一键还原备份SGIMINI安装爱纯净MS Windows 10 企业版 LTSC。
5 启动电脑到Microsoft Windows 10 企业版 LTSC并安装火绒安全。
6 更新火绒安全病毒库。
7 停用Windows Defender。
8 用火绒安全扫描并修复系统漏洞。
9 停用Windows Update漏洞修复Windows更新服务。
10 驱动总裁更新驱动程序。
11 安装并测试打印机驱动程序。
12 设置打印首选项双面打印改成否。
13 安装并测试彩色双面连续扫描仪驱动程序。
14 安装并测试彩色单页手动扫描仪驱动程序。
15 安装FirPE到电脑本地磁盘硬盘1分区1C盘,FirPE-V2-MD5-625BD。
16 "资料与文件夹转移到D:\Users\文件夹,
我的文档、我的视频、我的音乐、我的图片、桌面、下载。"
17 重启电脑、右击快速访问和此电脑中的文件夹属性,移动位置。
18 安装极空间Windows客户端。
19 "设置自动登录极空间客户端、开机自启动、锁定屏幕60分钟,
文档同步单向实时备份,同步删除,按用户设备名命名目的地文件夹,
备份中心每天17:00开始备份单向实时备份目的地文件夹到百度网盘。"
20 "安装GoodSync2Go Version 12.9.14.4
License: 2Go-V12 Enterprise & Business&Linux&NAS Active For ever"
21 "设置GoodSync2Go 实时单向备份硬盘1分区2文件夹到硬盘2分区1,
极空间的文档同步(实时单向)和备份中心(百度网盘)用于备份办公文件
GoodSync2Go用于实时单向备份办公文件和非办公文件和其他大文件。"
22 安装百度网盘Windows客户端。
23 安装搜狗拼音输入法去广告精简优化版。
24 安装搜狗高速浏览器。
25 导入收藏夹书签网址链接HTML文件到搜狗高速浏览器的收藏夹。
26 "设置搜狗高速浏览器,
主页 https://cn.bing.com
启动时不检查是否默认浏览器;
取消4个默认打开文件关联;
地址栏搜索引擎改成Bing;
下载保存位置改成D:\Users\Downloads;
取消关闭浏览器后继续运行后台应用;
功能按钮只保留主页和下载;
新建标签页时显示https://cn.bing.com
关闭所有标签页时打开新标签页。
关闭所有消息通知。
不开启自动更新。
不参与用户体验改进计划。"
27 用Geek_Uninstaller卸载Edge浏览器。
28 "安装MicrosoftOffice2024专业增强版零售版ProPlus2024Retail.img
MD5-3547BBD28692EFBF03796CDAC230E1F1"
29 用HEU_KMS_Activator_v63.3.0激活Windows和Office MD5-574F39C2
30 安装OfficeAI插件。
31 安装睡觉爱眨眼制作的Office 自动保存工具 0.1版本
32 分别在Excel和Word中设置Office 自动保存工具 0.1版本 间隔30秒。
33 安装 WPS Office 2023 专业增强版
34 用右键管家删除鼠标右键的新建Word97和新建Excel97菜单。
35 安装 FastStone Capture
36 安装 XnView
37 安装AutoHotkey+SciTE。
38 安装Delphi7-Lite-MD5-251DD.exe。
39 安装TotalCommander11.03 32bit,设快捷键位于Esc正下方的~。
40 安装Everything,设快捷键F1。
41 安装酷呆桌面Coodesker-v1.0.2.6,不要装新版,创建映射盒子。
42 安装Maye Lite。
43 安装FastCopy,并且自动设置外壳扩展。
44 安装7-Zip。
45 "安装WinRAR,并设置立即执行默认配置通过掩码生成压缩文件名
_yyyy年mm月dd日hh时mm分ss秒"
46 安装微信电脑版。
47 安装QQ电脑版。
48 安装苏州银行网银助手。
49 安装农业银行网银助手。
50 安装XnViewMP看图软件。
51 安装FastStoneCapture贴图截屏修图工具。
52 安装Dexpot虚拟桌面。
53 "安装 UltraSearch Professional v4.8.3.1183 Portable 绿色免装便携版
(快速搜索文件,保留目录结构批量复制文件,导出文件列表到Excel表格)"
54 安装 FileLocator Pro。
55 "REM 批量解压绿色免安装自解压软件到D盘的APP文件夹中
for %%i in (%~dp007-APP\UnZip\*exe) do (
%~dp007-APP\7-Zip\7z.exe x %%i -aos -oD:\APP -r -y
)"
56 安装AutorunAHK,并检查自启动项,极空间客户端、GoodSync2Go本地硬盘实时单向备份、SetHotkey-TCEV、Maye Lite、Coodesker映射盒子、Dexpot虚拟桌面。
57 设置电脑启动时自动登录电脑进入桌面。
58 依次逐行检查测试复核此纸质文档的各行操作是否正确完成,防止遗漏。
59 "在FirPE下用Acronis True Image 2021 (版本: 39216)
备份硬盘1分区1系统分区C盘Windows系统到文件夹D:\Acronis\。"
60 安装PrimoCache。
61 "安装Deep Freeze Standard v9.0.20.5760 DFStd.exe MD5-D2296。
或者“天天卫士重启还原精灵”或者“ShadowDefender”或者“SeewoFreeze希沃零度”。"
https://www.autoahk.com/archives/53222
https://www.cnblogs.com/delphixx/p/19183498


- 1. 网购NVMe_PCIe4台式电脑。
- 2. 网购512GB台式电脑固态备份盘。
(容量512GB或以上,价格200元或以下,
接口SATA,固态硬盘,不要有噪音的机械硬盘)
- 3. 网购900克以下的轻薄笔记本电脑。
- 4. 网购笔记本电脑备份盘。
(SATA固态硬盘、M.2固态硬盘或者闪迪酷豆512GB)
- 5. 安装备份盘到台式电脑和笔记本电脑。
- 6. 网购闪迪2TB固态双接口U盘DDE1。
- 7. 网购Type-C磁吸数据转接头和Type-C延长数据线。
- 8. 安装FirPE到U盘。
(全能双分区NTFS全新制作, FirPE-V2.0.3-MD5-625BD)
- 9. 复制装机软件和相关文件到U盘。
- 10. 从U盘启动电脑到FirPE预安装环境。
- 11. 用DiskGenius对两块硬盘进行分区。
(C盘第1硬盘第1分区128GB容量NTFS分区格式卷标:Win10LTSC;
D盘第1硬盘第2分区余下容量NTFS分区格式卷标:DATA_数据盘;
E:盘第2硬盘第1分区全部容量NTFS分区格式卷标:BACKUP_备份盘)
- 12. 在FirPE下用EasyRC一键安装Windows_10_LTSC。
纯净版系统_Win10纯净版64位系统-爱纯净官网 (aichunjing.com)
- 13. 安装火绒安全软件。
- 14. 更新火绒安全软件。
- 15. 火绒安全漏洞修复。
- 16. 安装FirPE到电脑本地磁盘C:盘
- 17. 拖放“我的文件夹”AutoHotkey自动化热键脚本到任务栏。
- 18. 发送“我的文件夹”快捷方式到桌面,在Maye_Lite中设置快捷键为F1。
IniRead, MyVol,%A_ScriptDir%\Config.txt, section1, MyVolRecord
IniRead, MyFolder,%A_ScriptDir%\Config.txt, section2, MyFolderRecord
DriveGet,DriveList,List
loop,Parse,DriveList
{
DriveGet,DriveLabel,Label,%A_LoopField%:
IfInString,DriveLabel,%MyVol%
{
MyDrive=%A_LoopField%
}
}
- 19. 设置随系统自动启动Maye_Lite。
- 20. 设置随系统自动启动MasterSeeker(快捷键为~)。
- 21. 安装酷呆桌面1.1版。
- 22. 安装AutoHotkey&SciTE。
- 23. 安装Delphi7_Lite。
- 24. 安装FastCopy,并且设置外壳扩展。
- 25. 安装7-Zip。
- 26. 安装UltraSearch Professional (快捷键为双击键盘Ctrl键)。
- 27. 安装USBSafelyRemove。
- 28. 安装GeekUninstall
- 29. 用HEU_KMS_Activator查看系统激活状态。
- 30. 驱动总裁更新驱动程序。
- 31. 安装并测试打印机驱动程序。
- 32. 设置打印首选项双面打印改成否。
- 33. 安装并测试彩色双面连续扫描仪驱动程序。
- 34. 安装并测试彩色单页手动扫描仪驱动程序。
- 35. 资料文件夹转移工具v5.2.3。
- 36. 安装搜狗拼音输入法去广告精简优化版。
- 37. 安装Total_Commander。
- 38. 安装搜狗高速浏览器。
- 39. 导入书签到搜狗高速浏览器收藏夹。
- 40. 设置搜狗高速浏览器
启动时不检查是否默认浏览器;
取消4个默认打开文件关联;
地址栏搜索引擎改成Bing;
下载保存位置改成D:\Users\Downloads;
取消关闭浏览器后继续运行后台应用;
功能按钮只保留主页和下载;
新建标签页时显示https://cn.bing.com
关闭所有标签页时打开新标签页。
关闭所有消息通知。
不开启自动更新。
不参与用户体验改进计划。
- 41. 用Geek_Uninstaller卸载Edge浏览器。
- 42. 安装Office_2016_精简版_20200901。
- 43. 安装office 自动保存工具 0.1版本睡觉爱眨眼制作20210126。
- 44. 设置office 自动保存工具
保存文件个数10保存间隔时间30秒
启动永久保存间隔30分钟启用保存原始文件
- 45. 安装Office AI 助手。
- 46. 安装微信电脑版。
- 47. 安装QQ电脑版。
- 48. 安装苏州银行网银助手。
- 49. 安装农业银行网银助手。
- 50. 安装XnViewMP看图软件。
- 51. 安装PrimoCache。
- 52. 安装Neat Download Manager。
- 53. 安装WinRAR,并设置立即执行默认配置通过掩码生成压缩文件名
_yyyy年mm月dd日hh时mm分ss秒
- 54. 安装 7z压缩包自解压制作工具Fc-SysCeo.Com。
- 55. 安装Bat-To-Exe-Converter。
- 56. 安装Quick-Any2Ico。
- 57. 安装Total-Uninstall。
- 58. 安装FastStoneCapture贴图截屏修图工具。
- 59. 安装设置并测试GoodSync实时单向备份任务。
从D:数据盘实时单向备份到E:备份盘。
- 60. 设置启动时自动运行AutoRun_AHK。
- 61. 鼠标拖放移动桌面所有图标到酷呆桌面盒子。
- 62. 删除鼠标右键的新建Word97和新建Excel97菜单。
- 63. 设置电脑启动时自动登录电脑进入桌面。
- 64. 复制APP文件夹到D:盘根目录,每个应用程序软件放对应的专用文件夹,文件夹名取部分主窗口标题,启动应用程序软件的主程序文件命名必需以下划线前缀开始,例如:D:\APP\Acronis\_Acronis.exe。
-
REM 批量解压绿色免安装软件到D盘 @echo off cd /d %~dp0 for %%i in (%~dp007-APP\*.exe) do ( %~DP007-APP\7-Zip\7z.exe x %%i -aos -oD:\APP -r -y REM echo %%i ) exit - 65. 禁用Windows_Defender系统防护杀毒。
- 66. 禁用Windows_Update系统更新。
- 67. 依次逐行检查测试复核此纸质文档的各行操作是否正确完成,防止遗漏或出错。
- 68. 在FirPE预安装环境下用Acronis True Image 2021备份第1磁盘第1分区Win10LTSC系统盘到文件夹D:\Acronis ,再次在FirPE预安装环境下用Snapshot_V1.50备份Win10LTSC系统盘到文件夹D:\Acronis
- 69. 安装并测试“天天卫士重启还原精灵”或者“ShadowDefender”或者“SeewoFreeze希沃零度”或者“DeepFreezeStandard”。
; 解压缩安装Total Commander
Run,%A_ScriptDir%\..\07-APP\7-Zip\7z.exe x %A_ScriptDir%\..\07-APP\TotalCMD852.exe -aos -oD:\APP -r -y
; 运行Total Commander (x86)11.51 32位 绿色免安装自定义增强超高级版并定位打开此脚本所在文件夹
loop,20
{
IfExist,D:\APP\TotalCMD852\_TotalCMD.exe
{
Run,D:\APP\TotalCMD852\_TotalCMD.exe %A_ScriptDir%\..\
}
else
{
Sleep,1000
}
}
; 等待直到Total Commander (x64)11.56 绿色免安装自定义增强超高级版窗口处于活动状态.
WinWaitActive,ahk_class TTOTAL_CMD,,9
Sleep,500
; 发送Ctrl+B快捷键到Total Commander窗口左侧子窗口,展开所有文件夹展开显示所有文件,以便输入拼音首字母过滤筛选当前文件列表
Send,^b
;======== 设置显示或者隐藏MasterSeeker和Total Commander主窗口的快捷键的AutoHotkey脚本2024.10.21 =========
; 此脚本从此行开始
; D:\app\RegHotkey\RegHotkey.ahk
; 鼠标右击AHK托盘图标显示菜单并提示所有快捷键
; AutoHotkey版本1.1
; 我的腾讯QQ电子邮箱地址是: 595076941@qq.com
;======== 强制自身以 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
#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
}
} ;// 类结束
; 我的腾讯QQ电子邮箱地址是: 595076941@qq.com
;======== 添加托盘图标右键菜单 =========
; 鼠标右击AHK托盘图标显示菜单并提示所有快捷键
; Menu, Tray, Add,按Alt+Z终止此脚本, ExitAppMenuHandler ; 创建新菜单项.
; Menu, Tray, Add,双击Ctrl键2秒后关闭显示器屏幕电源, PowerOffDisplay ; 创建新菜单项.
; Menu, Tray, Add,按~键显示或者隐藏Maye Lite, PowerOffDisplay ; 请在Maye Lite中设置快捷键热键
; Menu, Tray, Add,按F3键显示或者隐藏MasterSeeker, ccc ; 创建新菜单项.
; Menu, Tray, Add,按F4键显示或者隐藏Total Commander, aaa ; 创建新菜单项.
; Hotkey,!z,ExitAppMenuHandler
; ExitAppMenuHandler()
; {
; ExitApp
; }
;======== 设置关闭显示器的快捷键为 双击 Ctrl键 =========
; Control::
; if (A_PriorHotkey <> "Control" or A_TimeSincePriorHotkey > 400)
; { KeyWait, Control
; return
; }
; ; MsgBox 双击
; Go.Go("PowerOffDisplay")
; return
; PowerOffDisplay:
; Sleep,2000 ;暂停2秒,防止受键盘操作影响,关闭显示器后又立即开启。
; ;~ 关闭显示器
; SendMessage, 0x112, 0xF170, 2,, Program Manager
; return
; 我的腾讯QQ电子邮箱地址是: 595076941@qq.com
;======== 设置显示或者隐藏 MasterSeeker 主窗口的快捷键为 F1 键 =========
; (F1键位于键盘主键区Esc键右边)
F1::Go.Go("ccc")
ccc:
; WinGetPos, , , W, ,MasterSeeker 1.5.1 by DxCK
; if (WinActive("MasterSeeker 1.5.1 by DxCK" ahk_exe MasterSeeker.exe) and W>700)
IfWinActive,MasterSeeker 1.5.1 by DxCK
{
; WinHide,MasterSeeker 1.5.1 by DxCK
WinMinimize,MasterSeeker 1.5.1 by DxCK
}
else
{
DetectHiddenWindows,On
SetTitleMatchMode,2
IfWinNotExist,MasterSeeker 1.5.1 by DxCK
{
IfExist,D:\APP\MasterSeeker\_MasterSeeker.exe
{
Run,D:\APP\MasterSeeker\_MasterSeeker.exe
}
else
{
MsgBox,0,,找不到文件 D:\Prog\MasterSeeker\MasterSeeker64.exe,5
ExitApp
}
}
SetTimer,WinActivateMasterSeeker,Delete
SetTimer,WinActivateMasterSeeker,500
}
return
WinActivateMasterSeeker()
{
WinShow,MasterSeeker 1.5.1 by DxCK
WinGet, WinMSID, ID,MasterSeeker 1.5.1 by DxCK
DllCall("SwitchToThisWindow", "UInt", WinMSID, "UInt", 1)
WinActivate,MasterSeeker 1.5.1 by DxCK
WinMove,MasterSeeker 1.5.1 by DxCK,,0,0,A_ScreenWidth,A_ScreenHeight
WinMaximize,MasterSeeker 1.5.1 by DxCK
IfWinActive,MasterSeeker 1.5.1 by DxCK
{
loop,5
{
WinMove,MasterSeeker 1.5.1 by DxCK,,A_ScreenWidth/2,20,A_ScreenWidth/2-10,A_ScreenHeight-90
; 注意: MasterSeeker 的搜索框控件的名是 Filename ,很奇怪,很神奇,
; MasterSeeker 的搜索框控件不是类名 MasterSeeker 1.5.1 by DxCK7,也不是类名 Edit1
; ControlFocus,In Directory,MasterSeeker 1.5.1 by DxCK
; 设置输入焦点到窗口的指定控件上.
ControlFocus,Filename,MasterSeeker 1.5.1 by DxCK
}
ControlSend,Filename,{LControl Down}a{LControl Up},MasterSeeker 1.5.1 by DxCK
SetTimer,WinActivateMasterSeeker,Delete
Go.Go()
return
}
}
; 我的腾讯QQ电子邮箱地址是: 595076941@qq.com
;======== 设置显示或者隐藏 Total Commander 11.01 主窗口的快捷键为 F4 键 =========
;(F4键位于键盘主键区数字键5正上方
; Total Commander 11.01使用支持按照“拼音首字母”序列筛选过滤文件列表的增强版QuickSearch eXtended 2.2.7插件)
`::Go.Go("aaa")
aaa:
; WinGetPos, , , W, ,Total Commander (x64) ahk_exe TotalCMD64.exe
; if (WinActive("Total Commander (x64)" ahk_exe TotalCMD64.exe) and W>400)
DetectHiddenWindows,On
SetTitleMatchMode,2
;等待指定标题窗口出现
;WinWait, Total Commander (x64) 11.01 - User ahk_class TTOTAL_CMD ahk_exe TOTALCMD64.EXE, [软件] 2.47
IfWinActive,Total Commander ahk_class TTOTAL_CMD
{
WinMinimize,Total Commander ahk_class TTOTAL_CMD
}
else
{
WinShow,Total Commander ahk_class TTOTAL_CMD
WinGet, WinTCID, ID,Total Commander ahk_class TTOTAL_CMD
DllCall("SwitchToThisWindow", "UInt", WinTCID, "UInt", 1)
WinActivate,Total Commander ahk_class TTOTAL_CMD
WinMove,Total Commander ahk_class TTOTAL_CMD,,0,0,A_ScreenWidth,A_ScreenHeight
WinMaximize,Total Commander ahk_class TTOTAL_CMD
IfWinNotExist,Total Commander ahk_class TTOTAL_CMD
{
IfWinNotExist,ahk_exe TOTALCMD64.EXE
{
IfExist,D:\APP\TotalCMD\_TotalCMD.exe
{
Run,D:\APP\TotalCMD\_TotalCMD.exe
Go.Go()
return
}
else
{
MsgBox,0,,找不到文件 D:\APP\TotalCMD\_TotalCMD.exe,5
ExitApp
}
}
SetTimer,WinActivateTC,Delete
SetTimer,WinActivateTC,500
}
}
Go.Go()
return
WinActivateTC()
{
WinShow,Total Commander ahk_class TTOTAL_CMD
WinGet, WinTCID, ID,Total Commander ahk_class TTOTAL_CMD
DllCall("SwitchToThisWindow", "UInt", WinTCID, "UInt", 1)
WinActivate,Total Commander ahk_class TTOTAL_CMD
WinMove,Total Commander ahk_class TTOTAL_CMD,,0,0,A_ScreenWidth,A_ScreenHeight
WinMaximize,Total Commander ahk_class TTOTAL_CMD
IfWinActive,Total Commander ahk_class TTOTAL_CMD
{
SetTimer,WinActivateTC,Delete
Go.Go()
return
}
}
; 我的腾讯QQ电子邮箱地址是: 595076941@qq.com
; ===============================================================
; 强制自身进程以 管理员权限 或 普通权限 或 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
}
}
; 我的腾讯QQ电子邮箱地址是: 595076941@qq.com
; 此脚本到此行结束
;-----------------------------------


SET APPTitle=360清理Pro
REM 一键打包成exe.bat
setlocal
@ECHO OFF
cd /d %~dp0
%~dp03rdParty\7z.exe a -r %~dp0..\..\%APPTitle%.7z %~dp0..\..\%APPTitle%
copy /b %~dp03rdParty\Modules\7zsd_LZMA2.sfx + %~dp07zSFXconfig.txt + %~dp0..\..\%APPTitle%.7z %~dp0..\..\%APPTitle%.exe
:: 设置Resource Hacker路径
set "resHackPath=%~dp03rdParty\\ResourceHacker.exe"
:: 设置目标exe文件和图标文件路径
set "targetExe=%~dp0..\\..\\%APPTitle%.exe"
set "iconFile=%~dp0..\\%APPTitle%.ico"
:: 调用Resource Hacker进行图标替换
"%resHackPath%" -open "%targetExe%" -save "%targetExe%" -action addoverwrite -res "%iconFile%" -mask ICONGROUP,MAINICON,
endlocal
start %~dp0..\..\
exit
;!@Install@!UTF-8!
InstallPath="D:\\APP"
OverwriteMode="1"
ExecuteFile="D:\\APP\\360清理Pro\\"
ExecuteParameters=""
;!@InstallEnd@!
;RunProgram="forcenowait:\"D:\\APP\\Hash\\_Hash.exe\""
::[Bat To Exe Converter]
::
::YAwzoRdxOk+EWAjk
::fBw5plQjdCyDJHi0xH4XJxRQfx2MPzmdCYk75+f/3POJoR86W94nLtvn/buBJNMK5Ea2Uplj33lV+A==
::YAwzuBVtJxjWCl3EqQJgSA==
::ZR4luwNxJguZRRnk
::Yhs/ulQjdF+5
::cxAkpRVqdFKZSzk=
::cBs/ulQjdF+5
::ZR41oxFsdFKZSDk=
::eBoioBt6dFKZSDk=
::cRo6pxp7LAbNWATEpCI=
::egkzugNsPRvcWATEpCI=
::dAsiuh18IRvcCxnZtBJQ
::cRYluBh/LU+EWAnk
::YxY4rhs+aU+JeA==
::cxY6rQJ7JhzQF1fEqQJQ
::ZQ05rAF9IBncCkqN+0xwdVs0
::ZQ05rAF9IAHYFVzEqQJQ
::eg0/rx1wNQPfEVWB+kM9LVsJDGQ=
::fBEirQZwNQPfEVWB+kM9LVsJDGQ=
::cRolqwZ3JBvQF1fEqQJQ
::dhA7uBVwLU+EWDk=
::YQ03rBFzNR3SWATElA==
::dhAmsQZ3MwfNWATElA==
::ZQ0/vhVqMQ3MEVWAtB9wSA==
::Zg8zqx1/OA3MEVWAtB9wSA==
::dhA7pRFwIByZRRnk
::Zh4grVQjdCyDJHi0xH4XJxRQfx2MPzmdCYk75+f/3POJoR86W69tNorD39Q=
::YB416Ek+ZG8=
::
::
::978f952a14a936cc963da21a135fa983
@echo off
cd /d %~DP0
REM 文件夹GoodSync2Go用于存放
REM GoodSync2Go-v10.12.0.0-64位-x64实时单向备份应用程序软件。
REM V10.12这个版本最好,版本太低的话功能差和Bug多,
REM 版本太高的话必需联网注册账号才能使用,破解不彻底容易备份失败。
REM 批处理脚本用Bat_To_Exe_Converter转换成的主程序为
REM C:\APP\GoodSync2Go\GoodSync2Go.exe
REM 文件gs-lic.exe是激活专业版的破解补丁程序。
REM gs-lic最好,不需要另外导入注册表Reg文件,
REM 运行后会有多个激活专业版授权,稳定可靠。
cd /d %~dp0GoodSync2Go
start %~dp0GoodSync2Go\gs-lic.exe
cd /d %~dp0
REM 文件Reg.reg是两个注册表配置键值信息
REM 导入注册表文件,用于设置,
REM 1、不要使用分析动画、
REM 2、快捷方式不要添加到桌面。
REM reg import %~dp0Reg\Reg.reg
regedit /s %~dp0Reg\Reg.reg
REM 文件夹ProfileBak用于保存已经设置好的程序选项、任务列表和任务选项设置信息
REM 程序选项、任务列表和任务选项设置信息保存在
REM accounts-bookmarks.tic和jobs-groups-options.tic这两个文件中。
REM lang.opt和cn-simpchinese.rfs设置用户界面语言为简体中文。
REM 覆盖复制文件夹ProfileBak中的配置文件到GoodSync2Go\Profile文件夹中可以恢复最佳选项设置状态。
md %~dp0ProfileBak
if exist %~dp0ProfileBak\accounts-bookmarks.bak (
del /f /q %~dp0GoodSync2Go\Profile\accounts-bookmarks.bak
)
if exist %~dp0ProfileBak\accounts-bookmarks.tic (
del /f /q %~dp0GoodSync2Go\Profile\accounts-bookmarks.tic
)
if exist %~dp0ProfileBak\jobs-groups-options.tic (
del /f /q %~dp0GoodSync2Go\Profile\jobs-groups-options.tic
)
if exist %~dp0ProfileBak\accounts-bookmarks.tic (
del /f /q %~dp0GoodSync2Go\Profile\accounts-bookmarks.tic
)
copy /y %~dp0ProfileBak\accounts-bookmarks.bak %~dp0GoodSync2Go\Profile\accounts-bookmarks.bak
copy /y %~dp0ProfileBak\accounts-bookmarks.tic %~dp0GoodSync2Go\Profile\accounts-bookmarks.tic
copy /y %~dp0ProfileBak\jobs-groups-options.tic %~dp0GoodSync2Go\Profile\jobs-groups-options.tic
copy /y %~dp0ProfileBak\accounts-bookmarks.tic %~dp0GoodSync2Go\Profile\accounts-bookmarks.tic
copy /y %~dp0ProfileBak\accounts-bookmarks.bak %LOCALAPPDATA%\GoodSync\accounts-bookmarks.bak
copy /y %~dp0ProfileBak\accounts-bookmarks.tic %LOCALAPPDATA%\GoodSync\accounts-bookmarks.tic
copy /y %~dp0ProfileBak\jobs-groups-options.tic %LOCALAPPDATA%\GoodSync\jobs-groups-options.tic
copy /y %~dp0ProfileBak\accounts-bookmarks.tic %LOCALAPPDATA%\GoodSync\accounts-bookmarks.tic
copy /y %~dp0ProfileBak\accounts-bookmarks.bak C:\Users\Administrator\AppData\Local\GoodSync\accounts-bookmarks.bak
copy /y %~dp0ProfileBak\accounts-bookmarks.tic C:\Users\Administrator\AppData\Local\GoodSync\accounts-bookmarks.tic
copy /y %~dp0ProfileBak\jobs-groups-options.tic C:\Users\Administrator\AppData\Local\GoodSync\jobs-groups-options.tic
copy /y %~dp0ProfileBak\accounts-bookmarks.tic C:\Users\Administrator\AppData\Local\GoodSync\accounts-bookmarks.tic
copy /y %~dp0ProfileBak\settings.tix C:\ProgramData\GoodSync\server\settings.tix
REM 文件夹AutoRun用于设置Windows启动时自动启动GoodSync2Go
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v GoodSync-1 /t REG_SZ /d "C:\APP\GoodSync2Go\GoodSync2Go.exe" /f
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v GoodSync-2 /t REG_SZ /d "C:\APP\GoodSync2Go\GoodSync2Go.exe" /f
REM reg import %~dp0AutoRun\reg.reg
regedit /s %~dp0AutoRun\reg.reg
REM 文件夹Screenshots用于存放实时单向备份软件GoodSync2Go的设置截屏图片
REM 文件夹Install用于保存GoodSync2Go的安装包备用,压缩包解压密码是333。
REM 一切准备就绪,立即启动GoodSync并执行实时单向备份任务
cd /d %~dp0GoodSync2Go\x64
if exist %~dp0min.txt (
start %~dp0GoodSync2Go\x64\GoodSync2Go.exe /min
exit
)
if exist %~dp0min.txt (
start %~dp0GoodSync2Go\x64\GoodSync2Go.exe /tray
exit
)
if exist %~dp0miniwin.txt (
start %~dp0GoodSync2Go\x64\GoodSync2Go.exe /miniwin
exit
)
if exist %~dp0forceminiwin.txt (
start %~dp0GoodSync2Go\x64\GoodSync2Go.exe /forceminiwin
exit
)
start %~dp0GoodSync2Go\x64\GoodSync2Go.exe /forcetray
exit
goto end-1
Usage:
GoodSync [<profile-option>...] [<run-option>...] [<global-option>...] [<job-command-and-options>]
<profile-option>, <job-command-and-options> are defined in GSync
<run-option> can be one of:
/?, /help - This help message
/min or /tray - Run minimized to tray icon
/forcetray - Run minimized to tray, do not allow to show main or mini window
/miniwin - Start in mini window mode, allow main window to show
/forceminiwin - Start in mini window mode, do not allow main window to show
<global-option> can be as described in GSync, plus these:
/exit - Exit GodSync GUI, after job started by Command Line has finished
/exit-ifok - Exit GodSync GUI, after job started by Command Line has finished with no terminal error
:end-1
;======== 设置显示或者隐藏Everything和Total Commander主窗口的快捷键的AutoHotkey脚本2024.10.21 =========
; 此脚本从此行开始
; D:\app\RegHotkey\RegHotkey.ahk
; 鼠标右击AHK托盘图标显示菜单并提示所有快捷键
; AutoHotkey版本1.1
; 我的腾讯QQ电子邮箱地址是: 595076941@qq.com
;======== 强制自身以 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
#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
}
} ;// 类结束
; 我的腾讯QQ电子邮箱地址是: 595076941@qq.com
;======== 添加托盘图标右键菜单 =========
; 鼠标右击AHK托盘图标显示菜单并提示所有快捷键
; Menu, Tray, Add,按Alt+Z终止此脚本, ExitAppMenuHandler ; 创建新菜单项.
; Menu, Tray, Add,双击Ctrl键2秒后关闭显示器屏幕电源, PowerOffDisplay ; 创建新菜单项.
; Menu, Tray, Add,按~键显示或者隐藏Maye Lite, PowerOffDisplay ; 请在Maye Lite中设置快捷键热键
; Menu, Tray, Add,按F3键显示或者隐藏Everything, ccc ; 创建新菜单项.
; Menu, Tray, Add,按F4键显示或者隐藏Total Commander, aaa ; 创建新菜单项.
; Hotkey,!z,ExitAppMenuHandler
; ExitAppMenuHandler()
; {
; ExitApp
; }
;======== 设置关闭显示器的快捷键为 双击 Ctrl键 =========
; Control::
; if (A_PriorHotkey <> "Control" or A_TimeSincePriorHotkey > 400)
; { KeyWait, Control
; return
; }
; ; MsgBox 双击
; Go.Go("PowerOffDisplay")
; return
; PowerOffDisplay:
; Sleep,2000 ;暂停2秒,防止受键盘操作影响,关闭显示器后又立即开启。
; ;~ 关闭显示器
; SendMessage, 0x112, 0xF170, 2,, Program Manager
; return
; 我的腾讯QQ电子邮箱地址是: 595076941@qq.com
;======== 设置显示或者隐藏 Everything 主窗口的快捷键为 F1 键 =========
; (F1键位于键盘主键区Esc键右边)
F1::Go.Go("ccc")
ccc:
DetectHiddenWindows,On
SetTitleMatchMode,2
IfWinActive,Everything ahk_class EVERYTHING
{
WinMinimize,Everything ahk_class EVERYTHING
}
else
{
DetectHiddenWindows,On
SetTitleMatchMode,2
IfWinNotExist,Everything ahk_class EVERYTHING
{
if A_Is64bitOS
{
IfExist,D:\APP\Everything\x64\Everything.exe
{
Run,D:\APP\Everything\x64\Everything.exe
}
else
{
MsgBox,0,,找不到文件 D:\APP\Everything\x64\Everything.exe,5
ExitApp
}
}
else
{
IfExist,D:\APP\Everything\x86\Everything.exe
{
Run,D:\APP\Everything\x86\Everything.exe
}
else
{
MsgBox,0,,找不到文件 D:\APP\Everything\x86\Everything.exe,5
ExitApp
}
}
}
SetTimer,WinActivateEverything,Delete
SetTimer,WinActivateEverything,500
}
return
WinActivateEverything()
{
DetectHiddenWindows,On
SetTitleMatchMode,2
WinShow,Everything ahk_class EVERYTHING
WinGet, WinMSID, ID,Everything ahk_class EVERYTHING
DllCall("SwitchToThisWindow", "UInt", WinMSID, "UInt", 1)
WinActivate,Everything ahk_class EVERYTHING
WinMove,Everything ahk_class EVERYTHING,,0,0,A_ScreenWidth,A_ScreenHeight
WinMaximize,Everything ahk_class EVERYTHING
WinWaitActive,Everything ahk_class EVERYTHING,,9
IfWinActive,Everything ahk_class EVERYTHING
{
loop,5
{
WinMove,Everything ahk_class EVERYTHING,,A_ScreenWidth/2,20,A_ScreenWidth/2-10,A_ScreenHeight-90
; 注意: Everything 的搜索框控件的名是 Filename ,很奇怪,很神奇,
; Everything 的搜索框控件不是类名 Everything 1.5.1 by DxCK7,也不是类名 Edit1
; ControlFocus,In Directory,Everything 1.5.1 by DxCK
; 设置输入焦点到窗口的指定控件上.
ControlFocus,Edit1,Everything ahk_class EVERYTHING
}
ControlSetText,Edit1,file:,Everything ahk_class EVERYTHING
ControlSend,Edit1,{End},Everything ahk_class EVERYTHING
; ControlSend,Edit1,^a,Everything ahk_class EVERYTHING
SetTimer,WinActivateEverything,Delete
Go.Go()
return
}
}
; 我的腾讯QQ电子邮箱地址是: 595076941@qq.com
;======== 设置显示或者隐藏 Total Commander 11.01 主窗口的快捷键为 F4 键 =========
;(F4键位于键盘主键区数字键5正上方
; Total Commander 11.01使用支持按照“拼音首字母”序列筛选过滤文件列表的增强版QuickSearch eXtended 2.2.7插件)
`::Go.Go("aaa")
aaa:
; WinGetPos, , , W, ,Total Commander (x64) ahk_exe TotalCMD64.exe
; if (WinActive("Total Commander (x64)" ahk_exe TotalCMD64.exe) and W>400)
DetectHiddenWindows,On
SetTitleMatchMode,2
IfWinActive,Total Commander ahk_class TTOTAL_CMD
{
WinMinimize,Total Commander ahk_class TTOTAL_CMD
}
else
{
WinShow,Total Commander ahk_class TTOTAL_CMD
WinGet, WinTCID, ID,Total Commander ahk_class TTOTAL_CMD
DllCall("SwitchToThisWindow", "UInt", WinTCID, "UInt", 1)
WinActivate,Total Commander ahk_class TTOTAL_CMD
WinMove,Total Commander ahk_class TTOTAL_CMD,,0,0,A_ScreenWidth,A_ScreenHeight
WinMaximize,Total Commander ahk_class TTOTAL_CMD
IfWinNotExist,Total Commander ahk_class TTOTAL_CMD
{
IfExist,D:\APP\TotalCMD\TotalCMD.exe
{
Run,D:\APP\TotalCMD\TotalCMD.exe
Go.Go()
return
}
else
{
MsgBox,0,,找不到文件 D:\APP\TotalCMD\TotalCMD.exe,5
ExitApp
}
SetTimer,WinActivateTC,Delete
SetTimer,WinActivateTC,500
}
}
Go.Go()
return
WinActivateTC()
{
WinShow,Total Commander ahk_class TTOTAL_CMD
WinGet, WinTCID, ID,Total Commander ahk_class TTOTAL_CMD
DllCall("SwitchToThisWindow", "UInt", WinTCID, "UInt", 1)
WinActivate,Total Commander ahk_class TTOTAL_CMD
WinMove,Total Commander ahk_class TTOTAL_CMD,,0,0,A_ScreenWidth,A_ScreenHeight
WinMaximize,Total Commander ahk_class TTOTAL_CMD
IfWinActive,Total Commander ahk_class TTOTAL_CMD
{
SetTimer,WinActivateTC,Delete
Go.Go()
return
}
}
; 我的腾讯QQ电子邮箱地址是: 595076941@qq.com
; ===============================================================
; 强制自身进程以 管理员权限 或 普通权限 或 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
}
}
; 我的腾讯QQ电子邮箱地址是: 595076941@qq.com
; 此脚本到此行结束
;-----------------------------------

https://www.autoahk.com/archives/53222

浙公网安备 33010602011771号