惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
aimingoo的专栏
aimingoo的专栏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Docker
博客园 - 叶小钗
Recent Announcements
Recent Announcements
人人都是产品经理
人人都是产品经理
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
Hugging Face - Blog
Hugging Face - Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
美团技术团队
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
F
Fortinet All Blogs
博客园 - 三生石上(FineUI控件)
Microsoft Security Blog
Microsoft Security Blog
H
Heimdal Security Blog
有赞技术团队
有赞技术团队
The Cloudflare Blog
S
Secure Thoughts
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
T
The Blog of Author Tim Ferriss
M
MIT News - Artificial intelligence
Google DeepMind News
Google DeepMind News
Schneier on Security
Schneier on Security
N
News and Events Feed by Topic
小众软件
小众软件
C
Cybersecurity and Infrastructure Security Agency CISA
Application and Cybersecurity Blog
Application and Cybersecurity Blog
博客园 - Franky
T
Tenable Blog
The Last Watchdog
The Last Watchdog
腾讯CDC
量子位
Google DeepMind News
Google DeepMind News
Help Net Security
Help Net Security
雷峰网
雷峰网
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Cyberwarzone
Cyberwarzone
S
Securelist
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
P
Proofpoint News Feed
D
Darknet – Hacking Tools, Hacker News & Cyber Security
I
InfoQ
Spread Privacy
Spread Privacy
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hackread – Cybersecurity News, Data Breaches, AI and More

博客园 - QQ595076941

极空间单硬盘存储模式备份中心和闪点清单墨水屏智能台历 批量勾选Portable App Directory窗口中所有复选框 2026年6月25日 电脑文件管理zs 2026年6月12日 KeePass+坚果云WebDAV简易登录器   2026年4月25日 设置显示或者隐藏MasterSeeker和Total Commander主窗口的快捷键的AutoHotkey脚本2026年4月8日 F8我的Excel文件 腾讯文档-AutoHotkey学习导航表.xlsx 2025年12月21日 共享文件夹加密专家(试用版) v6.40 批量设置权限AHK脚本 2025年12月19日 容量为256GB的Innostor银灿科技IS903可启动CD-ROM量产U盘 2025年12月12日 打开我的文件夹 2025年11月21日 防止 FreeFileSync的RealTimeSync.exe实时自动同步程序被意外关闭并保持其进程一直运行 2025年11月19日 REM D:\APP\AutoRun\Program\AutoRun.bat 开机自动启动批处理脚本文件 2025年11月17日 - QQ595076941 7-Zip 单文件自解压绿色便携安装包打包压缩工具_2025年11月15日 Windows电脑软件安装流程  2025年11月1日 GoodSync 2025年10月17日 运行npp并打开实时双向同步的今日日记纯文本文档 2025年10月5日 电子文件分类整理与双向同步 2025年10月1日 ##极空间Z4改进建议##我的QQ邮箱地址是595076941@QQ。COM##在论坛搜索两个#号可找到此贴########## 1、 开发能够实时双向同步极空间文件夹的应用套件,在同一台极空间设备上的不同存储池之间实时双向同步文件夹, 极空间文件管理方案 2025年8月18日 Sony索尼WH-1000XM5头戴式降噪蓝牙耳机 2025-07-22 Everything-MD5-DC22-亲测可用-优点-重新打开后会加载原有数据库而不是重新扫描-不依赖运行库-缺点-索引必需扫描完成之后才能搜索-这一点没有MasterSeeker做的好用 2025-05-15 2025-04-22 给 Maye Lite 添加鼠标中键单击激活主窗口的功能 容量为512GB的银灿IS903主控金属外壳可量产三驱动三启动DVD-ROM可启动Windows PE系统安装维护U盘 2025-04-30
安装并设置Windows&火绒安全&驱动总裁&PrimoCache&AutoRun-AHK&7z压缩包自解压制作工具Fc&AcronisTrueImage2021备份系统分区&天天卫士重启还原&2025年10月29日
QQ595076941 · 2025-10-29 · via 博客园 - QQ595076941

安装并设置Windows&火绒安全&驱动总裁&PrimoCache&AutoRun-AHK&7z压缩包自解压制作工具Fc&AcronisTrueImage2021备份系统分区&天天卫士重启还原&2025年10月29日

start "" "shell:startup"
start "" "shell:common startup"
Reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v myautorunahk /t REG_SZ /d "D:\APP\AutoRun-AHK\AutoRun.bat" /f
Reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v myautorunahk /t REG_SZ /d "D:\APP\AutoRun-AHK\AutoRun.bat" /f
Reg import "D:\APP\AutoRun-AHK\AutoRunBAT.Reg"
regedit.exe /s "D:\APP\AutoRun-AHK\AutoRunBAT.Reg"
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"AutoRunAHK"="\"D:\\APP\\AutoRun-AHK\\AutoRun.bat\" "
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"AutoRunAHK"="\"D:\\APP\\AutoRun-AHK\\AutoRun.bat\" "
start D:\APP\AutoRun-AHK\AutoHotkeyA32.exe D:\APP\AutoRun-AHK\AutoRun-AHK.ahk
Exit
; 设置互斥体,阻止脚本重复运行
Single(flag) { ;,返回1为重复,返回0为第一个运行
DllCall("CreateMutex", "Ptr",0, "int",0, "str", "Ahk_Single_" flag)
return A_LastError=0xB7 ? true : false
}
;=========================
;使用案例,脚本改名都没用,照样只能运行一个.
#SingleInstance,Off ;关闭自带互斥功能
if (Single("223022395631")) { ;独一无二的字符串用于识别脚本,或者称为指纹?
; MsgBox,16,提示,程序已启动!`n请勿重复运行
ExitApp
}
Sleep,2000
Run,Notepad
; Run,D:\APP\GoodSync\5SetAutoRun\5SetAutoRun.exe
ExitApp
; Run,% "带空格的程序路径"
; run,C:\app\GoodSync\x64\GoodSync2Go.exe
; run,D:\APP\MayeLite\Maye Lite.exe,D:\APP\MayeLite\
; run,D:\APP\RegHotkey\RegHotkey.exe
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

REM 这里使用BAT批处理脚本而不使用AutoHotkey自动化热键脚本是为了
REM 防止杀毒软件误杀误删文件并且能在Windows PE等没有AutoHotkey运行环境的情况下能够正常执行任务。
@echo off
cd /d %~DP0
REM 安装相关文件使用相对路径,运行相关文件使用绝对路径
REM 自解压包HXZQ-7z.exe是用“7z压缩包自解压制作工具Fc-SysCeo.Com-Formceo”打包制作的
REM 此脚本用7z压缩包自解压制作工具Fc指定程序图标压缩打包,判断程序是否已经解压,
REM 如果已经解压过文件了则不再重复解压文件直接运行主程序,可以节省重复解压缩的时间,
REM 自解压包HXZQ-7z.exe只负责解压缩大量文件到指定目录
SET SFXFile=HXZQ-7z.exe
REM SET RegFile=HXZQ-Reg.Reg
SET ExeFile=D:\APP\Program\HXZQ\TdxW.exe
REM 检查如果文件不存在则解压文件
if not exist %ExeFile% (
REM copy %SourceFile% %GenFile%
start /wait %SFXFile%
REM echo %GenFile% 文件不存在,已解压文件!
) else (
REM echo %GenFile% 文件已存在,无需创建!
)
REM 导入注册表,注册表文件用Total Uninstall、Install Rite或者RegistryChagesView
REM 注册表监视软件监视注册表变化并导出注册表项目Reg文件
REM Reg import %RegFile%
REM regedit /s %RegFile%
start %ExeFile%
REM if defined ProgramFiles(X86) (
REM echo Running GoodSync2Go on 64-bit system
REM start x64\GoodSync2Go.exe
REM ) else (
REM echo Running GoodSync2Go on 32-bit system
REM start x86\GoodSync2Go.exe
REM )
Exit

; 运行Total Commander (x86)11.51 32位 绿色免安装自定义增强超高级版并定位打开此脚本所在文件夹
IfExist,D:\APP\TotalCMD\TotalCMD.exe
{
	Run,D:\APP\TotalCMD\TotalCMD.exe %A_ScriptDir%\
	goto,WaitActive
}
IfExist,%A_ScriptDir%\..\APP\TotalCMD\TotalCMD.exe
{
	Run,%A_ScriptDir%\..\APP\TotalCMD\TotalCMD.exe %A_ScriptDir%\
	goto,WaitActive
}
; 等待直到Total Commander (x64)11.56 绿色免安装自定义增强超高级版窗口处于活动状态.
WaitActive:
	WinWaitActive,ahk_class TTOTAL_CMD ahk_exe TotalCMD.exe
	Sleep,500
	; 发送Ctrl+B快捷键到Total Commander窗口左侧子窗口,展开所有文件夹展开显示所有文件,以便输入拼音首字母过滤筛选当前文件列表
	Send,^b
rem 一键生成可启动可量产ISO光盘镜像文件

rem UltraISO Premium Edition 版本 9.7.6.3860
rem 命令行语句语法及参数

set ISOName=USB_DVD
set ISODrive=D

set /a y=%date:~,4%,mo=1%date:~5,2%%%100,d=1%date:~8,2%%%100,h=%time:~,2%,m=1%time:~3,2%%%100,s=1%time:~6,2%%%100
rem 月前添加0
if %mo%==0 set mo=00
if %mo%==1 set mo=01
if %mo%==2 set mo=02
if %mo%==3 set mo=03
if %mo%==4 set mo=04
if %mo%==5 set mo=05
if %mo%==6 set mo=06
if %mo%==7 set mo=07
if %mo%==8 set mo=08
if %mo%==9 set mo=09
rem 日前添加0
if %d%==0 set d=00
if %d%==1 set d=01
if %d%==2 set d=02
if %d%==3 set d=03
if %d%==4 set d=04
if %d%==5 set d=05
if %d%==6 set d=06
if %d%==7 set d=07
if %d%==8 set d=08
if %d%==9 set d=09
rem 小时前添加0
if %h%==0 set h=00
if %h%==1 set h=01
if %h%==2 set h=02
if %h%==3 set h=03
if %h%==4 set h=04
if %h%==5 set h=05
if %h%==6 set h=06
if %h%==7 set h=07
if %h%==8 set h=08
if %h%==9 set h=09
rem 分前添加0
if %m%==0 set m=00
if %m%==1 set m=01
if %m%==2 set m=02
if %m%==3 set m=03
if %m%==4 set m=04
if %m%==5 set m=05
if %m%==6 set m=06
if %m%==7 set m=07
if %m%==8 set m=08
if %m%==9 set m=09
rem 秒前添加0
if %s%==0 set s=00
if %s%==1 set s=01
if %s%==2 set s=02
if %s%==3 set s=03
if %s%==4 set s=04
if %s%==5 set s=05
if %s%==6 set s=06
if %s%==7 set s=07
if %s%==8 set s=08
if %s%==9 set s=09
rem echo 当前时间为:%y%年%mo%月%d%日%h%时%m%分%s%秒

cd /d %~dp0

md %ISODrive%:\USB_DVD
md %ISODrive%:\USB_DVD\DVD
md %ISODrive%:\USB_DVD\ISO

cd /d %~dp0

%~dp0APP\UltraISO\UltraISO.exe   -volume   %ISOName%   -sysid    %ISOName%   -appid    %ISOName%   -volset    %ISOName%   -preparer    %ISOName%   -publisher    %ISOName%   -imax   -lowercase   -udfdvd  -bootfile     %~dp0APP\UltraISO\DVD-AIO-bif.bif   -optimize   -directory   %~dp0   -out   %ISODrive%:\USB_DVD\ISO\%ISOName%-%y%-%mo%-%d%_%h%.%m%.%s%.iso

start %ISODrive%:\USB_DVD\ISO
exit
;======== 设置显示或者隐藏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
; 此脚本到此行结束
;-----------------------------------