Windows 7 Forums Search
Welcome to Windows 7 Forums. Our forum is dedicated to helping you find solutions with any problems, errors or issues you are experiencing with Windows 7. The Windows 7 forum also covers news and updates and has 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.

 
01-06-2012   #1


Windows 7 Home Premium 64-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?



\js\uptime.vbs:

Code:
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()
        Next
 
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 ComputerStatus_v3.gadget.zip (322.8 KB, 14 views)

Last edited by Brink; 01-07-2012 at 07:18 AM.. Reason: merged
My System SpecsSystem Spec
01-07-2012   #2


Vista64/Win7-64
 
 


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
01-07-2012   #3


Windows 7 Home Premium 64-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:
Code:
            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
.


Reply

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



Thread Tools



Similar Threads for: Anybody know VB Scripting? Trying to fix an obsolete Gadget.
Thread Forum
databases obsolete? System Security
Obsolete folders Installation & Setup
Removal of unwanted/obsolete add on,help please Browsers & Mail
All your AV software is now Obsolete !!! System Security


All times are GMT -5. The time now is 07:15 PM.



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
  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30