如何判断电脑有没有经过重启

来源:百度知道 编辑:UC知道 时间:2024/05/31 00:10:15
请问高人,我想知道在我程序的两次运行中间,电脑有没有被重启过,有办法实现吗?

1.先添加审核登陆事件,然后检查eventlog关闭-登陆这样的片段(通用的方法可以用wmi查询),如果这个间隔很短那就认为是重启
2.写一个服务,重写onStart和onShutdown事件,如果onShutdown-onStart这个间隔更短就认为是重启(停止服务不会触发onShutdown事件)

这个可以通过在程序运行时建立lock文件的方法,程序如果手动结束,就写数据,如果自动关闭,当然就没有数据写入。
这样就可以间接判定程序是否被电脑重启时自动关闭过。

比较两次的启动时间就行了吧,winAPI里有获取开机时间的函数