Поля для ввода информации (дочерние окна контролей)
Если Вы исполняете свою программу на JScript (или VBScript) под дополнительным хостом скриптов, то Вы можете обращаться к объекту Window (его методам и свойствам).

Поля формы (поля ввода информации): Вы можете разместить на поверхности своего диалогового окна поля для ввода текста, прокручиваемые списки, стандартные иконки Windows ...). В терминологии программы это дочерние окна контролей:

// Создаем настоящую "форму" - диалоговое окно с полями ввода
// Файл: controls.w_js (JScript)
// Фиксируем размер нашей "формы", в средних символах

// ЕСЛИ ВЫ ЗАДАДИТЕ РАЗМЕР ОКНА В СРЕДНИХ СИМВОЛАХ
// ВАША ФОРМА БУДЕТ РАБОТАТЬ ПРИ ЛЮБОМ РАЗРЕШЕНИИ ЭКРАНА

   Window.width = 40 * Window.cxChar;
   Window.height = 20 * Window.cyChar;

// Координаты полей задаются не в пикселах!!!!
// Специальные диалоговые координаты:
//             По Х: В 1/4 ширины символа
//             По Y: В 1/8 высоты символа
// Создать поле формы:
// AddControl(id,type,Xdlg,Ydlg,Wdlg,Hdlg,"Text")

// Обычные кнопки
Window.AddControl(1, 0, 0, 0, 80,12,"Обычная кнопка");
Window.AddControl(2, 1, 0,12, 80,12,"Кнопка по умолчанию");

// Radiobutton (только один список на одно окно)
Window.AddControl(3,3,85,0,80,12,"Пункт первый");
Window.AddControl(4,15,85,10,80,12,"Пункт второй"); //checked

// Checkbox (сколько угодно)
Window.AddControl(5,2,0,24,80,12,"Опция 1");
Window.AddControl(6,14,0,32,80,12,"Опция 2"); // checked

// Статические контроля для текста
// Выравнивание внутри заданного Вами прямоугольника !!!
Window.AddControl(7,5,82,20,50,24,"Выравнивание влево и авт. перенос строк");
//Window.AddControl(0,6,82,20,50,24,"Выравнивание центр и авт. перенос строк");
//Window.AddControl(0,7,82,20,50,24,"Выравнивание вправо и авт. перенос строк");

// Иконки, но не из файла, а из сист. ресурсов Windows
Window.AddControl(1000,8,0,44,6,6,"32517");  // application
Window.AddControl(0,8,13,44,6,6,"32516"); // info
Window.AddControl(0,8,26,44,6,6,"32514"); // ask
Window.AddControl(0,8,38,44,6,6,"32513"); // stop
Window.AddControl(0,8,52,44,6,6,"32515"); // 

// Ввод одной строки текста (может быть длиннее поля ввода)
Window.AddControl(8,9,0,60,80,10,"Ввод строки текста");

// ListBox (Выбор из списка)
Window.AddControl(9,10,0,72,80,14,"Первый вариант|Второй вариант");

// Combobox (выбор из списка) или набор с клавиатуры
Window.AddControl(10,11,0,82,80,29,"Первая подсказка|Вторая подсказка"); 

// Текстовый блок с вертикальной прокруткой и автопереносом строк
Window.AddControl(11,12,82,48,58,34,"Автоперенос набираемых строк");

// Текстовый блок - обе прокрутки, без авт. переноса
Window.AddControl(12,13,82,84,58,34,"Без авт. переноса");

// Можно загрузить Bitmap file (но нужно указать абс. путь) 
// Window.AddControl(0,16,54,112,40,40,"1.bmp");

// Строка прогресса
Window.AddControl(1024,17,0,120, 136, 12, "50");



// Обработка действий с контролями
function WM_COMMAND(id)
{ 
  if (id == 2) {
  var shell=new ActiveXObject("WScript.Shell");
  var text = Window.GetControlText(id);
      shell.Popup(text,0,"Controls",0);
  Window.SetControlText(id,"Hello World!!!");
  Window.ChangeIcon(1000,"%SystemRoot%\\System32\\WScript.exe", 3);
  };
};
 'VBScript controls.w_vbs
' Фиксируем размер нашей "формы", в средних символах
' Чтобы форма не портилась при изменении разрешения экрана
   Window.width = 40 * Window.cxChar
   Window.height = 20 * Window.cyChar

' Координаты полей задаются не в пикселах!!!!
' Специальные диалоговые координаты:
'             По Х: В 1/4 ширины символа
'             По Y: В 1/8 высоты символа
' Создать поле формы:
' AddControl id,type,Xdlg,Ydlg,Wdlg,Hdlg,"Text" 

' Обычные кнопки
Window.AddControl 1, 0, 0, 0, 80,12,"Обычная кнопка" 
Window.AddControl 2, 1, 0,12, 80,12,"Кнопка по умолчанию" 

' Radiobutton  только один список на одно окно 
Window.AddControl 3,3,85,0,80,12,"Пункт первый" 
Window.AddControl 4,15,85,10,80,12,"Пункт второй"  'checked

' Checkbox  сколько угодно 
Window.AddControl 5,2,0,24,80,12,"Опция 1" 
Window.AddControl 6,14,0,32,80,12,"Опция 2"  ' checked

' Статические контроля для текста
' Выравнивание внутри заданного Вами прямоугольника !!!
Window.AddControl 7,5,82,20,50,24,"Выравнивание влево и авт. перенос строк" 
'Window.AddControl 0,6,82,20,50,24,"Выравнивание центр и авт. перенос строк" 
'Window.AddControl 0,7,82,20,50,24,"Выравнивание вправо и авт. перенос строк" 

' Иконки, но не из файла, а из сист. ресурсов Windows 
Window.AddControl 1000,8,0,44,6,6,"32517"   ' application
Window.AddControl 0,8,13,44,6,6,"32516"  ' info
Window.AddControl 0,8,26,44,6,6,"32514"  ' ask
Window.AddControl 0,8,38,44,6,6,"32513"  ' stop
Window.AddControl 0,8,52,44,6,6,"32515"  ' 

' Ввод одной строки текста  может быть длиннее поля ввода 
Window.AddControl 8,9,0,60,80,10,"Ввод строки текста" 

' ListBox  Выбор из списка 
Window.AddControl 9,10,0,72,80,14,"Первый вариант|Второй вариант" 
Notes:
  1. Для контролей желательно назначать различные (id), установка одинакового id в некотрых случаях может привести к странным эффектам (последовательному "срабатыванию" нескольких контролей).
  2. Window.ChangeIcon(id_control_icon, path_to_dll_or_exe, number_icon)

    Функцмя "ChangeIcon" заменяет иконку, отображаемую контролем, на иконку из .exe .dll или .ico файла. Вы должны указать порядковый номер иконки в файле (0 - первая). Можно использовать "Window.CountIcons(path_to_dll_or_exe)" для определения общего числа иконок в файле.

  3. Контроль (или группу контролей) можно динамически удалить методом Window.DelControl(id)
    Window.UpdateWindow()
  4. Клавишей Tab можно последовательно перемещать фокус ввода между контролями, допускающими изменение содержимого (кроме Combobox)
  5. Информацию о состоянии любого из контролей можно получить по его id:
    Window.GetControlText(id)
  6. Установить текст в поле ввода из скрипта (индекс для Listbox) можно с помощью вызова метода Window.SetControlText(id,text)
Содержание
Дополнительный хост скриптов.
JScript and VBScript are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.