2014-01-30 2 views
0

Итак, вот что мне интересно о мальчиках и девушках - прежде всего, я полный noob, LITERALLY только начинаю, так что не слишком усложняйтесь меня. У меня есть куча кода я написал, чтобы сделать приложение .hta:Приложение VBScript/HTA - Выполнение нескольких программ одновременно выбрано пользователем

> <html> <head> 
> 
> <script type="text/vbscript"> 
> 
> Dim objShell Sub Button1_OnClick() 
> 
> if box2.checked AND box1.checked then 
> 
> Set objShell = CreateObject("WScript.Shell") 
> objShell.Run("""%programfiles(x86)%\Mozilla Firefox\firefox.exe""") 
> Set objShell = Nothing 
> 
> Set objShell = CreateObject("WScript.Shell") objShell.Run("cmd.exe") 
> Set objShell = Nothing 
> 
> elseif box1.checked then 
> 
> Set objShell = CreateObject("WScript.Shell") objShell.Run("cmd.exe") 
> Set objShell = Nothing 
> 
> Elseif box2.checked then 
> 
> Set objShell = CreateObject("WScript.Shell") 
> objShell.Run("""%programfiles(x86)%\Mozilla Firefox\firefox.exe""") 
> Set objShell = Nothing 
> 
> 
> End If End Sub 
> 
> 
> </script> </head> <body> <font face=Calibri> Check the program you 
> would like to run! <br> Available programs to run for now: <br> <input 
> type="checkbox" name="box1">CMD <br> <input type="checkbox" 
> name="box2">Mozilla <br> <i>Choose which program(s) you'd like to run. 
> It is possible to run multiple programs at one time!</i></font><br> 
> <input type="button" name="btn1" onclick="Button1_OnClick" 
> value="Submit"><br> <div id="error"></div> 
> 
> 
> 
> </body> </html> 

Это прекрасно работает, как предполагается, когда я проверить обе программы, как они будут работать, когда я проверить одну из них , будет запущен только один. Но что, если у меня есть 50 различных программ в этом списке? Я полагаю, что есть более простой способ написать это, чем писать загрузку операторов if/else/elseif для каждой комбинации программ? Как уже упоминалось выше, я полностью заработал noob, возможно, я просто еще не обнаружил более простой способ ... Но вот почему я спрашиваю.

ответ

2

Вы можете использовать атрибуты элементов для своей цели.
Переверните все флажки, затем запустите процесс, используя его путь, сохраненный в вашем настраиваемом атрибуте, если он установлен. Готово.

<html> 
<head> 
    <script type="text/vbscript"> 
     Dim objShell 
     Set objShell = CreateObject("WScript.Shell") 

     Sub StartProcesses 
      Dim Checkbox 
      For Each Checkbox In Document.getElementsByName("process") 
       If Checkbox.Checked Then 
        objShell.Run """" & Checkbox.getAttribute("path") & """" 
       End If 
      Next 
     End Sub 
    </script> 
</head> 
<body> 
    <font face=Calibri> 
     Check the program you would like to run! <br> 
     Available programs to run for now: <br> 
     <div id="ProcessList"> 
      <input type="checkbox" name="process" path="cmd.exe">CMD <br> 
      <input type="checkbox" name="process" path="iexplore.exe">Internet Explorer <br> 
      <input type="checkbox" name="process" path="%programfiles(x86)%\Mozilla Firefox\firefox.exe">Firefox <br> 
      <input type="checkbox" name="process" path="calc.exe">Calculator <br> 
      <input type="checkbox" name="process" path="notepad.exe">Notepad <br> 
     </div> 
     <i>Choose which program(s) you'd like to run. It is possible to run multiple programs at one time!</i> 
    </font><br> 
    <input type="button" onclick="StartProcesses" value="Submit"><br> 
    <div id="error"></div> 
</body> 
</html> 
+0

Как бы вы добавить MsgBox отображающих предупреждение, когда ни один из флажков не проверяются? – WatskeBart

+0

@WatskeBart взгляните на https://gist.github.com/anonymous/e53b5fa495736ea6ba1dfa7dc32370b0 –

+0

Получил это, спасибо большое. – WatskeBart

Смежные вопросы