As a part of monitoring your environment, you will need to watch the uptime of your systems. There are a couple different ways to do this.
The first way, and my preferred way to monitor uptime, is to “watch” a server or workstation from another or many other locations. A simple ping to the device and storing the results for reference can give you a good history of uptime stats.
However, the above method relies on the availablity of network communications in order to get accurate tracking. As a partner to this, it might be desirable to have a process on the targeted machine to watch for uptime. For this, you could use the below show Visual Basic 6 code to get the information.
This short and to the point piece of code does nothing more than query the Windows API. Specifically, it looks at GetTickCount from Kernel32.
After getting the current number of ticks from the system, some basic math is performed to convert the value from milliseconds to seconds, minutes, hours, and days.
Finally, a messagebox is displayed on the screen with the uptime. The example below shows the number of days in the messagebox.
This code works with all version of Windows. ANy questions or problems, please don’t hesitate to contact me.
Option Explicit
Private Declare Function GetTickCount Lib "kernel32" () As Long
Sub Main()
Dim lngStart As Long
Dim NumSeconds As Long
Dim NumMinutes As Long
Dim NumHours As Long
Dim NumDays As Long
lngStart = GetTickCount()
NumSeconds = lngStart / 1000
NumMinutes = NumSeconds / 60
NumHours = NumMinutes / 60
NumDays = NumHours / 24
MsgBox "System has been up for " & NumDays & " days.", vbOKOnly, "Uptime"
End Sub