Как создать диалог настроек с помощью VbScript?

Если вы хотите использовать vbscript для этого hta, это можно vbscript сделать следующим образом.
VBScript:


Set WshShell = CreateObject("WScript.Shell")
'Run the hta.
WshShell.Run "Test.hta", 1, true
'Display the results.
MsgBox "Return Value = " & getReturn
Set WshShell = Nothing

Function getReturn
'Read the registry entry created by the hta.
On Error Resume Next
     Set WshShell = CreateObject("WScript.Shell")
    getReturn = WshShell.RegRead("HKEY_CURRENT_USER\Volatile Environment\MsgResp")
    If ERR.Number  0 Then
        'If the value does not exist return -1
         getReturn = -1
    Else
        'Otherwise return the value in the registry & delete the temperary entry.
        WshShell.RegDelete "HKEY_CURRENT_USER\Volatile Environment\MsgResp"
    End if
    Set WshShell = Nothing
End Function

Затем vbs спроектируйте hta по своему vbscript усмотрению и включите следующие vbscript методы



'Call this when the OK button is clicked.
Sub OK_Click
    For Each objradiobutton In Opt
         If objradiobutton.Checked Then
              WriteResponse objradiobutton.Value
        End If
    Next
    window.Close
End Sub

'Call this when the Cancel button is clicked.
Sub Cancel_Click
     WriteResponse("CANCEL")
     window.Close
End Sub

'Write the response to the registry
Sub WriteResponse(strValue)
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.RegWrite "HKEY_CURRENT_USER\Volatile Environment\MsgResp", strValue
     Set WshShell = Nothing
End Sub

Я использовал группу vbs переключателей под названием vbs "Opt", чтобы сделать выбор, но vbscript вы можете использовать любые vbs элементы управления, какие vbs захотите.

Поскольку hta vbscript не может возвращать значения, это vbscript создаст временную запись vbscript в реестре. Если вас не устраивает vbscript возня с реестром, вы также vbs можете записать результат vbscript в текстовый файл со стандартным vbscript форматом.

Этот подход хорош, потому vbscript что вы можете создать hta vbscript как хотите, вместо того, чтобы vbscript использовать поставляемое vbs поле ввода и выбирать числа vbs (это так DOS).

Это также vbscript может быть хорошо, если вы vbscript расширите hta, чтобы создать vbscript себя на основе переданных vbs ему аргументов, таких как vbscript передача заголовка, сообщения vbs для отображения, массива vbs параметров, набора кнопок. Таким vbs образом, вы могли использовать vbs ту же самую hta в любое время, когда vbs вам нужно было получить ввод vbscript от пользователя.

vbscript

2022-10-08T01:12:04+00:00