Программы и файлы Windows.
РАСШИРЕНИЯ ФАЙЛОВ.
DBX-файлы.
В файлах с расширением DBX хранятся записи программы Outlook Express. В этих файлах, называемых Банком сообщений, находятся письма, сообщения новостных групп и т.п. При желании, можно скопировать эти файлы на носитель информации для переноса данных в другой компьютер.
INF-файлы.
В данной статье мы рассмотрим, что представляет собой INF-файл, как с его помощью работать с другими файлами и реестром, создавать ярлыки, запускать программы и т.д.
Как известно, для более-менее серьезного программного продукта обычно требуется специальная программа инсталляции, с помощью которой пользователь сможет легко установить и так же легко удалить сам продукт. Существует много инструментальных средств, позволяющих быстро создавать инсталляционные пакеты. Однако, большинство из них добавляют к исходному размеру программы 200–500 Кб. А ведь это далеко не всегда радует. Серьезный продукт не обязательно должен быть внушительных размеров. И если вы хотите сделать инсталляцию доступной в Сети, то эти 200–500 Кб могут сильно сказаться на популярности продукта.
Как выйти из подобной ситуации? Здесь на помощь придут inf-файлы. Именно с помощью inf-файлов можно удалять, копировать другие файлы, добавлять информацию в реестр, в ini-файлы, создавать ярлыки, в общем, все то же, что обеспечивают громоздкие программы установки.
Перейдем к изучению спецификации inf-файлов.
Inf-файл представляет собой текстовый файл, который, содержит условия установки программного обеспечения.
Чтобы запустить inf-файл, нужно щелкнуть по нему правой кнопкой мыши и выбрать в открывшемся контекстном меню параметр Установить (Install). Но для подготовки дистрибутива можно воспользоваться IExpress, который поддерживает запуск .inf-файлов. Вооружившись этой программой, а также знанием спецификации .inf-файлов, можно создавать профессиональные инсталляционные пакеты.
Основную информацию в .inf-файле содержат секции, представленные в Таблице 1 (более сложные .inf-файлы могут иметь дополнительные секции).
Секция [Version] обязательно должна включать строку Signature="$Chicago$".
Эта секция определяет стандартный заголовок для всех inf-файлов Microsoft Windows. Если сигнатура будет не $Chicago$, операционная система Windows не примет inf-файл как принадлежащий любому из классов устройств, признанных Windows.
При написании сигнатуры вы можете использовать как верхний, так и нижний регистры букв — $Chicago$ или $CHICAGO$.
Секция установки [DefaultInstall] может содержать следующие параметры:
CopyFiles — копирование файлов;
RenFiles — переименование файлов;
DelFiles — удаление файлов;
UpdateInis — изменение данных в ini-файлах;
UpdateIniFields — изменение областей в .ini-файлах;
AddReg — добавление информации в реестр;
DelReg — удаление информации из реестра;
Ini2Reg — перемещение строки или секции в ini-файлах;
UpdateCfgSys — изменение файла Config.sys;
UpdateAutoBat — изменение файла Autoexec.bat.
Этим параметрам в качестве значения присваивается имя секции с файлами. Например:
[DefaultInstall]. CopyFiles=CopyHtml. [CopyHtml]. Example.html ;файл для копирования... [DestinationDirs] ;Секция расположения каталогов. DestExampleFiles=10 ;Каталог назначения (т.е. копировать в папку Windows).Чуть ниже представлены цифровые обозначения специальных папок, применяемые в .inf-файлах:
10 — C:\WINDOWS;
11 — C:\WINDOWS\System;
12 — C:\WINDOWS\SYSTEM\IOSUBSYS;
13 — C:\WINDOWS\COMMAND;
17 — C:\WINDOWS\Inf;
18 — C:\WINDOWS\Hlp;
20 — C:\WINDOWS\FONTS;
21 — C:\WINDOWS\SYSTEM\VIEWERS;
22 — C:\WINDOWS\SYSTEM\VMM32;
23 — C:\WINDOWS\SYSTEM\COLOR;
30 — Корневой загрузочный диск (обычно C:\).
Например, если нужно скопировать файл в папку Web, которая находится в каталоге Windows, сделайте это так:
[DestinationDirs]. DestExampleFiles=10,WEB.Так же можно поступить и с другими папками, находящимися в определенных каталогах.
Параметр CopyFiles содержит имя секции, где находятся имена файлов для копирования с исходного диска в папку назначения. Папка назначения определяется в секции [DestinationDirs] inf-файла. В следующем примере копируются два файла:
[Version]. Signature=$Chicago$ [DefaultInstall]. Copyfiles=ExampleCopyFiles ;секция может быть названа как угодно. [SourceDisksNames]. 1="Имя диска","",1. ;Перечисляете файлы, которые содержатся на диске. [SourceDisksFiles]Example.exe=1. Example.vxd=1. ;Перечисляете файлы для копирования (о цифрах через три запятые читайте ниже). [ExampleCopyFiles]. Example.exe,,,1. Example.vxd,,,1. ;Указываете папку, в которую будут копироваться файлы (10 — Windows). [DestinationDirs]. ExampleCopyFiles=10.Цифры через три запятые обозначают дополнительные флаги при копировании файлов и могут принимать значения, представленные в.
Параметр CopyFiles может копировать файл непосредственно из строки. Для этого перед именем файла нужно поставить символ @. В следующем примере копируются два текстовых файла:
CopyFiles=@myfile.txt, @anotherfile.txt.Параметр RenFiles содержит секции, которые в свою очередь содержат имена файлов для переименования. Папка, где будет происходить переименование, должна быть определена в секции [DestinationDirs] inf-файла. В следующий примере происходит переименование двух файлов из .bmp в .txt:
[Version]. Signature=$Chicago$ [DefaultInstall]. RenFiles=ExampleRenameOldFiles. [SourceDisksNames]. 1="Имя диска","",1. ;Перечисляете старые имена файлов. [SourceDisksFiles]. Example1.bmp=1. Example2.bmp=1. ;Определяете файлы, которые будут переименовываться. [ExampleRenameOldFiles]. Example1.txt, Example1.bmp. Example2.txt, Example2.bmp. ;Указываете папку, в которой будут переименовываться файлы (10 — Windows). [DestinationDirs]. ExampleRenameOldFiles=10.В параметре AddReg указываются секции, которые содержат информацию о добавлении или изменении ключей, значений в реестре. Следующий пример регистрирует вашу копию операционной системы Windows.
[Version]. Signature=$Chicago$ [DefaultInstall]. AddReg=ExampleAddRegistry. ;Определяете информацию, которая будет добавлена в реестр. [ExampleAddRegistry]. HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion", "RegDone",,"1". HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\ Welcome\RegWiz","@",,"1".С помощью этого файла в реестр добавляется следующая информация:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion. "RegDone"="1". HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Welcome\RegWiz. "@"="1".Обратите внимание на запятые в inf-файле. Если нужно добавить в реестр параметр по умолчанию, запятые должны быть проставлены иначе. Например, в рассмотренном нами ключе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion сделаем параметр по умолчанию равным единице (1):
HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion",,,"1".Ниже представлены корневые имена реестра, применяемые в inf-файлах.
HKCR — HKEY_CLASSES_ROOT;
HKCU — HKEY_CURRENT_USER;
HKLM — HKEY_LOCAL_MACHINE;
HKU — HKEY_USERS;
HKR — относительный ключ, используется классом installer; обычно применяется для дисков устройства.
В параметре DelReg указываются секции, которые содержат информацию об удалении подключей с параметрами и значениями из реестра. Следующий пример демонстрирует удаление подключа Graphviz со всеми параметрами и значениями этого раздела реестра — HKEY_CURRENT_USER\Software\AT&T\Graphviz:
[Version]. Signature=$Chicago$ [DefaultInstall]. DelReg=ExampleDelRegistry. ;Определяете информацию, которая будет удалена из реестра. [ExampleDelRegistry]. HKLM, "HKEY_CURRENT_USER\Software\AT&T\Graphviz".Корневые имена реестра, естественно, обозначаются так же, как и при добавлении информации в реестр.
В процессе установки можно прервать выполнение .inf-файла для показа пользователю какого-нибудь документа (после закрытия которого установка продолжится) или запустить определенный процесс. Следующий пример отображает файл справки About.hlp и текстовый файл About.txt, после чего запускает другой inf-файл — Example.inf:
[Version]. Signature=$Chicago$ [DefaultInstall]. AddReg=ExampleView. ;Отображение файла справки About.hlp. [ExampleView]. HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,%ABOUT%,,"WINHLP32.EXE — Main %1%\About.hlp". ;Отображение текстового файла About.txt. HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,%ABOUT%,,"notepad %1%\About.txt". ;Запуск файла сценария Example.inf. HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,%ABOUT%,,"rundll setupx.dll,InstallHinfSection DefaultInstall 132 %1%\Example.inf". ;Определяете название, которое будет отображаться в окне "Установка Windows 98". [Strings]. ABOUT="О программе...".После того как определенные в секции [ExampleView] команды выполнятся, записи, добавленные в реестр, будут автоматически удалены из него. Таким образом можно запускать и другие процессы, например апплеты Панели управления:
;Запуск апплета Панели управления Свойства: Система (SYSDM.CPL). HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,%ABOUT%,,"rundll32.В следующем примере показано, как с помощью inf-файла изменить содержимое ini-файла:
[Version]. Signature=$Chicago$ [DefaultInstall]. UpdateInis=ExampleAddINIfiles. ;Указываете папку, где находится файл system.ini — например в папке Example, которая расположена в каталоге C:\Program Files. 30,PROGRA~1\Example. [DestinationDirs]. ExampleAddINIfiles=30,PROGRA~1\Example. ;Определяете название файла и секции добавляемых, удаляемых или заменяемых строк. [ExampleAddINIfiles]. ;Добавляете в секцию [boot] файла system.ini строку shell=Example.exe. System.ini, boot,, "shell=Example.exe". ;Удаляете из секции [boot] файла system.ini строку shell=Example.exe. System.ini, boot, "shell=Example.exe". ;Заменяете из секции [boot] файла system.ini строку shell=Example.exe на shell=Example8.exe. System.ini, boot, "shell=Example.exe", "shell=Example8.exe".С помощью inf-файлов можно также создавать/удалять ярлыки в меню Пуск. Ярлык можно создать в уже созданной группе программ. Если таковой не существует, она будет создана автоматически.
Следующий пример создает группу программ Windows + + в меню Пуск > Программы и ярлыки к утилитам winipcfg.exe (Конфигурация IP), Regedit.exe (Редактор реестра) и Winfile.exe (Диспетчер файлов — только в Win98). Все они есть у вас на компьютере и лежат в папке Windows.
[Version]. Signature=$Chicago$ [DefaultInstall]. UpdateInis=ExampleShortcut. ;Определяете название и размещение ярлыков. [ExampleShortcut]. Setup.ini, progman.groups,, "group1=""Windows + +""". Setup.ini, group1,, """Конфигурация IP"",""""""%30%\WINDOWS\winipcfg.exe"""""",,,,""%30%\WINDOWS"",""winipcfg.exe""". Setup.ini, progman.groups,, "group1=""Windows + +""". Setup.ini, group1,, """Редактор реестра"",""""""%30%\WINDOWS\Regedit.exe"""""",,,,""%30%\WINDOWS"",""Regedit.exe""". Setup.ini, progman.groups,, "group1=""Windows + +""". Setup.ini, group1,, """Диспетчер файлов"",""""""%30%\WINDOWS\Winfile.exe"""""",,,,""%30%\WINDOWS"",""Winfile.exe""".Ярлык прописывается в таком порядке:
1. Название группы программ. В нашем случае — Windows + +.
2. Имя ярлыка.
3. Путь к программе, к которой создается ярлык.
4. Рабочий каталог, обычно тот же, что и путь. Некоторые программы не работают, если это условие не выполняется.
5. Имя программы с расширением.
Параметр %30%\ определяет корневой диск. Если вы хотите создать ярлык к файлу, который находиться в каталоге Program Files, смело прописывайте полный путь (не используйте короткие имена), например %30%\Program Files\Setup Generator Pro\Sgpro.exe.
Для удаления ярлыка нужно убрать все записи, указанные после имени ярлыка. В следующем примере удаляется ярлык Конфигурация IP из программной группы Windows + +.
[ExampleShortcut]. Setup.ini, progman.groups,, "group1=""Windows + +""". Setup.ini, group1,, """Конфигурация IP""".Если вы удаляете один из ярлыков программной группы, то удаление не затронет другие ярлыки. Для полного удаления программной группы нужно прописать данное действие для каждого ярлыка.
К сожалению, вы не сможете с помощью inf-файла обычным способом скопировать файлы с длинными именами. Поддержка длинных файловых имен в .inf-файлах немного усложнена, но главное, что она существует. Для этого нужно проделать следующее: исходный файл должен быть с коротким именем, после установки его имя нужно сделать подлиннее. Для удаления процесс повторяется в обратном порядке: длинное файловое имя делается коротким и удаляется уже файл с 8.3-именем. Происходит все это с помощью реестра. Для этих действий в реестре предусмотрены специальные ключи:
Следующий ключ используется для переименования файлов: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RenameFiles. Этот ключ используется для удаления файлов: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\DeleteFiles.Для действий переименования или удаления нужно добавить подключ с любым именем в соответствующую ветвь реестра. Минимум два ключа должны быть определены. Первый ключ содержит имя каталога, где будет происходить переименование или удаление файлов. Следующий ключ содержит имена файлов: первое — короткое, второе — длинное и его атрибуты, если нужно:
1 — Только для чтения;
2 — Скрытый;
3 — Системный.
Следующий пример демонстрирует переименование в каталоге C:\Files файла About.txt в About View files.txt и установление ему атрибута «Скрытый», а также переименование того же файла в подкаталоге Xmp папки C:\Files с установлением ему атрибута «Только для чтения»:
[Version]. Signature=$Chicago$ [DefaultInstall]. AddReg=Rename. [Rename]. HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles \Example,,,"%30%\Files". HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles \Example,About.txt,,"About View files.txt,2". HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles \SubDir,,,"%30%\Files\Xmp". HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles \SubDir,About.txt,,"About View files.txt,1".Ключи для удаления файлов имеют такую же структуру. Рассмотрим пример, который в каталоге C:\Files удаляет файл About View files.txt и такой же файл удаляет в подкаталоге Xmp папки C:\Files:
[Version]. Signature=$Chicago$ [DefaultUninstall]. AddReg=Delete. [Delete]. HKLM,Software\Microsoft\Windows\CurrentVersion\DeleteFiles. \Example,,,"%30%\Files". HKLM,Software\Microsoft\Windows\CurrentVersion\DeleteFiles \Example,About.txt,,"About View files.txt". HKLM,Software\Microsoft\Windows\CurrentVersion\DeleteFiles \SubDir,,,"%30%\Files\Xmp". HKLM,Software\Microsoft\Windows\CurrentVersion\DeleteFiles \SubDir,About.txt,,"About View files.txt".Параметры Example и SubDir могут быть любыми, например названием вашей программы, подкаталога и т.д. Важно, чтобы они были разными, т.к. переименование/удаление происходит в разных каталогах.
Данная статья не претендует на полноту, но надеюсь, поможет читателю освоить inf-файлы хотя бы поверхностно. Не бойтесь экспериментировать, но будьте предельно осторожны, особенно с процессами удаления.
HTML-приложения.
Начиная с Internet Explorer 5.0 появилась возможность создавать HTML-приложения с любым пользовательским интерфейсом при помощи JavaScript или VBScript. Причем, созданное html-приложение будет запускаться вне браузера и ничем не будет отличаться от стандартных Windows-приложений.
Созданное приложение будет присутствовать на панели задач, иметь свое собственное окно, меню и значок. Плюс ко всему отпадает необходимость подтверждать использование ActiveX-компонентов (система защиты Internet Explorer предусматривает появление предупреждающих сообщений при попытке использования ActiveX в HTML-документах). Вы имеете полный контроль над системой, включая чтение/запись файлов, данных в реестре, управление процессами. Для создания такого приложения достаточно обычного Блокнота (или другой текстовый редактор).
Данные html-приложения должны иметь расширение *.hta. Простейший случай будет выглядеть так:
<HTML> <HEAD> <ТIТLЕ>Моя программа</ТIТLЕ> <HTA:APPLICATION ID="MyFirstHTA". APPLICATIONNAME="firstHTA". BORDER=””. CAPTION="yes". ICON="my.ico". SHOWINTASKBAR="no". SINGLEINSTANCE="yes". SYSMENU="yes". WINDOWSTATE="normal". > </HEAD> <BODY BGCOLOR="ButtonFace" SCROLL="no"> </BODY> </HTML>Создайте подобный файл и запустите его. Как видите, появившееся окно ничем не напоминает браузер, однако вы можете использовать такую возможность, например, как Refresh документа (в нашем случае это главное окно будущего приложения) или изменение кодировки на лету. Для удаления полосы прокрутки мы воспользовались параметром SCROLL=no в тэге BODY, можно также воспользоваться специальными свойствами тэга HTA.
HTA-файлы обрабатывается программой mshta.exe, задача которой - обеспечить связь вашей программы с браузером.
Для того чтобы полностью использовать новые возможности, необходимо включить тэг HTA:APPLICATION между тэгами HEAD.
Как видно из приведенного примера, в тэге HTA:APPLICATION мы определяем специфические для HTA параметры. Рассмотрим их подробнее.
- ID - идентификатор, который позволяет обращаться к нему как к объекту в скриптах.
Например: alert(MyFirstHTA.applicationName);
- APPLICATIONNAME - возвращает имя вашего приложения. Должно быть уникальным.
- BORDER - позволяет задать тип окантовки окна. Доступны следующие значения:
Thick — толстая рамка, позволяющая изменять размер окна;
Dialog — обычная рамка без возможности изменять размер;
None — рамка отсутствует;
Thin — тонкая без возможности изменять размер;
Дополнительно указывается стиль рамки при помощи атрибута BORDERSTYLE, который может иметь следующие значения:
Normal — обычная;
Raised — приподнятая (3D);
Complex — комбинация стилей raised и sunken;
Static — может использоваться для окон, в которых не предусмотрен пользовательский ввод, - к примеру, для создания «флэш»-окон;
Sunken — вдавленная (3D).
- CAPTION - определяет, будет ли окно отображаться с заголовком. Может принимать значения yes или no.
- ICON - путь к файлу, содержащему значок (*.ico), содержащий картинку 32х32 пикселя. Можно использовать в качестве иконки и обычный bmp-файл - главное, чтобы соблюдались размеры картинки.
- SHOWINTASKBAR - если это свойство имеет значение yes, окно будет сворачиваться в панель задач, а также отображаться на Панели задач.
- SINGLEINSTANCE - позволяет разрешить запуск только одной копии вашего приложения; для того чтобы определить, запущенно ваше приложение во второй раз или нет, это свойство использует.
- APPLICATIONNAME. Может принимать значения yes/no.
- SYSMENU - будет ли отображаться системное меню. WINDOWSTATE - определяет, в каком виде приложение будет стартовать.
Принимает следующие значения:
Normal — обычное окно.
Minimize — свернуто.
Maximize — на весь экран.
- MAXIMIZEBUTTON и MINIMIZEBUTTON принимают значения yes/no и отвечают за отображение кнопок Maximize и Minimize соответственно в заголовке окна.
Помимо атрибутов, характеризующих внешний вид программы, может быть задана версия продукта — например, так: …VERSION=”5.0”…
Для управления полосой прокрутки в окне HTA есть целых два параметра: SCROLL со значениями yes/no/auto и SCROLLFLAT — yes/no.
Если у вас установлен IE5.5, то вы можете воспользоваться дополнительным атрибутом NAVIGABLE, который позволяет переход по ссылке в окне HTA.
Для управления текстом предусмотрен параметр SELECTION (yes/no).
В дополнение ко всему перечисленному, вы можете иметь доступ к параметрам командной строки посредством свойства commandLine. Внимание, это свойство не имеет HTML-синтаксиса и может быть доступно только из скриптов! Немаловажно заметить, что все перечисленные параметры во время выполнения доступны только для чтения.
Давайте приступим к написанию своего первого скриптового приложения - создадим простейший текстовый редактор.
<HTML> <HEAD> <TITLE>hta demonstration</TITLE> <OBJECT ID=cmdlg CLASSID="clsid:F9043C85-F6F2-101A-A3C9-08002B2F49FB"> </OBJECT> Этот объект обеспечивает нашему приложению возможность открывать и сохранять документы. Для того чтобы его использовать, на вашем компьютере должен находиться файл COMDLG32.OCX. Он может быть установлен вместе Visual Basic, например. Библиотека должна быть зарегистрирована при помощи regsvr32.exe(не может быть, чтобы у вас не было этой программы). Следующая командная строка выполняет все необходимые действия: regsvr32 COMDLG32.OCX. </HEAD> <BODY> <INPUT ID=btnOpenFile TYPE=button VALUE="Open File" ONCLICK="fileOpen()"> <INPUT ID=btnSaveFile TYPE=button VALUE="Save File" ONCLICK="fileSave()"> Две кнопки, для открытия и сохранения файлов: <BR> <TEXTAREA id=txtArea rows=14 wrap=off cols=38. style="WIDTH: 500px; HEIGHT: 400px"> </TEXTAREA> Текстовое поле, в котором мы будем редактировать текст. <SCRIPT LANGUAGE=JavaScript> var cdlOFNFileMustExist = 4096; var cdlOFNHideReadOnly = 4;Константы для работы с диалогами открытия и сохранения файлов:
CdlOFNFileMustExist — пользователь может вводить только имя существующего файла, в противном случае возникнет предупреждение.
CdlOFNHideReadOnly — прячет опцию Hide Only (открыть только для чтения).
var ForReading = 1; var ForWriting = 2;Константы для работы с файлами:
ForReading — файл открывается для чтения;
ForWriting — для записи в файл.
Var fs = new ActiveXObject("Scripting.FileSystemObject");Создаем объект для доступа к файловой системе:
cmdlg.CancelError = false; cmdlg.Flags = cdlOFNFileMustExist + cdlOFNHideReadOnly; cmdlg.FilterIndex = 1;И настраиваем общие свойства для диалога открытия и сохранения:
function fileOpen(). { cmdlg.DialogTitle = "Choose a file for editing".Заголовок диалога:
Cmdlg.Filter = "Text file (*.txt)|*.txt|"+"Web content files(*.htm;*.html;*.hta;*.asp)|*.htm;*.html;*.hta;*.asp";Фильтр, для отображения групп файлов.
cmdlg.ShowOpen();Вызываем диалог открытия и в случае если пользователь осуществил выбор пытаемся прочитать файл и отобразить его.
if (!(cmdlg.FileName == "")). { var txtStream = fs.OpenTextFile(cmdlg.FileName,ForReading,false); txtArea.value = txtStream.ReadAll(); txtStream.Close(); } } function fileSave(). { cmdlg.DialogTitle = "Save file as"; cmdlg.Filter = "Text file (*.txt)|*.txt|Custom type(*.*)|*.*"; cmdlg.ShowSave(); if (!(cmdlg.FileName == "")). { var txtStream = fs.OpenTextFile(cmdlg.FileName,ForWriting,true); txtStream.Write(txtArea.value); txtStream.Close(); } } </SCRIPT> </BODY> </HTML>Естественно, дополнительными тэгами все вкусности скриптовых приложений не исчерпываются. Особую ценность представляет возможность повторного использования однажды написанного кода, создание универсальных компонентов, с которыми можно работать аналогично COM-компонентам. Дополнительную информацию, а также примеры и некоторую документацию вы можете найти по следующим адресам:
Http://www.wshscripting.com/ — открытый исходный код и множество примеров скриптов для WSH (Windows Scripting Host).
Также стоит посетить http://www.serialscripter.com/, где помимо бесплатных HTA-приложений, сопровождающихся подробными описаниями, находится неплохая подборка ссылок на ресурсы, тем или иным образом связанные со скриптовым программированием.
Источник: http://www.mycomp.com.ua/
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
- 75.
- 76.
- 77.
- 78.
- 79.
- 80.
- 81.
- 82.
- 83.
- 84.
- 85.
- 86.
- 87.
- 88.
- 89.
- 90.
- 91.
- 92.
- 93.
- 94.
- 95.
- 96.
- 97.
- 98.
- 99.
- 100.
- 101.
- 102.
- 103.
- 104.
- 105.
- 106.
- 107.
- 108.
- 109.
- 110.
- 111.
- 112.
- 113.
- 114.
- 115.
- 116.
- 117.
- 118.
- 119.
- 120.
- 121.
- 122.
- 123.
- 124.
- 125.
- 126.
- 127.
- 128.
- 129.
- 130.
- 131.
- 132.
- 133.
- 134.
- 135.
- 136.
- 137.
- 138.
- 139.
- 140.
- 141.
- 142.
- 143.
- 144.
- 145.
- 146.
- 147.
- 148.
- 149.
- 150.
- 151.
- 152.
- 153.
- 154.
- 155.
- 156.
- 157.
- 158.
- 159.
- 160.