Retrieving System Uptime

By | 2017-09-23

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

Author: dwirch

Derek Wirch is a seasoned IT professional with an impressive career dating back to 1986. He brings a wealth of knowledge and hands-on experience that is invaluable to those embarking on their journey in the tech industry.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.