更新

#Persistent
#SingleInstance force
D_link = http://tv.rrsyycm.com/autohotkey/download/cy.txt
D_kb := InternetFileGetSize(D_link)
MsgBox % D_kb
;预设信息
/*             创建界面
--------------------------------------
*/
Gui +HwndMyGuiHwnd
Gui,Add,Text,,开机运行则隐藏窗口运行
/*             启动时加载
--------------------------------------
*/
D_MY=AHK更新
D_bb=1510
D_QQ=4845514
D_bx=版本信息
D_update=http://habit-2015.54fe89771abc8.d01.nanoyun.com/Habit/updatee.txt?fakeParam=%A_Now%
/*           D_update.txt内容
--------------------------------------
1513
http://habit-2015.54fe89771abc8.d01.nanoyun.com/Habit/desk.exe?fakeParam=%A_Now%
Habit-2044.exe
更新信息
第一行版本号 第二行新版本下载地址 第三行新版本文件名 第四行更新信息
*/
Menu,Tray,Icon,shell32.dll,174,1
Menu,Tray,Click,1
Menu,Tray,Add,%D_MY%,Menu
Menu,Tray,Add
Menu,Tray,Add,联系作者
Menu,Tray,Add,关于信息
Menu,D_SubMenu,Add,开机启动
Menu,D_SubMenu,Add,启动更新
Menu,Tray,Add,系统设置,:D_SubMenu
Menu,Tray,Add
Menu,Tray,Add,重启脚本
Menu,Tray,Add,退出脚本
Menu,Tray,Default,%D_MY%
Menu,Tray,NoStandard
Menu,Tray,Tip,%D_MY%`n当前版本:%D_bb%
if (A_OSVersion="WIN_7"){
Menu,Tray,Icon,%D_MY%,shell32.dll,157,18
Menu,Tray,Icon,联系作者,shell32.dll,282,18
Menu,Tray,Icon,关于信息,shell32.dll,285,18
Menu,Tray,Icon,系统设置,shell32.dll,288,18
Menu,Tray,Icon,重启脚本,shell32.dll,287,18
Menu,Tray,Icon,退出脚本,shell32.dll,283,18
}else{
Menu,Tray,Icon,%D_MY%,shell32.dll,29,18
Menu,Tray,Icon,联系作者,shell32.dll,171,18
Menu,Tray,Icon,关于信息,shell32.dll,155,18
Menu,Tray,Icon,系统设置,shell32.dll,166,18
Menu,Tray,Icon,重启脚本,shell32.dll,147,18
Menu,Tray,Icon,退出脚本,shell32.dll,113,18
}
IfNotExist,%A_Startup%%A_ScriptName%.lnk
	Gui,Show,AutoSize
else
	Menu,D_SubMenu,ToggleCheck,开机启动
RegRead,D_Read,HKEY_LOCAL_MACHINE,SOFTWARETestKey,MyValueName
if D_Read{
	Menu,D_SubMenu,ToggleCheck,启动更新
	if A_TickCounthttp://www.ahk8.com
Gui,D_about:Show,AutoSize,关于
return
Menu:
	DetectHiddenWindows,off
	IfWinExist,ahk_id %MyGuiHwnd%
	{
		Gui,Cancel
		return
	}
	Gui,Show,AutoSize
return
开机启动:
	Menu,D_SubMenu,ToggleCheck,开机启动
	IfExist,%A_Startup%%A_ScriptName%.lnk
		FileDelete,%A_Startup%%A_ScriptName%.lnk
	else
		FileCreateShortcut,%A_ScriptFullPath%,%A_Startup%%A_ScriptName%.lnk
return
启动更新:
	Menu,D_SubMenu,ToggleCheck,启动更新
	RegRead,D_Read,HKEY_LOCAL_MACHINE,SOFTWARETestKey,MyValueName
	if D_Read
		RegDelete,HKEY_LOCAL_MACHINE,SOFTWARETestKey,MyValueName
	else
		RegWrite,REG_SZ,HKEY_LOCAL_MACHINE,SOFTWARETestKey,MyValueName,Test Value
return
GuiClose:
	Gui,Cancel
return
联系作者:
	Run tencent://message/?uin=%D_QQ%
return
重启脚本:
	Reload
退出脚本:
	ExitApp
立即检查:
	SetTimer,立即检查,Off
	SplitPath,D_update,,,,,OutDrive
	update:=W_InternetCheckConnection(OutDrive)
	if not update
		return
	D_Array := StrSplit(DownloadToString(D_update,"cp936"),"`n")
	D_Edit := D_Array[1] ;读取第一行版本号
	D_link := D_Array[2] ;读取第二行下载文件连接
	D_Name := D_Array[3] ;新文件名
	D_xing := D_Array[4] ;更新信息
	if D_Edit is not number
	{
		TrayTip,,获取更新失败,10, 1
		return
	}
	if (D_Edit > D_bb)
	{
		MsgBox,4,检测到新版本,是否更新至:%D_Edit%`n%D_xing%
		IfMsgBox Yes
			gosub,D_Label
	}
return
D_Label:
	D_kb := InternetFileGetSize(D_link)
	Progress,1,%S_kb%/%D_kb%,正在更新...,AHK更新
	FileDelete,%A_Temp%%D_Name%
	SetTimer,S_Label,500
	URLDownloadToFile,%D_link%,%A_Temp%%D_Name%
	SetTimer,S_Label,Off
	if ErrorLevel{
		TrayTip,,更新文件下载出错,10, 1
		return
	}
	else{
		Progress,100
		gosub,ExitSub
	}
return
S_Label: ;获取下载临时文件的大小更新进度
	FileGetSize,S_kb,%A_Temp%%D_Name%
	D_xz := S_kb/D_kb
	D_xz := D_xz*100
	StringLeft,D_xz,D_xz,2
	Progress,%D_xz%,%S_kb%/%D_kb%,正在更新...,AHK更新
return
ExitSub:
	if (A_IsCompiled) ;自杀并打开更新后的程序
	{
		bat=
		(LTrim
:start
	ping 127.0.0.1 -n 2>nul
	del `%1
	if exist `%1 goto start
	copy %A_Temp%%D_Name% %A_ScriptDir%
	start %D_Name%
	del `%0
	)
	batfilename=Delete.bat
	IfExist %batfilename%
		FileDelete %batfilename%
	FileAppend, %bat%, %batfilename%
	Run,%batfilename% "%A_ScriptFullPath%", , Hide
	ExitApp
	}
ExitApp
W_InternetCheckConnection(lpszUrl){ ;检查FTP服务是否可连接
	FLAG_ICC_FORCE_CONNECTION := 0x1
	dwReserved := 0x0
	return, DllCall("Wininet.dllInternetCheckConnection", "Ptr", &lpszUrl, "UInt", FLAG_ICC_FORCE_CONNECTION, "UInt", dwReserved, "Int")
}
InternetFileGetSize(URL:=""){  ;获取网络文件大小
	Static LIB="WININET", CL="00000000000000", N=""
	QRL := 16
	if ! DllCall( "GetModuleHandle", Str,"wininet.dll" )
		DllCall( "LoadLibrary", Str,"wininet.dll" )
	if ! hIO:=DllCall( LIB "InternetOpenA", Str,N, UInt,4, Str,N, Str,N, UInt,0 )
		return -1
	if ! (( hIU:=DllCall( LIB "InternetOpenUrlA", UInt,hIO, Str,URL, Str,N, Int,0, UInt,F, UInt,0 ) ) || ErrorLevel )
		return "",0 - ( !DllCall( LIB "InternetCloseHandle", UInt,hIO ) ) - 2
	if ! ( RB  )
		if ( SubStr(URL,1,4) = "ftp:" )
			CL := DllCall( LIB "FtpGetFileSize", UInt,hIU, UIntP,0 )
		else if ! DllCall( LIB "HttpQueryInfoA", UInt,hIU, Int,5, Str,CL, UIntP,QRL, UInt,0 )
			return "",0 - ( !DllCall( LIB "InternetCloseHandle", UInt,hIU ) )-( !DllCall( LIB "InternetCloseHandle", UInt,hIO ) ) - 4
	return CL
}
DownloadToString(URL, encoding="utf-8")
{
	static a := "AutoHotkey/" A_AhkVersion
	if (!DllCall("LoadLibrary", "str", "wininet") || !(h := DllCall("wininetInternetOpen","str",a,"uint",1, "ptr", 0, "ptr", 0, "uint", 0, "ptr")))
		return 0
	c:=s:=0,o:=""
	if(f:=DllCall("wininetInternetOpenUrl","ptr",h,"str",url,"ptr",0,"uint",0,"uint",0x80003000,"ptr",0,"ptr"))
	{
		while (DllCall("wininetInternetQueryDataAvailable","ptr",f,"uint*",s,"uint",0,"ptr",0) &&s>0)
		{
			VarSetCapacity(b,s,0)
			DllCall("wininetInternetReadFile","ptr",f,"ptr",&b,"uint",s,"uint*",r)
			o.= StrGet(&b,r>>(encoding="utf-16"||encoding="cp1200"),encoding)
		}
		DllCall("wininetInternetCloseHandle","ptr", f)
}
DllCall("wininetInternetCloseHandle","ptr",h)
return o
}
/*
UrlDownloadToVar(URL,Timeout) { ;下载文件到变量
	ComObjError(0)
	WebRequest := ComObjCreate("WinHttp.WinHttpRequest.5.1")
	WebRequest.Open("GET", URL, true)
	WebRequest.Send()
	WebRequest.WaitForResponse(Timeout)
	return WebRequest.ResponseText()
}

给TA捐赠
共{{data.count}}人
人已捐赠
其他

更换壁纸(本地文件夹)

2020-3-9 3:29:44

其他

替换字符串所在行

2020-3-9 3:31:44

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索