Показать полную графическую версию : [решено] Запрос значений через htm/hta в vbs скрипте
prostoshu
08-03-2012, 09:17
Всем доброго времени суток.
Есть скрипт .vbs. Суть следующего скрипта такова, при первом запуске скрипт запрашивает от пользователя параметры для дальнейшей работы, после запроса всех параметров начинается работа скрипта.
Варианты ответов на вопросы ДА или НЕТ, т.е. булево. Я использую метод Popup, но с ростом скрипта отвечать на вопросы всё дольше и дольше.
Помогите сделать запрос значений через html или hta форму, чтобы в этой форме проставить галочки (checkbox), а потом считать их в скрипте.
Вот Вам упрощённая болванка HTA:
<html id="appHTML">
<head>
<meta charset="windows-1251">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="Content-Language" content="ru">
<meta http-equiv="MSThemeCompatible" content="yes">
<title>Sample title</title>
<hta:Application
Icon = "%SystemRoot%\System32\write.exe"
Id="oHTASample"
ApplicationName="HTA Sample"
Border="normal"
BorderStyle="normal"
Caption="yes"
ContextMenu="no"
InnerBorder="yes"
MaximizeButton="no"
MinimizeButton="yes"
Navigable="no"
Scroll="auto"
ScrollFlat="no"
Selection="no"
ShowInTaskbar="yes"
SingleInstance="yes"
SysMenu="yes"
Version="1.0"
WindowState="normal"
/>
<style type="text/css">
BODY {
font: x-small Verdana, Arial, sans-serif;
color: WindowText;
background-color: ButtonFace;
}
.Row{
clear:both;
}
.Left{
float:Left;
clear:none;
}
.Right{
float:Right;
clear:none;
}
.NonValid { color:FireBrick; }
#Status { font: xx-small; }
</style>
<script language="VBScript">
Option Explicit
'----------------------------------------------------------------------
Sub btnStart_OnClick
With document
.getElementByID("Status").innerText = "Идёт обработка…"
.getElementByID("SelFile").disabled = True
.getElementByID("TextField").disabled = True
.getElementByID("CheckBox1").disabled = True
.getElementByID("CheckBox2").disabled = True
.getElementByID("CheckBox3").disabled = True
.getElementByID("btnStart").disabled = True
.getElementByID("tagBody").style.cursor = "wait"
End With
' Опосредованно вызываем основную процедуру обработки документа
setTimeout "MainProc", 0
End Sub
'----------------------------------------------------------------------
'----------------------------------------------------------------------
' Основная процедура
'----------------------------------------------------------------------
Sub MainProc()
Dim strFileName
Dim strText
Dim boolCheckBox1, boolCheckBox2, boolCheckBox3
With document
strFileName = .getElementByID("SelFile").value
strText = .getElementByID("TextField").value
boolCheckBox1 = .getElementByID("CheckBox1").checked
boolCheckBox2 = .getElementByID("CheckBox2").checked
boolCheckBox3 = .getElementByID("CheckBox3").checked
End With
MsgBox _
"Текст:" & vbTab & strText & vbCrLf & _
"Файл:" & vbTab & strFileName & vbCrLf & _
"Переключатель1:" & vbTab & boolCheckBox1 & vbCrLf & _
"Переключатель2:" & vbTab & boolCheckBox2 & vbCrLf & _
"Переключатель3:" & vbTab & boolCheckBox3, _
vbOKOnly + vbInformation, "strText"
With document
.getElementByID("Status").innerText = ""
.getElementByID("SelFile").disabled = False
.getElementByID("TextField").disabled = False
.getElementByID("CheckBox1").disabled = False
.getElementByID("CheckBox2").disabled = False
.getElementByID("CheckBox3").disabled = False
.getElementByID("btnStart").disabled = False
.getElementByID("tagBody").style.cursor = "auto"
End With
End Sub
'----------------------------------------------------------------------
</script>
</head>
<body id="tagBody" scroll="auto">
<span Class="Row">
<span Class="left"><span id="lblSelFile">1. Укажите файл:</span></span>
<span Class="right"><input type="File" name="SelFile" value="" size="64"></span>
</span>
<span Class="Row">
<span Class="left"><span id="lblTextField">2. Введите текст:</span></span>
<span Class="right"><input type="Text" name="TextField" value="" size="40"></span>
</span>
<span Class="Row">
<span Class="left">3. Установите флажки:</span>
</span>
<span Class="Row">
<span Class="left">
<input type="CheckBox" name="CheckBox1">
<span id="lblCheckBox1">CheckBox1</span>
</span>
</span>
<span Class="Row">
<span Class="left">
<input type="CheckBox" name="CheckBox2">
<span id="lblCheckBox2">CheckBox2</span>
</span>
</span>
<span Class="Row">
<span Class="left">
<input type="CheckBox" name="CheckBox3">
<span id="lblCheckBox3">CheckBox3</span>
</span>
</span>
<span Class="Row">
<span Class="left"><span id="lblStart">4. Нажмите кнопку [Начать]</span></span>
<span Class="right"><input type="Button" name="btnStart" value="Начать"></span>
</span>
<hr Class="Row" />
<span Class="Row">
<span id="Status"> </span>
</span>
</body>
<script language="VBScript">
Option Explicit
With document
.getElementByID("CheckBox1").checked = False
.getElementByID("CheckBox2").checked = True
.getElementByID("CheckBox3").checked = False
End With
'Позиционирование и изменение размера окна
With window
.resizeTo tagBody.scrollWidth + 25, tagBody.scrollHeight + 32
.moveTo (.screen.availWidth - tagBody.offsetWidth) \ 2, (.screen.availHeight - tagBody.offsetHeight) \ 2
End With
</script>
</html>
prostoshu
08-03-2012, 17:17
Спасибо, то что нужно
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.