JavaScript单个选择选项在HTA中的多个值



我有一个工作的hta,可以用vbscript唤醒/重新启动/关闭多个计算机。一个选择下拉菜单,带有3个按钮执行3个不同的功能。

主HTA:

        <select name="Control_PC">
            <option value="0" selected>Select Computer</option>     
            <option value="1">PC1</option>
            <option value="2">PC2</option>
            <option value="3">PC3</option>
            <input type="button"    value="WAKE UP"         onClick="executewake">
            <input type="button"    value="RESTART"         onClick="executereboot">
            <input type="button"    value="SHUTDOWN"        onClick="executeshutdown">  
        </select>          

使用vbscript:

	' SELECTION REBOOT PCs
	Sub executereboot
		if Control_PC.value = 1 then 
			Set Shell = CreateObject("Wscript.Shell") : command = "shutdown -r -t 01 -m \PC1"
			Shell.Run command, 1, false
		Elseif Control_PC.value = 2 then 
			Set Shell = CreateObject("Wscript.Shell") : command = "shutdown -r -t 01 -m \PC2"
			Shell.Run command, 1, false
		Elseif Control_PC.value = 3 then 
			Set Shell = CreateObject("Wscript.Shell") : command = "shutdown -r -t 01 -m \PC3"
			Shell.Run command, 1, false
		end if	
	End Sub		
	
	
	' SELECTION SHUTDOWN PCs
	Sub executeshutdown
		if Control_PC.value = 1 then 
			Set Shell = CreateObject("Wscript.Shell") : command = "shutdown -s -t 01 -m \PC1"
			Shell.Run command, 1, false
		Elseif Control_PC.value = 2 then 
			Set Shell = CreateObject("Wscript.Shell") : command = "shutdown -s -t 01 -m \PC2"
			Shell.Run command, 1, false
		Elseif Control_PC.value = 3 then 
			Set Shell = CreateObject("Wscript.Shell") : command = "shutdown -s -t 01 -m \PC3"
			Shell.Run command, 1, false
		end if	
	End Sub			
	
	
	' SELECTION WAKE PCs
	Sub executewake
		if Control_PC.value = 1 then 
			Set Shell = CreateObject("Wscript.Shell") : command = "toolswol.exe 10604B7609CE"
			Shell.Run command, 1, false
		Elseif Control_PC.value = 2 then 
			Set Shell = CreateObject("Wscript.Shell") : command = "toolswol.exe 10604B7609F2"
			Shell.Run command, 1, false
		Elseif Control_PC.value = 3 then 
			Set Shell = CreateObject("Wscript.Shell") : command = "toolswol.exe 10604B7E829B"
			Shell.Run command, 1, false
		end if	
	End Sub	

现在,我知道如何使用一个值在JavaScript中使用一个按钮创建选择选项:

   
		<select id="Control_PC">
				<option value="" selected>Select Computer</option>
				<option value="shutdown -r -t 01 -m \PC1">PC1</option>
				<option value="shutdown -r -t 01 -m \PC2">PC2</option>
				<option value="shutdown -r -t 01 -m \PC3">PC3</option>
				<input 	type="button" value="Reboot" 	onClick="runSelection(document.getElementById('Control_PC').value)">
		</select>

但是如何使用JavaScript创建三个按钮以与VBScript版本相同,并具有优雅的解决方案,该解决方案将使用所有唤醒/重新启动/关闭命令作为一个函数中的不同值,例如:

选择计算机PC1PC2PC3

任何帮助将不胜感激:(

谢谢大卫

,似乎您可以通过将变量发送到您所调用的函数来完成您想要做的事情。

例如,您可以将MAC地址设置为选择框的值:

    <select name="Control_PC">
        <option value="" selected>Select Computer</option>      
        <option value="10604B7609CE">PC1</option>
        <option value="10604B7609F2">PC2</option>
        <option value="10604B7E829B">PC3</option>
    </select>

然后,您可以将每个按钮设置为使用您想做的操作的参数调用相同的功能,例如:

    <input type="button"    value="WAKE UP"         onClick="RunSelection('wake')">
    <input type="button"    value="RESTART"         onClick="RunSelection('restart')">
    <input type="button"    value="SHUTDOWN"        onClick="RunSelection('shutdown')"> 

然后,您可以根据该参数的值和选择框的值配置该VBScript函数以执行特定的操作。这样:

Sub RunSelection(strAction)
    If Control_PC.selectedIndex = 0 Then MsgBox "Select a computer.",vbExclamation : Exit Sub 
    pcName = Control_PC.Options(Control_PC.selectedIndex).innerText
    macAddress = Control_PC.value
    Select Case strAction
        Case "wake"
            strCommand = "toolswol.exe " & macAddress
        Case "restart"
            strCommand = "shutdown -r -t 01 -m \" & pcName
        Case "shutdown"
            strCommand = "shutdown -s -t 01 -m \" & pcName
    End Select 
    MsgBox "Running command: " & strCommand
End Sub 

有很多方法可以做您想做的事情,但这应该可以帮助您开始。

编辑OP的评论:

我认为您要做的是这样的。

<select name="Control_PC">
    <option value="" selected>Select Computer</option>      
    <option restart="shutdown -r -t 01 -m \PC1"  shutdown="shutdown -s -t 01 -m \PC1" >PC1</option>
    <option restart="shutdown -r -t 01 -m \PC2"  shutdown="shutdown -s -t 01 -m \PC2" >PC2</option>
    <option restart="shutdown -r -t 01 -m \PC3"  shutdown="shutdown -s -t 01 -m \PC3" >PC3</option>
</select>
<input  type="button" value="Restart"    onClick="RunSelection(Control_PC.Options(Control_PC.selectedIndex).getAttribute('restart'))">
<input  type="button" value="Shutdown"    onClick="RunSelection(Control_PC.Options(Control_PC.selectedIndex).getAttribute('shutdown'))">

本质上,您正在创建自定义属性并为其分配一个值。

Control_PC.Options(Control_PC.selectedIndex)将获得所选选项,getAttribute将获得您指定的属性的值。

相关内容

  • 没有找到相关文章

最新更新