怎么判断计算机重启过?
本帖最后由 KLU3K 于 2010-1-8 22:09 编辑我写了一个记录启动时间的软件,首次启动时将获取到的系统启动时间写入注册表,然后读取注册表内容,并在托盘显示出来本次启动用时多少。在不重新启动系统的情况下直接显示我注册表中记录的本次开始用时。待到我下次重启系统后再重新开始计算当前启动系统用时。
可我百思不得其解怎么获取系统是否重启过呢?
代码如下:#include <Date.au3>
$_TickCount = _Date_Time_GetTickCount()
Dim $iHours, $iMins, $iSecs
_TicksToTime($_TickCount, $iHours, $iMins, $iSecs)
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\KLU3K", "Run", "REG_SZ", "1")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\KLU3K", "Mins", "REG_SZ", $iMins)
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\KLU3K", "Secs", "REG_SZ", $iSecs)
$FZ = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\KLU3K", "Mins")
$MZ = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\KLU3K", "Secs")
TrayTip("启动时间", $FZ & "分" & $MZ & "秒", 0)
Sleep(2000)看到上面我想大家也能知道我的问题了,如果我不重新启动,再次运行程序那么时间就累计下去了。比如首次开机是30秒,我等10分钟后再次运行这个程序就显示“启动时间:10分钟30秒”。这显然不是我的本意,我希望二次或多次在不重启的情况下运行依旧显示30秒。只有再次将系统重新启动时才重新统计时间。我该怎么写呢?怎么判断我计算机是否重启呢? 本帖最后由 afan 于 2010-1-8 01:58 编辑
回复 1# KLU3K
试下,我没测试~#include <Date.au3>
If RegRead('HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce', 'KLU3K') = '' Then
$_TickCount = _Date_Time_GetTickCount()
Dim $iHours, $iMins, $iSecs
_TicksToTime($_TickCount, $iHours, $iMins, $iSecs)
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\KLU3K", "Run", "REG_SZ", "1")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\KLU3K", "Mins", "REG_SZ", $iMins)
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\KLU3K", "Secs", "REG_SZ", $iSecs)
RegWrite('HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce', 'KLU3K', 'REG_SZ', '1')
EndIf
$FZ = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\KLU3K", "Mins")
$MZ = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\KLU3K", "Secs")
TrayTip("启动时间", $FZ & "分" & $MZ & "秒", 0)
Sleep(2000) ,不错。考虑学习 启用runone做记忆, 问题解决,感谢啊感谢! 想去了计时器
页:
[1]