Windows 7 Forums
Welcome to Windows 7 Forums. Our forum is dedicated to helping you find support and solutions for any problems regarding your Windows 7 PC be it Dell, HP, Acer, Asus or a custom build. We also provide an extensive Windows 7 tutorial section that covers a wide range of tips and tricks.

Windows 7: Anybody know VB Scripting? Trying to fix an obsolete Gadget.

06 Jan 2012   #1

Windows 8 Pro (32-bit)
Anybody know VB Scripting? Trying to fix an obsolete Gadget.

I've had this gadget That I really love, but it has a couple bugs. The problem is it's no longer supported by the developer. I had managed to fix one (simple formatting error), but the other one I located to being inside a VBScript file. Problem is, I know shit about Visual Basic. I'm pretty sure the problem is in a single line of code , and that would be easier to fix then rewriting the whole thing in JavaScript (especially since I most likely will be upgrading to Windows 8 soon)

The problem is with system uptime. it shows a big negative number, even though I restated earlier today.

Actually it seems to work fine on a computer running 32-bit Windows 7... But how do i fix this?


Function GetUpdateInterval
    UpdateInterval = 1
    System.Gadget.Settings.write "UpdateInterval", UpdateInterval
    GetUpdateInterval = UpdateInterval * 1000
End Function
Sub uptime
    Set objLocator = CreateObject("WbemScripting.SWbemLocator")
    Set objWMIService = objLocator.ConnectServer(MachineName, "root\cimv2")
    Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
        For Each objOS in colOperatingSystems
            dtmBootup = objOS.LastBootUpTime
            dtmLastBootupTime = WMIDateStringToDate(dtmBootup)
            dtmSystemUptimeSecs = DateDiff("s", dtmLastBootUpTime, Now)
            intSecsTotal     = dtmSystemUptimeSecs
            intDays           = Fix( intSecsTotal / 86400 )
            intSecsRemaining = ( intSecsTotal - ( intDays * 86400 ))
            intSecsTotal     = intSecsRemaining
            intHours         = Fix( intSecsTotal / 3600 )
            intSecsTotal    = ( intSecsTotal - ( intHours * 3600 ))
            intMinutes      = Fix( intSecsTotal / 60 )
            uptimeTxt.innerText = intDays & " days " & intHours & " hours " & intMinutes & " minutes"
            setTimeout "uptime()", GetUpdateInterval()
End Sub
Function WMIDateStringToDate(dtmBootup)
    WMIDateStringToDate = CDate(Mid(dtmBootup, 5, 2) & "/" & _
    Mid(dtmBootup, 7, 2) & "/" & Left(dtmBootup, 4) _
    & " " & Mid (dtmBootup, 9, 2) & ":" & _
    Mid(dtmBootup, 11, 2) & ":" & Mid(dtmBootup,13, 2))
End Function
Attached is the Gadget itself.

Attached Files
File Type: zip (322.8 KB, 113 views)
My System SpecsSystem Spec
07 Jan 2012   #2


It looks to me like the issue is not with the code but the internal functions it calls. For some reason they seem to return negative numbers...I have no idea why. Try putting a - in front of each occurrence of Fix. This should turn the negative value into a positive.
My System SpecsSystem Spec
07 Jan 2012   #3

Windows 8 Pro (32-bit)

Actually I figured it's because the function receives a 64bit value, even when Sidebar is in 32bit mode. It's always off by 127 days, so I just changed line 19 to automatically add the difference, so it looks like this:
            intSecsTotal     = dtmSystemUptimeSecs + 10972800
Works fine now. Would need to be changed to work on a 32bit machine, but it's fine for my needs.
My System SpecsSystem Spec

 Anybody know VB Scripting? Trying to fix an obsolete Gadget.

Thread Tools

Similar help and support threads for2: Anybody know VB Scripting? Trying to fix an obsolete Gadget.
Thread Forum
How to clean up drop-down menus of obsolete printers Hardware & Devices
Obsolete folders Installation & Setup
How to copy an obsolete program from an old computer? Software
How to Make New Stuff From Your Piles of Obsolete Tech Chillout Room
Removal of unwanted/obsolete add on,help please Browsers & Mail
All your AV software is now Obsolete !!! System Security

Our Sites

Site Links

About Us

Find Us

Windows 7 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 7" and related materials are trademarks of Microsoft Corp.

Designer Media Ltd

All times are GMT -5. The time now is 04:03 PM.
Twitter Facebook Google+

Windows 7 Forums

Seven Forums Android App Seven Forums IOS App