595076941@qq.com

我的AutoHotkey_v1.1编程环境部署自动静默安装包 2022年9月29日

  我的AutoHotkey_v1.1编程环境部署自动静默安装包 2022年9月29日

 

 

 

我的AutoHotkey_v1.1编程环境部署自动静默安装包是

https://ds920.lanzouy.com/iS8Gm0ck5wmh

可能含有病毒或者木马_如果不喜欢请删除文件

我的腾讯QQ电子邮箱地址是  595076941@qq.com

 

 

;下面的注释包含自解压脚本命令
;Path=解压缩路径
;Presetup=解压缩前运行
;Setup=解压缩后运行
;Silent=静默方式:1-隐藏全部      2-隐藏启动对话框      空着不设置-显示全部
;Overwrite=覆盖方式:1-覆盖全部文件      2-跳过已存在的文件      空着不设置-覆盖前询问
;请选择正确的图标并保存正确的配置文件  我的腾讯QQ电子邮箱地址是  595076941@qq.com

Path=C:\Prog\
Setup=C:\Prog\AutoHotkey\Silent_Setup.bat
Setup=C:\Prog\Maye\Maye.exe
Setup=C:\Prog\SS-FastCopy\SS-FastCopy.exe
Silent=2
Overwrite=2

 

REM  C:\Prog\_一键打包成exe\一键打包成exe.bat
REM  此批处理脚本文件最后编辑日期  2022年9月23日

del C:\Prog\Everything\Everything.db                                                                                                        

if exist "C:\Program Files (x86)\WinRAR\WinRAR.exe" (
"C:\Program Files (x86)\WinRAR\WinRAR.exe" a -ag-YYYY.MM.DD -iiconico.ico -m5 -r -sfx -z自解压脚本命令.txt C-Prog-MD5-.exe ..\*.*
)else (
"C:\Program Files\WinRAR\WinRAR.exe" a -ag-YYYY.MM.DD -iiconico.ico -m5 -r -sfx -z自解压脚本命令.txt C-Prog-MD5-.exe ..\*.*
)

rem  我的腾讯QQ电子邮箱地址是  595076941@qq.com





 

REM /*
REM =======================================================
REM   Silent_Setup.bat - 自动静默安装AutoHotkey和SciTE4AutoHotkey的批处理脚本
REM
REM   文件     : D:\Prog\AutoHotkey\Silent_Setup.bat
REM 
REM   脚本作者 : ds920
REM   最新版本 : 1.0.1
REM   更新时间 : 2022年1月26日
REM 
REM   项目主页 : https://gitee.com/ds920
REM 
REM   用法:  (需要Windows系统的电脑)
REM   1.  鼠标双击用WinRAR x86 32位 压缩软件 打包成的SFX自解压exe可自行自动静默安装包文件
REM  
REM   我的腾讯QQ电子邮箱地址是  595076941@qq.com
REM
REM =======================================================
REM */

START  "" "%~dp0"AutoHotkey_1.1.34.04_setup.exe  /S /A32 /U32 /U64 /D=D:\Prog\AutoHotkey\ /WAIT
REM 等待3秒钟,以便让AHK文件关联生效,使ahk脚本能够顺利运行
ping -n 3 127.0.0.1>nul 2>nul

REM   设置AHK文件关联、汉化AHK文件右键菜单(运行脚本、编译脚本、编译脚本(GUI)、编辑脚本)
REM   脚本说明:  此工具用来修改 AutoHotkey 脚本的右键菜单关联,适用于 AutoHotkey 安装版、绿色版。
REM   作者:      甲壳虫<jdchenjian@gmail.com>
REM   修改作者:	  兔子
REM   修改作者:  ds920
START  "" "%~dp0"SciTE\_Linked.exe

REM 等待1秒钟,以便让AHK文件关联生效,使ahk脚本能够顺利运行
ping -n 1 127.0.0.1>nul 2>nul
START  "" "%~dp0"SciTE\_Linked.exe

 

/*
作者:      甲壳虫<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”的改动
2021.10.17	新增“编译脚本 (GUI)”的汉化
2021.11.02	自动根据 AutoHotkey.exe 的位置定位基准目录。
2021.11.05	重构代码,精简界面,修复新建模板时的编码问题,修复编辑模板时的权限问题。

修改作者 :  ds920
; =====  ds920 修改 2022年1月11日  ===== 第31行 =====
; =====  ds920 修改 2022年1月11日  ===== 第124行 =====
; =====  ds920 修改 2022年1月11日  ===== 第189到191行 =====
; =====  ds920 修改 2022年1月11日  ===== 第242行 =====
更新说明:
2022.01.11	注释掉部分AutoHotkey语句,让其他脚本能够静默调用此AHK脚本,
						实现AHK文件关联和汉化鼠标右键中文菜单
2022.01.11	#SingleInstance, force 改成 #SingleInstance, Ignore 防止出现等待的提示窗口						
*/

#NoEnv
; =====  ds920 修改 2022年1月11日  ===== 第31行 =====
#SingleInstance, Ignore
SendMode Input
SetWorkingDir %A_ScriptDir%

; 版本(仅用于显示)
Script_Version=ver. 1.1

; AutoHotkey 原版的相关信息写在注册表HKCR主键中,
; 尝试当前用户否有权操作该键,如果无权操作HKCR键(受限用户),
; 可通过操作注册表HKCU键来实现仅当前用户关联AHK脚本。
RegWrite, REG_SZ, HKCR, .test
if ErrorLevel
	IsLimitedUser:=1
RegDelete, HKCR, .test
if ErrorLevel
	IsLimitedUser:=1

if IsLimitedUser
{
	RootKey=HKCU              ; 受限用户操作HKCU键
	Subkey=Software\Classes\  ; 为简化后面的脚本,此子键须以“\”结尾
}
else
{
	RootKey=HKCR              ; 非受限用户操作HKCR键
	Subkey=
}

; 检查是否存在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\Compile\Command  ; 编译器路径
	Compiler_Path:=PathGetPath(value)
	RegRead, value, %RootKey%, %Subkey%%FileType%\Shell\Edit\Command     ; 编辑器路径
	Editor_Path:=PathGetPath(value)
	RegRead, Template_Name, %RootKey%, %Subkey%.ahk\ShellNew, FileName   ; 模板文件名
}
else
	FileType=AutoHotkeyScript

; 通过 AutoHotkey.exe 的位置来定位基准目录
SplitPath, A_AhkPath, , AhkDir

if AHK_Path=
{
	IfExist, %AhkDir%\AutoHotkey.exe
		AHK_path=%AhkDir%\AutoHotkey.exe
}

if Compiler_Path=
{
	IfExist, %AhkDir%\Compiler\Ahk2Exe.exe
		Compiler_Path=%AhkDir%\Compiler\Ahk2Exe.exe
}

if Editor_Path=
{
	IfExist, %AhkDir%\SciTE\SciTE.exe
		Editor_Path=%AhkDir%\SciTE\SciTE.exe
}

if Template_Name=
	Template_Name=Template.ahk

Gui, Font, bold s15
Gui, Add, Text, x10 y10 w480 h290, %A_Space%设置并汉化 .ahk 文件的右键菜单

Gui, Font
Gui, Add, GroupBox, x20 y50 w460 h50 , “运行脚本”
Gui, Add, Edit, x35 y70 w340 h20 vAHK_Path, %AHK_path%
Gui, Add, Button, x385 y70 w40 h20 gFind_AHK, 浏览

Gui, Add, GroupBox, x20 y110 w460 h50 , “编译脚本”
Gui, Add, Edit, x35 y130 w340 h20 vCompiler_Path, %Compiler_Path%
Gui, Add, Button, x385 y130 w40 h20 gChoose_Compiler, 浏览
Gui, Add, Button, x430 y130 w40 h20 gDefault_Compiler, 默认

Gui, Add, GroupBox, x20 y170 w460 h50 , “编辑脚本”
Gui, Add, Edit, x35 y190 w340 h20 vEditor_Path, %Editor_Path%
Gui, Add, Button, x385 y190 w40 h20 gChoose_Editor, 浏览
Gui, Add, Button, x430 y190 w40 h20 gDefault_Editor, 默认

Gui, Add, GroupBox, x20 y230 w460 h50 , “新建脚本”
Gui, Add, Button, x35 y250 w340 h20 gEdit_Template, 自定义新建脚本的模板

Gui, Font, bold s15
Gui, Add, Button, x20 y300 w200 h40 Default gInstall, 设置
Gui, Add, Button, x280 y300 w200 h40 gCancel, 取消

; =====  ds920 修改 2022年1月11日  ===== 第124行 =====
	gosub, Install

if (A_Args.1="/set")
	gosub, Install
else
	Gui, Show, x250 y200 h350 w500 Center, AHK 脚本关联工具 %Script_Version%
return

GuiClose:
GuiEscape:
Cancel:
	ExitApp
return

; 查找 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_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

; 选择脚本编辑器
Choose_Editor:
	Gui +OwnDialogs
	FileSelectFile, Editor_Path, 3, , 选择脚本编辑器, 程序(*.exe)
	if (Editor_Path!="")
		GuiControl,,Editor_Path, %Editor_Path%
return

; 默认脚本编辑器
Default_Editor:
	IfExist, %AhkDir%\SciTE\SciTE.exe
		Editor_Path=%AhkDir%\SciTE\SciTE.exe
	else ifExist, %A_WinDir%\system32\notepad.exe
			Editor_Path=%A_WinDir%\system32\notepad.exe
	GuiControl,, Editor_Path, %Editor_Path%
return

; 设置
Install:
	Gui, Submit

; =====  ds920 修改 2022年1月11日  ===== 第189到191行 =====
	AHK_Path:="C:\Prog\AutoHotkey\AutoHotkey.exe"
	Compiler_Path:="C:\Prog\AutoHotkey\Compiler\Ahk2Exe.exe"
	Editor_Path:="C:\Prog\AutoHotkey\SciTE\SciTE.exe"
	
	IfNotExist, %AHK_Path%
	{
		MsgBox, 16, , AutoHotkey 路径错误 !
		return
	}

	IfNotExist, %Compiler_Path%
	{
		MsgBox, 16, , 编译器路径错误 !
		return
	}

	IfNotExist, %Editor_Path%
	{
		MsgBox, 16, , 编辑器路径错误 !
		return
	}

	; 写入注册表
	RegWrite, REG_SZ, %RootKey%, %Subkey%.ahk,, %FileType%
	RegWrite, REG_SZ, %RootKey%, %Subkey%.ahk\ShellNew, FileName, %Template_Name%
	IfNotExist, %A_WinDir%\ShellNew\%Template_Name%
		gosub Create_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\Compile,, 编译脚本
	RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Compile-Gui,, 编译脚本 (GUI)
	IfInString, Compiler_Path, Ahk2Exe.exe
	{
		RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Compile\Command,, "%Compiler_Path%" /in "`%1"
		RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Compile-Gui\Command,, "%Compiler_Path%" /gui /in "`%1"
	}
	else
	{
		RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Compile\Command,, "%Compiler_Path%" "`%1"
		RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Compile-Gui\Command,, "%Compiler_Path%" /gui "`%1"
	}

	RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Edit,, 编辑脚本
	RegWrite, REG_SZ, %RootKey%, %Subkey%%FileType%\Shell\Edit\Command,, "%Editor_Path%" "`%1"

; =====  ds920 修改 2022年1月11日  ===== 第242行 =====
;	MsgBox, 64, , 设置完毕 !
	ExitApp
return

; 编辑脚本模板
Edit_Template:
	GuiControlGet, Editor_Path
	IfNotExist, %Editor_Path%
	{
		MsgBox, 64, , 脚本编辑器路径错误 !
		return
	}
	IfNotExist, %A_WinDir%\ShellNew\%Template_Name%
		gosub Create_Template

	ifExist, %A_WinDir%\system32\notepad.exe
		Run, *RunAs notepad.exe %A_WinDir%\ShellNew\%Template_Name%
	else
		Run, *RunAs %Editor_Path% %A_WinDir%\ShellNew\%Template_Name%
return

; 新建脚本模板
Create_Template:
	FileAppend,
	(
#NoEnv
SendMode Input
SetWorkingDir `%A_ScriptDir`%

	), %A_WinDir%\ShellNew\%Template_Name%, UTF-8

	IfNotExist, %A_WinDir%\ShellNew\%Template_Name%
		MsgBox, 64, , 无法创建脚本模板 !`n`n请尝试使用管理员权限运行本工具。
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
}

 

; 此脚本从此行开始
;/*
;===========================================
; D:\Prog\Maye\RunMayeAsAdmin.ahk ,让Maye以管理员身份运行让Maye夺取快捷键定义权  
;===========================================
;*/

#SingleInstance,Ignore
loop,2
{
	DetectHiddenWindows,On
	Sleep,1
	IfWinExist,QQ595076941_Maye
		ExitApp
}
Gui, Show, Hide,QQ595076941_Maye
; 强制自身以 ansi + 管理员身份(权限) 运行。
runwith("admin","ansi")
#Persistent
; #NoTrayIcon
DetectHiddenWindows,On
SetTitleMatchMode,2

Run,D:\Prog\Maye\Maye.exe
ExitApp

; 强制自身进程以 管理员权限 或 普通权限 或 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
}
}
; 此脚本到此行结束

 

rem 压缩备份Maye的快捷键设置和快捷方式设置的批处理脚本文件
rem 2022年5月8日

if exist "C:\Program Files (x86)\WinRAR\WinRAR.exe" (
"C:\Program Files (x86)\WinRAR\WinRAR.exe" a -agYYYY年MM月DD日HH时MM分SS秒 -ep -m5 -y %~dp0\设置备份_.rar %~dp0\cfg.ini %~dp0\JDB.json %~0
)else (
"C:\Program Files\WinRAR\WinRAR.exe" a -agYYYY年MM月DD日HH时MM分SS秒 -ep -m5 -r -y %~dp0\设置备份_.rar %~dp0\cfg.ini %~dp0\JDB.json %~0
)

 

; 此脚本从此行开始
;
; 全自动静默安装 FastCopy ver 4.2.0 简体中文汉化版

; 请使用系统总裁出品的:
; 7z压缩包自解压制作工具Fc - SysCeo.Com 来
; 打包FastCopy汉化安装文件和此脚本编译后的exe文件
; 所有文件都解压缩到文件夹 C:\Prog\FastCopy\
; 系统总裁网址 https://www.sysceo.com/

loop,5
{
	DetectHiddenWindows,On
	Sleep,5
	IfWinExist,QQ595076941_FastCopy-ver4-2-0
		ExitApp
}
Gui, Show, Hide,QQ595076941_FastCopy-ver4-2-0
#SingleInstance,force
#Persistent
DetectHiddenWindows,On
SetTitleMatchMode,2
; 强制自身以 ansi + 管理员权限 运行。
runwith("admin","ansi")


; 以管理员身份根据系统位数类型注册 FastCopy v4.2.0 简体中文汉化版 的右键菜单
; 使得用户在右键拖放或者右键点击文件或者文件夹时能够显示"复制"、"移动"、"粘贴"、"删除"等各种FastCopy右键菜单
IfExist,%windir%\SysWOW64
{
	Run,regsvr32.exe /s C:\Prog\FastCopy\FastEx64.dll
}
else
{
	Run,regsvr32.exe /s C:\Prog\FastCopy\FastExt.dll
}
MsgBox,0,设置已成功,FastCopy右键菜单已设置成功,2
ExitApp

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
}
}
;
;
; 我的腾讯QQ电子邮箱地址是  595076941@.qqcom
;
; 此脚本到此行结束

 

rem  REM  D:\Prog\_一键打包成exe\一键打包成exe.bat
rem  REM  此批处理脚本文件最后编辑日期  2022年9月23日
rem  REM  SS-Archivarius-3000中的SS 是 Silent Setup  的简写,表示静默安装                                                                                                       
rem  
rem  if exist "C:\Program Files (x86)\WinRAR\WinRAR.exe" (
rem  "C:\Program Files (x86)\WinRAR\WinRAR.exe" a -ag__YYYY.MM.DD_HH-MM-SS -iiconico.ico -m5 -r -sfx -z自解压脚本命令.txt SS-Archivarius-3000.exe ..\*.*
rem  )else (
rem  "C:\Program Files\WinRAR\WinRAR.exe" a -ag__YYYY.MM.DD_HH-MM-SS -iiconico.ico -m5 -r -sfx -z自解压脚本命令.txt SS-Archivarius-3000.exe ..\*.*
rem  )

rem  ;下面的注释包含自解压脚本命令
rem  ;Path=解压缩路径
rem  ;Presetup=解压缩前运行
rem  ;Setup=解压缩后运行
rem  ;Silent=静默方式:1-隐藏全部      2-隐藏启动对话框      空着不设置-显示全部
rem  ;Overwrite=覆盖方式:1-覆盖全部文件      2-跳过已存在的文件      空着不设置-覆盖前询问
rem  ;请选择正确的图标并保存正确的配置文件
rem  Path=.\Archivarius-3000\
rem  Setup=Archivarius-3000.bat
rem  Silent=2
rem  Overwrite=2

rem  ==========  第1步:导入注册码  ==========
rem 导入Archivarius3000的注册码到系统注册表数据库,未注册时提示索引数据库只读,试用30天,限制索引1000个文件

rem  *** A3J6Tg/0zihV6y/IPp2irDM379xmBmn19S8wxzL7ZZVJY
rem  fkGCB0lChEp1bf78JPB2iaWxzy4KKnhcbZrdEn9CO+e/h
rem  aK1MKrEO3YN87Z9CViaYVXZciJDnp5AI1XuPEJH/Z/ymB
rem  0b/LVWppAWliGpY62SagTijhuAOuBN320hTrkNuT+bBI= ***

rem  Windows Registry Editor Version 5.00
rem  
rem  [HKEY_CURRENT_USER\Software\Likasoft\AR3]
rem  @=""
rem  "Key"="0zihV6y/IPp2irDM379xmBmn19S8wxzL7ZZVJYfkGCB0lChEp1bf78JPB2iaWxzy4KKnhcbZrdEn9CO+e/haK1MKrEO3YN87Z9CViaYVXZciJDnp5AI1XuPEJH/Z/ymB0b/LVWppAWliGpY62SagTijhuAOuBN320hTrkNuT+bBI="

start regedit /s %~dp0RegArchivarius3000.reg

rem  ==========  第2步:覆盖软件设置文件  ==========
rem  修改索引的路径为Archivarius3000程序所在文件夹,绿色便携
rem  原始文档表格被删除之后Archivarius3000仍然可以搜索索引数据库内容
rem  start explorer.exe "%AppData%"\Archivarius 3000

del "%AppData%"\"Archivarius 3000"\Archivarius3000.cfg
copy /y %~dp0AppData\Archivarius-3000\Archivarius3000.cfg  "%AppData%"\"Archivarius 3000"\Archivarius3000.cfg

rem  ==========  第3步:运行已经创建索引的 Archivarius 3000  ==========
rem  删除原始文档表格之后 Archivarius 3000 仍然能够搜索索引数据库中得文档表格正文内容
start %~dp0Archivarius3000.exe





 

@ECHO OFF
if defined PROGRAMFILES(X86) (
    echo Running GoodSync2Go on 64-bit system
    cd /d "%~dp0GoodSync2Go\x86"
    echo GoodSync|actGsync /gs-account-enroll=GoodSync
    actGsync /activate
    actGsync /license
    start %~dp0GoodSync2Go\x86\GoodSync2Go.exe
) else (
    echo Running GoodSync2Go on 32-bit system
    cd /d "%~dp0GoodSync2Go\x64"
    echo GoodSync|actGsync /gs-account-enroll=GoodSync
    actGsync /activate
    actGsync /license
    start %~dp0GoodSync2Go\x64\GoodSync2Go.exe
)

rem  start %~dp0winmini.exe
posted @ 2022-09-29 15:34  QQ595076941  阅读(984)  评论(0)    收藏  举报
595076941@qq.com