首页 > 其他分享 >; 每隔10分钟定时关闭并重启蘑菇游戏下载器,防止下载器卡死宕机死机停止下载的AutoHotkey脚本2024年8月7日

; 每隔10分钟定时关闭并重启蘑菇游戏下载器,防止下载器卡死宕机死机停止下载的AutoHotkey脚本2024年8月7日

时间:2024-08-07 09:40:29浏览次数:10  
标签:10 exe 死机 U64 RunAsAdmin ANSI U32 权限 下载

 

; 每隔10分钟定时关闭并重启蘑菇游戏下载器,防止下载器卡死宕机死机停止下载的AutoHotkey脚本2024年8月7日

 

 

; 每隔10分钟定时关闭并重启蘑菇游戏下载器,防止下载器卡死宕机死机停止下载的AutoHotkey脚本2024年8月7日

; 测试环境:AutoHotkey_1.1.37.02_Setup.exe & Windows_Server_2016_标准版.ISO
; 测试结果:测试通过,能够在服务器上实现 7x24小时不间断高速下载网吧游戏到本地磁盘


; 设置环境变量
#NoEnv
; #Warn
SendMode Input
SetWorkingDir %A_ScriptDir%
#SingleInstance,force
#Persistent
#WinActivateForce
;~ #NoTrayIcon
DetectHiddenWindows,On
SetTitleMatchMode,2

RunWith("admin",32)

;等待指定标题窗口出现
; WinWait, story 反馈请访问www.pcstory.fun  ahk_class Global\{4F7961BA-AD65-4018-BDEA-1BA1FF77CD66} ahk_exe pcstory.exe

SetTimer,Reloadpcstory,600000
; Reloadpcstory()
return
Reloadpcstory()
{
	loop,5
	{
		;等待指定标题窗口出现
		; WinWait, story 反馈请访问 www.pcstory.fun ahk_class Global\{4F7961BA-AD65-4018-BDEA-1BA1FF77CD66} ahk_exe pcstory.exe
		Sleep,200
		Process,Close,pcstory.exe
		Sleep,200
		Process,Close,fp2psrv.exe
	}
	Sleep,200
	Run,F:\pcstory6.2.0.1sp1\pcstory.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
}
}
; 测试代码:(使用 Unicode32 版本并以管理员权限运行自身)

; RunWith("admin",32)
; 当前AHK版本 := (!A_IsUnicode) ? "ANSI" : (A_PtrSize=4) ? "Unicode 32" : "Unicode 64"
; 当前权限    := (A_IsAdmin=1)  ? "管理员权限" : "普通权限"
; MsgBox, % "当前AHK版本: " 当前AHK版本 "`n`n当前权限: " 当前权限



ExitApp

/*

2024年8月7日

Set objShell = CreateObject("Wscript.Shell")
objshell.run "https://cn.bing.com/search?q=pcstory"
WScript.quit

Set objShell = CreateObject("Wscript.Shell")
objshell.run "https://www.baidu.com/s?wd=pcstory"
WScript.quit

Set objShell = CreateObject("Wscript.Shell")
objshell.run "https://cn.bing.com/search?q=蘑菇游戏下载器"
WScript.quit

Set objShell = CreateObject("Wscript.Shell")
objshell.run "https://www.baidu.com/s?wd=蘑菇游戏下载器"
WScript.quit

Set objShell = CreateObject("Wscript.Shell")
objshell.run "https://cn.bing.com/search?q=好司机下载器"
WScript.quit

Set objShell = CreateObject("Wscript.Shell")
objshell.run "https://www.baidu.com/s?wd=好司机下载器"
WScript.quit

Set objShell = CreateObject("Wscript.Shell")
objshell.run "https://cn.bing.com/search?q=haosiji"
WScript.quit

Set objShell = CreateObject("Wscript.Shell")
objshell.run "https://www.baidu.com/s?wd=haosiji"
WScript.quit

*/

  

; 每隔10分钟定时关闭并重启蘑菇游戏下载器,防止下载器卡死宕机死机停止下载的AutoHotkey脚本2024年8月7日
; 测试环境:AutoHotkey_1.1.37.02_Setup.exe & Windows_Server_2016_标准版.ISO; 测试结果:测试通过,能够在服务器上实现 7x24小时不间断高速下载网吧游戏到本地磁盘

; 设置环境变量#NoEnv; #WarnSendMode InputSetWorkingDir %A_ScriptDir%#SingleInstance,force#Persistent#WinActivateForce;~ #NoTrayIconDetectHiddenWindows,OnSetTitleMatchMode,2
RunWith("admin",32)
;等待指定标题窗口出现; WinWait, story 反馈请访问www.pcstory.fun  ahk_class Global\{4F7961BA-AD65-4018-BDEA-1BA1FF77CD66} ahk_exe pcstory.exe
SetTimer,Reloadpcstory,600000; Reloadpcstory()returnReloadpcstory(){loop,5{;等待指定标题窗口出现; WinWait, story 反馈请访问 www.pcstory.fun ahk_class Global\{4F7961BA-AD65-4018-BDEA-1BA1FF77CD66} ahk_exe pcstory.exeSleep,200Process,Close,pcstory.exeSleep,200Process,Close,fp2psrv.exe}Sleep,200Run,F:\pcstory6.2.0.1sp1\pcstory.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:=0case "Admin","Yes","1":RunAsAdmin:=1case "default":RunAsAdmin:=A_IsAdmindefault: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.exev:=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, , Dirif (RunAsAdmin=0){; 强制普通权限运行switch, A_IsCompiled{; %A_ScriptFullPath% 必须加引号,否则含空格的路径会被截断。%ScriptParameters% 必须不加引号,因为构造时已经加了。; 工作目录不用单独指定,默认使用 A_WorkingDir 。case, "1": Run, RunAs.exe /trustlevel:0x20000 "\"%A_ScriptFullPath%\" /restart %ScriptParameters%",, Hidedefault: 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}}; 测试代码:(使用 Unicode32 版本并以管理员权限运行自身)
; RunWith("admin",32); 当前AHK版本 := (!A_IsUnicode) ? "ANSI" : (A_PtrSize=4) ? "Unicode 32" : "Unicode 64"; 当前权限    := (A_IsAdmin=1)  ? "管理员权限" : "普通权限"; MsgBox, % "当前AHK版本: " 当前AHK版本 "`n`n当前权限: " 当前权限


ExitApp
/*
2024年8月7日
Set objShell = CreateObject("Wscript.Shell")objshell.run "https://cn.bing.com/search?q=pcstory"WScript.quit
Set objShell = CreateObject("Wscript.Shell")objshell.run "https://www.baidu.com/s?wd=pcstory"WScript.quit
Set objShell = CreateObject("Wscript.Shell")objshell.run "https://cn.bing.com/search?q=蘑菇游戏下载器"WScript.quit
Set objShell = CreateObject("Wscript.Shell")objshell.run "https://www.baidu.com/s?wd=蘑菇游戏下载器"WScript.quit
Set objShell = CreateObject("Wscript.Shell")objshell.run "https://cn.bing.com/search?q=好司机下载器"WScript.quit
Set objShell = CreateObject("Wscript.Shell")objshell.run "https://www.baidu.com/s?wd=好司机下载器"WScript.quit
Set objShell = CreateObject("Wscript.Shell")objshell.run "https://cn.bing.com/search?q=haosiji"WScript.quit
Set objShell = CreateObject("Wscript.Shell")objshell.run "https://www.baidu.com/s?wd=haosiji"WScript.quit
*/

标签:10,exe,死机,U64,RunAsAdmin,ANSI,U32,权限,下载
From: https://www.cnblogs.com/delphixx/p/18346411

相关文章

  • 修改微信(3.9.10.19版本)系统托盘图标(傻瓜教程)
    微信版本:进行以下操作先退出微信1.iconfontLogo下载一个图标png,大小为256像素,前面颜色自己看着弄2.png转ico,转化链接(转化的网站很多不一定非要是这个)3.下载后续所需程序(ResHacker和IconWorkshopPortable)备用下载链接4.找到右击微信快捷键点击属性,打开所在位置,在文......
  • 10 tqdm模块实现进度条_Parallel并行加快速度
     欢迎来到@一夜看尽长安花博客,您的点赞和收藏是我持续发文的动力对于文章中出现的任何错误请大家批评指出,一定及时修改。有任何想要讨论的问题可联系我:[email protected]。发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。   专栏:java全栈C&C++PythonAIP......
  • Windows10 安装编译后的 pysqlcipher3-1.2.1 基于 Python 3.8.10
    Windows10安装编译后的pysqlcipher3-1.2.1基于Python3.8.10本文主要是将直接安装编译后的文件,不一定的成功,但是可以尝试使用,若无法直接安装,请参考编译过程,自行编译安装,编译过程见这里安装pysqlcipher3这里用32位举例因为64位安装完全相同,只需要把对应的位数换成64......
  • Flink实战(10)-checkpoint容错保证
    0前言程序在Flink集群运行,某个算子因为某些原因出现故障,如何处理在故障恢复后,如何保证数据状态,和故障发生之前的数据状态一致?1什么是checkpoint(检查点)?Checkpoint能生成快照(Snapshot)。若Flink程序崩溃,重新运行程序时可以有选择地从这些快照进行恢复。Checkpoin......
  • 超快速的百度网盘不限速下载技巧,建议偷偷使用!
    小伙伴们,你们是否曾经为百度迅雷网盘限速而烦恼呢?动不动就要冲svip会员,不仅费钱,开通后还慢的气死,我现在来介绍一种全新的高效下载方法吧,只需要下载并安装一款神奇的软件,接着简单操作即可轻松实现快速下载,节省时间,这款神奇的软件具体信息在文章最后有说明。第一:你只需要将要下载的......
  • 洛谷 P4910题解
    题目大意现在穿T次手串,每根手串的长度分别为不同的n,有木和金两种珠子,相邻两颗珠子必须有一个是金。题目思路分析我们现在设穿到第n个珠子时用金的方案数为f[1][n],用木的方案数为f[0][n]如果第n个珠子为金,那么前一颗珠子是什么都可以,因此f[1][n]=f[1][n-1]+f[0][n-1]而如果......
  • 《LeetCode热题100》---<5.②普通数组篇五道>
    本篇博客讲解LeetCode热题100道普通数组篇中的五道题第三道:轮转数组(中等)第四道:除自身以外数组的乘积(中等)第三道:轮转数组(中等) 方法一:使用额外的数组classSolution{publicvoidrotate(int[]nums,intk){intlen=nums.length;int[]newAr......
  • 匿名内部类day10
    /*匿名内部类:语法定义格式:new抽象类/接口(){//要重写的方法}*/abstractclassDemo1{publicabstractvoidfun1();//publicabstractvoidfun2();}//classXXXextendsDemo1{//@Override//......
  • 接口类型的方法调用,使用匿名内部类day10
    /*接口类型的方法调用,使用匿名内部类匿名内部类:语法定义格式:new抽象类/接口(){//要重写的方法}*/interfaceInter1{voidfun1();}//classInter1ImplimplementsInter1{//@Override//publi......
  • 内部类 day10
    /*内部类:将一个类A定义在一个类B中,这个类A称之为内部类分类:成员内部类:将类定义在一个类中的成员位置上局部内部类:将类定义在一个方法中*/classOuter1{inta1=10;privateinta2=11;publicstaticinta3=12;class......