Search Tools Links Login

Retrieving System Uptime


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

About this post

Posted: 2017-09-23
By: vb6boy
Viewed: 947 times

Categories

Windows

Visual Basic 6

Attachments

No attachments for this post

Special Instructions

Uses the following Windows API:


Loading Comments ...

Comments

No comments have been added for this post.

You must be logged in to make a comment.