最近小弟在做一个演示系统,上次在各位大大的建议、帮助下,我经过多次试验成功解决了利用10秒模拟实际运行一分钟的问题,在此顺便对所以提供有益参考的大大们表示感谢!
言归正题,现在有个新的小问题,我在演示的时候需要更改系统时间,我做了个button,每次点击Button后会将系统时间更改为我设定的时间,但现在有个问题,当我推出程序的时候,我希望系统时间能恢复到正常的时间。
我写了一段代码,但是效果不好,代码如下
Dim real_timePrivate Sub Command1_Click()
real_time=Time
Shell "cmd /c time " & S_hour & ":" & S_minute & ":" & S_second 's_hour,s_minute,s_second为我运行程序认为修改的时间
end subPrivate Sub Form_Unload(Cancel As Integer)
Shell "cmd /c time " & real_time, vbHide
End Sub 现在的问题是,当我退出时,它确实能够恢复时间,但是,它恢复的是我开始运行程序的时间。比如,我早上9:00:00的时候执行程序,程序中我改为了14:00:00,程序运行了10分钟,当我退出的时候,我希望的是系统时间显示为9:10:00,但实际上去显示为9:00:00.
我也知道问题出在什么地方,就是当我程序执行的时候,那个real_time被赋值为9:00:00的时间,在程序执行的10分钟内,real_time 没有发生变化,我试着加了个timer进来,希望能让real_time每秒钟发生变化,但是具体的代码不太会写,问题在于当timer运行时,那个系统时间已经发生了变化,我在timer中使用real_time=Time时,会将real_time赋值为我人为修改的时间。
希望大大们能提供一个比较简单有用的建议~~
言归正题,现在有个新的小问题,我在演示的时候需要更改系统时间,我做了个button,每次点击Button后会将系统时间更改为我设定的时间,但现在有个问题,当我推出程序的时候,我希望系统时间能恢复到正常的时间。
我写了一段代码,但是效果不好,代码如下
Dim real_timePrivate Sub Command1_Click()
real_time=Time
Shell "cmd /c time " & S_hour & ":" & S_minute & ":" & S_second 's_hour,s_minute,s_second为我运行程序认为修改的时间
end subPrivate Sub Form_Unload(Cancel As Integer)
Shell "cmd /c time " & real_time, vbHide
End Sub 现在的问题是,当我退出时,它确实能够恢复时间,但是,它恢复的是我开始运行程序的时间。比如,我早上9:00:00的时候执行程序,程序中我改为了14:00:00,程序运行了10分钟,当我退出的时候,我希望的是系统时间显示为9:10:00,但实际上去显示为9:00:00.
我也知道问题出在什么地方,就是当我程序执行的时候,那个real_time被赋值为9:00:00的时间,在程序执行的10分钟内,real_time 没有发生变化,我试着加了个timer进来,希望能让real_time每秒钟发生变化,但是具体的代码不太会写,问题在于当timer运行时,那个系统时间已经发生了变化,我在timer中使用real_time=Time时,会将real_time赋值为我人为修改的时间。
希望大大们能提供一个比较简单有用的建议~~
Dim ss As SinglePrivate Sub Command1_Click()
real_time = Time
ss = Timer
Shell "cmd /c time " & S_hour & ":" & S_minute & ":" & S_second 's_hour,s_minute,s_second为我运行程序认为修改的时间
End SubPrivate Sub Form_Unload(Cancel As Integer)
ss = Timer - ss
real_time = DateAdd("s", ss, CDate(real_time))
Shell "cmd /c time " & real_time, vbHide
End Sub
Dim update_time As DatePrivate Sub Command1_Click()
'记录更新时的当前时间
real_time = Now
'指定更新时间
update_time = Format(Now, "yyyy-MM-dd 14:00:00")
'更新系统日期和时间
Date = DateValue(update_time)
Time = TimeValue(update_time)
End SubPrivate Sub Form_Unload(Cancel As Integer)
Dim n As Long
Dim dt As Date
'计算当前时间与更新时间之间的差(秒),也就是程序运行了多少秒
n = DateDiff("s", update_time, Now)
'程序运行时间加更新时的当前时间,就是当前标准时间
dt = DateAdd("s", n, real_time)
'更新系统日期和时间
Date = DateValue(dt)
Time = TimeValue(dt)
End Sub