怎样修改系统日期?
本帖最后由 yelangpp 于 2009-7-5 00:23 编辑如题,用Autoit如何修改系统日期?
遇一软件,未能完全破解,每次使用时,需将系统日期修改到以前,
想用Autoit写个自动运行,先修改系统日期提前,再运行软件,关闭软件
后,再将系统日期修改到现在。 帮助里面有 日期管理的UDF,可以修改系统时间
#include <Date.au3>
要达到你要求也很简单,做个循环监控,如果软件窗体关闭,就把时间更改回来并退出即可 日期管理的UDF,可以修改系统时间
#include
要达到你要求也很简单,做个循环监控,如果软件窗体关闭,就把时间更改回来并退出即可
bob 发表于 2009-6-22 13:38 http://www.autoitx.com/images/common/back.gif
好创意!!! 谢谢,看了帮助,应该不是很方便,如果是现成的函数就好了。 LZ,如果你这么想就用不着编什么程序了,去找现成的破解程序吧 谢谢,看了帮助,应该不是很方便,如果是现成的函数就好了。
yelangpp 发表于 2009-6-22 22:46 http://www.autoitx.com/images/common/back.gif
_Date_Time_SetSystemTime
请问你还想怎样的现成的? 本帖最后由 都市浪子666 于 2009-6-23 13:16 编辑
我有个,情况正和楼主的情况是一样的,使用软件前要把日期修改
偶E文很烂,看不懂那个日期的函数,
偶也是初学AU3,偶写的的代码也是非常的烂
#NoTrayIcon
#include <Date.au3>
dim $es_path
dim $date_YY,$date_mm,$date_dd
call ("chong_fu") ;检测是不是重复运行程序
CALL("GET_PATH"); 取得DECO的安装目录 如果没有,就退出
call("jin_che") ;检测是不是有启动W和田岛的软件
call("run_soft"); 运行软件
call ("out_deco"); 这个是退出的函数,接着会更正时间
Func GET_PATH () ; 取得DECO的安装目录
$es_path="\bin\"
For $i_DECO= 1 to 100
$reg_deco = RegEnumKey("HKEY_CURRENT_USER\Software\Wilcom\Embroidery Studio", $i_DECO)
If @error <> 0 then ExitLoop
;MsgBox(4096, "SubKey #" & $i_DECO & " under HKLM\Software: ", $reg_deco)
$PATH_DECO=RegRead("HKEY_CURRENT_USER\Software\Wilcom\Embroidery Studio\"&$reg_deco,"Location")
IF @error=0 Then
$es_path=$PATH_DECO&"\bin\"
;MsgBox(0,$reg_deco&"-----"&$i_DECO,$PATH_DECO)
; MsgBox(0,"",$es_path)
EndIf
Next
if $es_path="\bin\" Then
MsgBox(0+32,"错误","貌似没有安装DecoStudio"&@CRLF&@CRLF&"如有什么问题请联系 XXX",10)
Exit
EndIf
EndFunc ; ********************** 取得DECO的安装目录
Func run_soft () ; 运行软件
;$date_YY=@YEAR ;是年
;$date_mm=@MON ;是月
;$date_dd=@MDAY ;是天
IniWrite(@TempDir&"\date.ini","日期","年",@YEAR)
IniWrite(@TempDir&"\date.ini","日期","月",@MON)
IniWrite(@TempDir&"\date.ini","日期","日",@MDAY)
$date_YY=IniRead(@TempDir&"\date.ini","日期","年","")
$date_mm=IniRead(@TempDir&"\date.ini","日期","月","")
$date_dd=IniRead(@TempDir&"\date.ini","日期","日","")
run('cmD /c date 2009-2-1',"",@SW_HIDE) ; 这里是修改日期,也可以改成别的,
; 但最后一定要是1号 例如改成'cmD /c date 2008-5-1'
; 年和月的数字随便改, 但日这个数字一定要是1 如果不是1。那修改的日期会不对
RUN('"'&$es_path&'DESLOADR.EXE""'&$es_path&'DecoStudio.EXE"ES "21,25"',"") ;运行软件
ToolTip("正在启动DecoStudio,请稍等"&@CRLF _
&"现已把日期修改成2009-2-1,等DecoStudio结束后"&@crlf _
&"程序会自动更正日期 BY都市浪子",@DesktopWidth-250,@DesktopHeight-100,"","",1+4)
Sleep(14000)
ToolTip("","","")
EndFunc ;====================== ; 运行软件======================
Func out_deco () ;退出的函数
Do
Sleep(3000)
$ProcessExi=1
if ProcessExists("DecoStudio.EXE")=False Then
; 这里是没有DecoStudio.EXE进程才到这里的
if ProcessExists("DESLOADR.EXE")=False Then
; 这里是没有DESLOADR.EXE 和 DecoStudio.EXE进程才到这里的
; 困为我所用的软件是有运行2个进程,所以要检测2个进程
;MsgBox(0,"","cmd /c date "&$date_YY&"-"&$date_mm&"-"&$date_dd)
if @MDAY=1 Then
run("cmd /cdate "&$date_YY&"-"&$date_mm&"-"&$date_dd,"",@SW_HIDE)
FileDelete(@TempDir&"\date.ini")
Else
; 到这里的话,就是日期最少过了一天,要修正日期
IniWrite(@TempDir&"\date.ini","日期","天数",@MDAY-1)
call ("date_ren");更正日期的函数
EndIf
Exit
EndIf
EndIf
Until$ProcessExi=2
EndFunc ;退出的函数
Func date_ren () ; 更正日期的函数
RunWait("cmd /cdate "&$date_YY&"-"&$date_mm&"-"&$date_dd,"",@SW_HIDE)
$date_tin_su=IniRead(@TempDir&"\date.ini","日期","天数","")
$sNewDate = _DateAdd( 'd',$date_tin_su, _NowCalcDate()) ;这里是在已经有的天数上加几天
$date_YY=StringLeft ($sNewDate,4)
$date_mm=StringMid ($sNewDate,6,2)
$date_dd=StringMid ($sNewDate,9,2)
;MsgBox(0,"",$sNewDate&@CRLF &$date_YY&"**"&$date_mm&"**"&$date_dd)
run("cmd /cdate "&$date_YY&"-"&$date_mm&"-"&$date_dd,"",@SW_HIDE)
FileDelete(@TempDir&"\date.ini")
EndFunc ;------------------------------更正日期的函数
Func jin_che ()
if ProcessExists("es.exe") Then
MsgBox(0+64," 错误","你已经启动了威尔克姆"&@CRLF&@CRLF&"不能再启动DecoStudio ",10)
Exit
EndIf
if ProcessExists("DGML.exe") Then
MsgBox(0+64," 错误","你已经启动了田岛"&@CRLF&@CRLF&"不能再启动DecoStudioo ",10)
Exit
EndIf
EndFunc
Func chong_fu () ;检测是不是重复运行程序
RunWait('cmd /c tasklist|find /i "'&@ScriptName&'" >c:\task.txt',"c:\",@SW_HIDE)
$Line2=FileReadLine("c:\task.txt",2)
FileDelete("c:\task.txt")
if $Line2="" Then
; 到这里就是第一次运行
;MsgBox(0,"000","第一次运行")
Else
; 到这里就是第2次运行
MsgBox(0+64," SORRY","程序已经在运行了,请不要重复运行",9)
Exit
EndIf
EndFunc ; ; 检测是不是重复运行程序
帮助里面有
zjx0111 发表于 2009-6-22 12:49 http://www.autoitx.com/images/common/back.gif
这位兄弟,回答得比较的牛B
一句话搞搞定,让别人从帮助里面找,该如何找,怎么找呀,找什么,至少也给点提示什么的
这位兄弟,回答得比较的牛B
一句话搞搞定,让别人从帮助里面找,该如何找,怎么找呀,找什么,至少也给点提示什么的
都市浪子666 发表于 2009-6-23 13:52 http://www.autoitx.com/images/common/back.gif
关于回帖‘看帮助文件’的问题这里已经提过了
http://www.autoitx.com/forum.php?mod=viewthread&tid=7088&extra=page%3D1
每个人都有回帖的自由,但是要注意自由也是有一定范围的 谢谢大家积极帮忙,学习不少! 参考相关内容 不错,学习了。。。。 学习了。。。。
页:
[1]