I am fairly new to hta & vbscript. I have a **hta**
script downloaded from internet to delay reboot of computer.
There are button for delay such as 30 min, 45 min, 60 min etc. I would like to use combobox(Dropdown box) instead of button.
I also want my vbscript will work with dropdown box.
Below are the code of hta.
<html>
<head>
<title>Reboot Notification</title>
<hta:application id="oMyApp"
applicationname="Reboot Notification"
border="dialog"
BORDERSTYLE="normal"
caption="yes"
scroll="no"
MAXIMIZEBUTTON="NO"
MINIMIZEBUTTON="NO"
showintaskbar="no"
singleinstance="yes"
SYSMENU="no"/>
</head>
<script language = "VBScript">
Dim intMinutes
Dim intSeconds
Dim strHTAProc
Set objShell = CreateObject("Wscript.Shell")
Sub Window_OnLoad
resizeto 600,450
moveto 600,400
intMinutes = 15
intSeconds = 0
GetProcessID
'Run the RebootTimer Sub Procedure Every 1 Second
iTimerID = window.setInterval("RebootTimer", 1000)
End Sub
'*** Get the HTA Application Process ID
Sub GetProcessID
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select Name, Handle from Win32_Process Where Name = 'mshta.exe'")
For Each objProcess in colProcesses
strHTAProc = objProcess.Handle
Next
End Sub
'***** Update the Time to Selected Value *********
Sub Delay30
btnDisabled
intMinutes = 30
intSeconds = 0
End Sub
Sub Delay45
btnDisabled
intMinutes = 45
intSeconds = 0
End Sub
Sub Delay60
btnDisabled
intMinutes = 60
intSeconds = 0
End Sub
Sub Delay90
btnDisabled
intMinutes = 90
intSeconds = 0
End Sub
Sub Delay120
btnDisabled
intMinutes = 120
intSeconds = 0
End Sub
Sub Delay240
btnDisabled
intMinutes = 240
intSeconds = 0
End Sub
Function Document_onKeyDown()
Dim alt
alt = window.event.altKey
Select Case window.event.keyCode
Case 27,116
window.event.keyCode = 0
window.event.cancelBubble = true
Document_onKeyDown = False
Case 115
If alt Then
window.event.keyCode = 0
window.event.cancelBubble = true
Document_onKeyDown = False
End If
Case Else
Document_onKeyDown = True
End Select
End Function
'*************************************************
'*** Disable all of the Buttons Once One is Selected
Sub btnDisabled
btnDelay30.Disabled = True
btnDelay45.Disabled = True
btnDelay60.Disabled = True
btnDelay90.Disabled = True
btnDelay120.Disabled = True
btnDelay240.Disabled = True
End Sub
Sub RebootTimer
If intSeconds = 0 Then
If intMinutes = 0 and intSeconds = 0 Then 'Reboot the Workstations
objShell.AppActivate strHTAProc
objShell.Run "shutdown -r -f -t 0"
Else
intMinutes = intMinutes - 1
End If
intSeconds = 59
Else
intSeconds = intSeconds - 1
End If
'Update the Clock
Clock.innerHTML = "A Reboot Will Occur in " & "<strong>" & intMinutes & ":" & Right("00" & intSeconds, 2) & "</strong>"
'Activate the HTA Application at 1, 5, and 10 minutes to remind the user
If intMinutes = 1 and intSeconds = 0 Then
objShell.AppActivate strHTAProc
ElseIf intMinutes = 5 and intSeconds = 0 Then
objShell.AppActivate strHTAProc
ElseIf intMinutes = 10 and intSeconds = 0 Then
objShell.AppActivate strHTAProc
End If
End Sub
</script>
<body onLoad="window.focus()" STYLE="filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr='#9BC59F', EndColorStr='#508855')">
<h2 p style="text-align: center; "><span>Reboot Notification</h2></span></p>
<h3 p style="text-align: center; "><span>Your Workstation Requires A Reboot</h3></span></p>
<p style="text-align: center;"><span id="Clock"></span></p>
<p style="text-align: center;"><input id=btnDelay30 class="button" type="button" value="Delay 30 Minutes" name="btnDelay30" onClick="Delay30"/></p>
<p style="text-align: center;"><input id=btnDelay45 class="button" type="button" value="Delay 45 Minutes" name="btnDelay45" onClick="Delay45"/></p>
<p style="text-align: center;"><input id=btnDelay60 class="button" type="button" value="Delay 60 Minutes" name="btnDelay60" onClick="Delay60"/></p>
<p style="text-align: center;"><input id=btnDelay90 class="button" type="button" value="Delay 90 Minutes" name="btnDelay90" onClick="Delay90"/></p>
<p style="text-align: center;"><input id=btnDelay120 class="button" type="button" value="Delay 120 Minutes" name="btnDelay120" onClick="Delay120"/></p>
<p style="text-align: center;"><input id=btnDelay240 class="button" type="button" value="Delay 240 Minutes" name="btnDelay240" onClick="Delay240"/></p>
<p style="text-align: center; font-size:14px;"><span>If you have any questions please contact the Helpdesk at ext. ####</span></p>
</body>
</html>
EDIT
I can show dropdown box on the hta application but i don't know how to manage vbscript with that.
Basically you should get value from SELECT element. Let's say SELECT element has name btnDelay. To get value of btnDelay you should use btnDelay.Value
Enjoy