通过VBA(Access / Excel)检索系统运行时间

时间:2016-12-05 17:14:22

标签: vba excel-vba access-vba access excel

无论如何,在Access VBA(或那种方式的Excel)中,我可以看到当前系统的Up Time?

我知道在任务管理器中我可以看到它,所以我可以通过VBA检索那种信息吗?

1 个答案:

答案 0 :(得分:4)

  

<强>的GetTickCount

     

GetTickCount函数检索自系统启动以来经过的毫秒数。它仅限于系统计时器的分辨率。要获取系统计时器分辨率,请使用GetSystemTimeAdjustment函数。

DWORD GetTickCount(VOID);
     

<强>参数

     

此功能没有参数。

     

<强>说明

     

经过的时间存储为DWORD值。因此,如果系统连续运行49.7天,时间将回绕到零。

     

库:使用Kernel32.lib。

需要声明API调用,请参阅帮助中的Declare。从库名称我们知道dll名称是kernel32.dll。

Public Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long

使用

msgbox GetTickCount()

请注意,这是未签名的。 VBA将所有多头视为已签名,因此较大的数字将打印为负数,而不是对它们进行总结。

另一种方法是使用WMI。

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * From Win32_OperatingSystem")

For Each objItem in colItems
    msgbox objItem.lastbootuptime & " " & objItem.caption
Next