|
Back to Home: |
1. Почему VBS, а не, скажем, С++? Постарайтесь припомнить, как мы обучались в детстве. Ребенок видит сразу целый мир, он может охватить его одним взглядом, слышать своими ушами и трогать его руками. Не задумывается он над тем, что мир может быть на самом деле больше, чем виден, что есть еще океаны, горы, ледники и пустыни, которых рядом нет. Весь окружающий его мир -- един, и в то же время, такой огромный, поместился весь в его сознании. Это уже потом, удовлетворяя свое любопытство, он начнет дробить его на отдельные части, а затем изучать их. Чем более человек склонен к научным изысканиям, тем сильнее он подвержен болезни редукционизма, то есть веры в то, что мир управляется законами неких элементарных микрочастиц, веры, что общество движимо отдельными примитивными побуждениями людей, и уж конечно, каждый человек -- вершина природы. Постепенно человек теряет связь со смыслом окружающей его картины мира, все более углубляясь в созерцание размытых смысловых очертаний отдельных явлений и событий. Как же это связано с выбором языка программирования, на котором вам нужно решить свою прикладную задачу? Самым непосредственным образом. Когда вам предлагают ознакомиться с устройством автомашины, то вам рассказывают, что это -- педаль газа, это тормоз, это руль, это щетки очистителей стекла, а вот это рычажок для их включения. Было бы странным начинать с термодинамики, максвелловских уравнений электродинамики и теории газовых потоков, или с обоснованности, с точки зрения гармонии, линий сопряжения объемов крыла и дверцы. Разумно хотя бы начать с рассмотрения отдельно кузова, двигателя, электродвигателей, гидравлических систем и механических соединений, грамотной компоновки объемов. То есть того, что выглядит очевидно раздельным функционально. Теперь посмотрим, как сегодня радиолюбитель собирает то или иное устройство. Он не изготавливает сам кнопки и переключатели, не колдует с селеновыми пластинками, и не использует в качестве резисторов баночки с раствором солей различной концентрации. Он прекрасно видит отдельные функции, которые сначала явились ему как необходимые в его сознани и узнаёт их затем в кем-то заботливо подготовленных кирпичиках-подсистемах, имеющихся в продаже, и использует как данность доступную ЭДС из настенной розетки или элементов питания. Видя перед собой задачу, он мыслит сразу готовым устройством с вполне понятным смыслом, а решить головоломку с собиранием и стыковкой компонентов -- лишь дело времени. Самое главное, знать, что такой компонент уже кем-то сделан и не тратить попусту время на повтор его в собственном варианте. После такого сравнения можно наконец сказать, что VBS -- это плод долгого развития системы Windows, когда разработчики сознательно шли на дополнительные затраты и реализовывали почти каждую отдельную по смыслу задачу в качестве устройства со специально оставленным "многоконтактным разъемом" и разработанным протоколом общения по этому разъему. В результате, на сегодня Windows представляет собой кладку из таких кирпичиков-устройств, из каждого такого кирпичика торчит букет "разъемов" и все они работают по одному протоколу (интерфейсу). Это то, что Майкрософт называет COM-технологией. Образно говоря, ее смысл в том, чтобы вместо нового устройства-программы пересылать удаленному компьютеру набор команд на последовательность соединения его собственных компонентов. Удаленный компьютер как бы сам внутри себя создает необходимое устройство из имеющихся в нем самом COM-кирпичиков. За правильное подключение, то есть реагирование на ваши команды, отвечает Windows Host Engine, в данном случае это исполняемые файлы Wscript.exe и Cscript.exe, а за оставленные разъемы для подключения отвечает разработчик, то есть Майкрософт или иные разработчики., пожелавшие поддержать эту технологию. На сегодня COM-технологию поддерживают очень многие компании, изготовливающие сложные пакеты прикладных программ (Adobe, Symantic ...), оставляя концы для подключения. А для чего же тогда языки типа С++? Они созданы как раз для разработки таких COM-объектов, или, если задача очень узкая и самодостаточная, а также при желании обезопасить от нежелательного вмешательства в исполняемый код, получается тот же объект, но не COM, попроще, в котором не открывается интерфейс для доступа. Для того, чтобы понять, как работает компьютер, начинать нужно не с электродинамики, чтобы понять что там такое течет по проводничкам, и не с уравнений Кирхгофа, чтобы знать, как количественно течет, и не с команд процессора, и не с ассемблера. Начать нужно с попытки заставить работать то, что вы уже видите и осознаете на экране компьютера, в нужной вам степени автоматизации. Самое первое, что вы обнаружите, это возможность создания .bat файлов, то есть текстовых файлов, в которых в нужной последовательности записаны команды MS-DOS (например, копировать файлы, перемещать, добавлять один текст в конец другому и т.п.). Да, для этого, конечно, придется вначале просмотреть скучную вещь -- все команды MS-DOS, чтобы уложить в голове их возможности. Следующим этапом спускания по лесенке к более глубоким слоям как раз стоит VBS (Jscript). Поупражнявшись в нем, вы вскоре ощутите недостаток его инструментов для доступа к некоторым свойствам кирпичиков. Отсюда вы легко и незаметно перейдете уже к таким языкам как С++, вначале для того, чтобы соорудить транслятор (оболочку) для команд VBScript к требуемым свойствам или функциям, а затем и к собственно, написанию своих COM-объектов или законченных программ. |
|
2. Код для архивирования форума на by.ru (архив) Собственно, весь этап получения архива разбит на три части.
Для этого в дополнение к VBS коду понадобится программа ReGet и два скрипта ~7К. Есть удобный и бесплатный редактор специально для VBS, смотреть код нужно им, так как он правильно форматирует и подкрашивает ключевые слова, что сильно облегчает чтение [скачать ~192К] В скрипте я использовал ActiveX элемент, который является оболочкой для компонента webBrowser, составной части программы IE. Загляните сюда, чтобы его установить. |
|
3. Код для архивирования форума на web.referent.ru (второй, сырой вариант) Для работы скрипта необходимо установить ActiveX объект. Загляните сюда, чтобы его установить. Код с комментариями смотрите здесь. Комментарии появляются как обычные подсказки в системе Windows (маленькие желтые окошки), если остановить курсор на выделенном цветом номере строки. Работает это, правда, только в IE, хотя такое поведение для браузеров рекомендовано. |