Как изменить фон моего компьютера с Windows 7
Я хотел бы поблагодарить RNDr. Ярослав Пеликан, доктор философии. за руководство диссертацией бакалавра и его ценные советы относительно содержания и формальных аспектов. Я также хотел бы поблагодарить всю мою семью за поддержку во время учебы и мою девушку за ее терпение.
Эта диссертация посвящена истории языка сценариев AutoIt от начала до текущей версии 3. Его использование для управления компьютерами с операционными системами Microsoft Windows описано и проиллюстрировано на нескольких примерах, три из которых реализованы.
AutoIt AutoIt v3 язык сценариев автоматизация программирования управление компьютером Введение
Многие администраторы компьютерных сетей сталкиваются с проблемой эффективного администрирования компьютеров с минимальными усилиями. Их часто заставляют выполнять над ними одну и ту же задачу или операцию, иногда неоднократно, что может быть очень утомительно и отнимать много времени. Если администратору приходится выполнять задачу в течение длительного периода времени или несколько раз, может оказаться целесообразным посвятить усилия разработке сценария или программы для автоматизации данного действия. Эти усилия затем окупятся в виде значительной экономии времени, несмотря на то, что человеческий мозг, в отличие от компьютерного кода, склонен делать ошибки при выполнении монотонных задач.
В прошлом для этих целей было разработано множество инструментов, от простых программ, облегчающих конкретную деятельность, до надежных приложений, содержащих полный набор инструментов, и, например, языков сценариев, позволяющих автоматизировать различные задачи. . Именно для этой цели был разработан язык сценариев AutoIt. Однако на протяжении нескольких лет его концепция несколько раз пересматривалась, и на данный момент это полноценный язык программирования, ориентированный на работу с операционной системой Microsoft Windows.
Язык AutoIt уже сталтермин и часто используемый инструмент многими администраторами. Именно у них было больше всего запросов на значимые улучшения, некоторые даже принимали непосредственное участие в дальнейшей разработке языка. В настоящее время язык имеет очень широкую пользовательскую базу, контролируемую разработку и сообщения об ошибках. Тем не менее, о нем есть только одна очень краткая публикация, а много информации разбросано по разным местам, в основном на сайтах.
Цель работы состоит в том, чтобы собрать эту часто труднодоступную информацию и описать в хронологическом порядке развитие языка от начала до наших дней, включая ключевые события, которые значительно повлияли на язык или в значительной степени способствовали его удобству использования. Неотъемлемой частью является описание самого языка и его возможностей, с иллюстративными примерами и указанием других возможностей использования.
Работа начинается с описания истории и развития языка программирования AutoIt, включая приложения, специально разработанные для него. Во второй главе описывается язык до текущей версии 3, а также кратко рассматривается текущая разработка и ее ответвление AutoHotkey. В третьей главе работы уже рассматриваются возможности языка и описываются основные особенности и способы использования в отдельных подразделах. Некоторые из них наглядно объясняются примерами в следующей четвертой главе. Программы и скрипты были запрограммированы для этой работы с учетом возможного удобства их использования в основном для администраторов. В заключении диссертация резюмирует свой вклад в данную проблему. Также имеется приложение, содержащее документацию и инструкции для приложений, описанных в третьей главе, а сами приложения можно найти на прилагаемом компакт-диске.
История и развитие языка AutoIt Причина создания и начало развития
История языка AutoIt
название можно перевести как AutomatizeTo
начал писаться в октябре 1998 года. Именно тогда Джонатану Беннету была поставлена задача установить в своей компаниибольшее количество приложений на компьютерах с операционной системой MS Windows NT4. Вскоре он обнаружил, что большинство этих приложений не допускают так называемой автоматической установки или автоматической установки, и начал искать решение. Он нашел его в программе Microsoft ScriptIt, переведенном сценарии WinBatch, предназначенном для автоматизации установки. К сожалению, эта программа имела ряд недостатков, например, невозможность указать задержку между нажатиями клавиш или изменить рабочий каталог. Кроме того, выяснилось, что некоторые функции по-прежнему некорректно работают в MS Windows 2000 с ядром NT5.
В декабре того же года Беннетт решил запрограммировать собственное приложение на C, надеясь получить больший контроль над автоматизацией, особенно над вышеупомянутой задержкой между нажатиями кнопок.
В январе 1999 года Джонатан Беннетт выпустил первую версию AutoIt с синтаксисом, похожим на ScriptIt. Пока возможности были ограничены, но эта первая версия уже выполнила все, на что надеялся Джонатан Беннет. Содержались следующие команды:
Эти функции обеспечивают достаточный контроль над автоматизацией установок. По сравнению со ScriptIt, AutoIt v1 размером 40 КБ был даже на 600 КБ меньше, позволял менять рабочий каталог, устанавливать задержку между нажатиями клавиш, а автор обещал быстрое исправление любых найденных ошибок. Следующий код является примером синтаксиса AutoIt v1.
.
Разработка AutoIt v1 завершилась в апреле 1999 г. версией 1.8, которая, в дополнение к вышеупомянутым командам, была способна, например, к нескольким предопределенным условиям ( IfWinExist , IfWinNotExist , IfWinActive , IfWinNotActive , IfMsgBox , IfExist , IfNotExist ), MsgBox и InputBox, кроме того, скрипт мог имитировать большинство клавиш, включая левый и правый клики мыши. Функция [ADLIB] также очень помогла, позволяя перехватывать и обрабатывать неожиданные окна во время выполнения скрипта. Язык также включал в себя оператор Goto, по существу примитивный предшественник вызовов функций.
AutoIt изначально разрабатывался под лицензией GPL 1. Эта лицензия не ограничивает использование, а гарантирует права пользователей. Автор обязан, например, предоставить исходный код заявителю, либо сохранив его в общедоступном месте, либо пообещав предоставить его по запросу. Важным условием является так называемое авторское лево, означающее, что производная работа также должна находиться под лицензией GPL.
Хотя любой мог участвовать в разработке AutoIt, поскольку исходный код был общедоступным, Джонатан Беннет руководил разработкой и первоначально работал в одиночку. Со временем среди сторонников появилось несколько программистов, достаточно опытных, чтобы Джонатан Беннет сформировал с ними официальную команду разработчиков. Предложения и изменения других программистов должны были проходить через эту группу.
По мере роста популярности росло и количество запросов на дополнительные функции, которые Джонатан Беннет пытался удовлетворить.исполнять. Но он понял, что исходный код не был оптимальным и внедрение новых функций будет проблематичным. Поэтому в августе 1999 года AutoIt v2 была выпущена в версии 2.0, которая была оптимизирована таким образом, чтобы в будущем можно было легко добавить больше новых функций. Обновление до новой версии могло привести к тому, что старые скрипты не работали. Однако изменения не были такими значительными, и поэтому возможные корректировки не представляли сложности.
В течение следующих двух лет новые функции в основном добавлялись по запросам пользователей, поэтому серьезных изменений не произошло. Однако заслуживают внимания операции с реестром и текстовыми строками Windows, команда FileInstall и команды для работы с файлами и папками.
С количеством новых функций рос и исходный код, что приводило к его путанице. Поэтому в мае 2001 года Джонатан Беннет выпустил новую версию 2.60, полностью переписанную на C++. Эта модификация не имела никакого эффекта с точки зрения обычных пользователей, однако лучшая читаемость кода облегчила работу разработчиков.
Последняя версия AutoIt v2 с серийным номером 2.64 была выпущена в декабре 2002 года. В то время уже существовало большое сообщество со своим веб-сайтом и дискуссионным форумом
- http://www.autoitscript.com
(проверено 18 мая 2010 г.)
для обмена информацией и идеями.
Aut2Exe и Exe2Aut
В сентябре 1999 года вместе с версией 2.1 был выпущен компилятор Aut2Exe, созданный для трансляции скриптов в исполняемый файл с расширением .exe. Джонатан Беннет снова был автором.
Переводчик был большим преимуществом для администраторов, так как позволял запускать скрипт без присутствия самой программы AutoIt. Также было выгодно, что сценарии стали нечитаемыми для других, поэтому администраторам не нужно было беспокоиться о том, чтобы сделать части сценария общедоступными.
В версии2.62 также была добавлена программа Exe2Aut, предназначенная для обратной трансляции программы в исходный код. Можно было заблокировать эту опцию паролем, не зная какой обратный перевод был невозможен.
AutoItX и AutoItDLL
Вместе с публикацией второй версии AutoIt (1999 г.) Беннетт также выпустил AutoItX, который представлял собой версию языка ActiveX, переведенную в файл AutoItX.dll. Этот файл предназначался для заполнения пробелов при программировании на других языках, которые не могли делать то, в чем преуспел AutoIt. Для использования методов, хранящихся в этом файле, файл AutoItX.dll должен быть зарегистрирован на клиентском компьютере с помощью regsvr32.exe. Однако для этой регистрации требовались права администратора, поэтому в некоторых случаях ее использование могло быть более сложным.
В 2002 году Джонатан Беннетт выпустил AutoItDLL, или AutoIt, переведенный в файл dll. Цель была та же, что и в AutoItX, но в отличие от него в других языках функции вызывались напрямую. Преимущество было очевидным, библиотека не нуждалась в регистрации в системе и, следовательно, облегчала запуск полнофункциональных программ без необходимости прав администратора.
И AutoItX, и AutoItDLL были обновлены вместе с AutoIt, последний раз — 17 декабря. 2002 года с версией 2.64. Когда AutoIt v3 был выпущен, обе упомянутые библиотеки были объединены в AutoItX3.
В период с 2001 по 2003 год разработка сильно замедлилась, не в последнюю очередь из-за того, что Джонатан потерял желание продолжать работу. В основном это было вызвано неорганизованным исходным кодом языка, созданным непродуманным синтаксисом. После обсуждений с другими разработчиками он выбрал новую версию AutoIt v3. Они поставили перед собой цель наделить язык новыми возможностями, чтобы он больше походил на настоящий язык программирования. С этим они объединили необходимость создания нового синтаксиса, который сохранял бы ясность исходного кода даже после длительной разработки и многочисленных модификаций. Как только Джонатан Беннет создал скелет, они присоединились кк проекту присоединилось больше людей, и работа ускорилась.
Благодаря этой помощи первая бета-версия была выпущена уже в марте 2003 года, всего через два месяца после вышеупомянутого решения. Сто бета-версий были посвящены дальнейшим модификациям и публичному тестированию, пока AutoIt v3 (v3.0.100) не был официально выпущен 29 февраля 2004 г.
Более понятный синтаксис, радикально расширенная функциональность, включение качественных и полезных пользовательских функций (т.н. UDF), очень подробная справка, система отчетов об ошибках, собственный форум и многое другое привлекли в несколько раз больше пользователей, чем предыдущие версии . AutoIt уже перерос свою первоначальную цель и стал универсальным языком программирования для общего использования. Набор новых опций настолько широк, что более подробно он будет описан в третьей главе.
Изменение условий лицензии
AutoIt с самого начала разрабатывался под лицензией GPL, которая, среди прочего, позволяет другим использовать часть исходного кода, написанного под указанной лицензией, без необходимости спрашивать разрешения у авторов. Описывать такое использование в документации нового проекта — не только моральное обязательство.
Во время разработки AutoIt v3 Крис Маллетт попросил команду разработчиков AutoIt интегрировать созданную им систему создания клавиш. Эта просьба не была услышана, в основном по техническим причинам, поэтому Крис Маллет решил использовать открытый исходный код AutoIt v2 для создания самостоятельного проекта AutoHotKey
.
- http://www.autohotkey.com
(проверено 19 мая 2010 г.)
В документации AutoHotKey упоминается использование частей исходного кода AutoIt v2 точно в соответствии с условиями GPL. Но его авторам такое замечание показалось непропорциональным, учитывая усилия, которые они вложили в свой проект. Подобные случаи случались и в прошлом, но никогда в таких масштабах. Это событие вызвало дискуссию об изменении лицензионных сборовусловия, чтобы никто не мог использовать их работу без их разрешения.
Принимая решение о новой лицензии, Джонатан Беннет выдвинул несколько условий, главным образом, чтобы AutoIt оставался бесплатным программным обеспечением любой ценой. Сложнее было решить, стоит ли просто поменять лицензию и оставить исходный код открытым или сделать его доступным только для ограниченного числа проверенных людей. Оба варианта имели веские аргументы, но в итоге остановились на втором.
AutoIt v3, а именно 3.1.0, была последней версией, выпущенной под лицензией GPL. Все нижеперечисленное выпущено под новой бесплатной лицензией с закрытым исходным кодом, что, однако, не означает никаких изменений для большинства пользователей. AutoIt по-прежнему бесплатен, в том числе для коммерческого использования, но исходный код больше не публикуется. Изменение лицензионных условий приветствовали и коммерческие структуры, в некоторых случаях запрещающие использование программ под лицензией GPL.
Команда разработчиков теперь состоит из закрытого сообщества программистов, среди которых непросто проникнуть. Приглашение предлагается людям, которые принимают активное участие в создании UDF или вспомогательных инструментов. Несмотря на это существенное ограничение, разработка не замедлилась и, как оказалось, скорее помогла всему проекту.
Текстовый редактор есть в каждом языке программирования. Конечно, исходный код также можно написать в блокноте или любом другом текстовом редакторе, однако общепринятой практикой является разработка собственного редактора или его адаптация под нужды уже существующего языка.
В случае AutoIt v3 его флагманским редактором стал редактор SciTE4AutoIt3, что означает текстовый редактор на основе Scintilla для AutoIt v3. НАУКА
- http://www.scintilla.org/SciTE.html
(проверено 19 мая 2010 г.)
, созданный Нилом Ходжсоном, представляет собой редактор, разработанный специально для целей программирования. Таким образом, основные функции включают подсветку синтаксиса,индикаторы ошибок и завершение кода. В настоящее время SciTE может различать почти восемьдесят языков программирования, и добавить лексер для большего количества языков очень просто.
Этот редактор был отредактирован Йосом ван дер Занде с помощью команды разработчиков AutoIt и размещен на его сайте. SciTE4AutoIt3 предлагается как часть установки AutoIt v3, но также был создан отдельный установочный пакет, который также содержит несколько служебных приложений.
Пример пользовательского интерфейса SciTE4AutoIt3 Koda
Поскольку графический интерфейс запрограммированных приложений может быть создан с помощью AutoIt v3, создание программы, использующей так называемый WYSIWYG
, было лишь вопросом времени.
Что видите, то и получаете
Методы
заменят кропотливое ручное форматирование графических элементов. Koda FormDesigner.
был создан для этой цели.
Этот редактор был создан Мартином Вудсом и Дмитрием Юдиным в среде разработки Delphi, и даже сам редактор очень похож на Delphi IDE. В простом для понимания приложении пользователь может выбрать работу с предопределенными шаблонами или начать с пустого окна. Для создания доступен 31 элемент, каждый из которых может задавать или изменять множество свойств, таких как стиль, цвет или стиль шрифта.
Редактор в основном подходит для создания проектов с более обширным графическим интерфейсом. С его помощью можно легко и относительно быстро создать окончательный дизайн, задать все свойства и экспортировать результат в исходный код AutoIt v3. Затем этот код, конечно, должен быть дополнен функциональными свойствами.
Koda FormDesigner все еще находится в разработке, но уже в текущей версии 1.7.2
полностью функционален и позволяет создавать все графические элементы, которые поддерживает AutoIt v3.
Пример пользовательского интерфейса программы Koda FormDesigner Дополнительные инструменты
Следующие инструментыони не настолько обширны, чтобы каждый из них заслуживал отдельного подраздела, но они настолько полезны для разработчиков, что хотя бы упоминаются.
AutoIt3Wrapper
В настоящее время не объявлено об изменении, которое радикально повлияет на концепцию AutoIt v3. Работа ведется в основном над исправлением недавно обнаруженных ошибок и добавлением функций. Таким образом, пользовательские функции, определяемые пользователем, наиболее полезны для пользователей. Эти библиотеки не являются частью исходного кода AutoIt, поэтому их очень легко добавлять и использовать.
Параметры языка AutoIt v3 для администрирования ОС Windows
AutoIt v3 — это язык программирования третьего поколения для операционной системы Microsoft Windows. Основываясь на решении группы разработчиков сделать AutoIt v3 полноценным языком программирования, синтаксис был разработан и переписан так, чтобы он больше напоминал базовые языки. AutoIt v3 является нетипизированным, поэтому он использует только один тип данных, называемый вариантом, который может содержать любое присвоенное значение. В зависимости от характера данной переменной программа затем оценивает, какая операция будет выполнена. Однако в определенных ситуациях может произойти неправильная оценка, поэтому доступны функции, которые обусловливают определенный расчет.
AutoIt v3 претерпел бурное развитие с момента своего создания и в этой версии предлагает широкие возможности использования. Язык очень универсален, поэтому было бы очень сложно описать все возможности. Следующие подразделы посвящены только тем областям, которые используются в главе 4.
Автоматизация и скрипты
Сценарии были первоначальной целью языка AutoIt и сохранились во всех последующих версиях. От первоначального числа функций AutoIt v1, состоящего из двенадцати скриптовых функций, AutoIt v3 вырос до более чем 400 базовых функций и почти 2000 интегрированных пользовательских функций. Вместе с возможностью создания циклов и условий вы можете создавать сложные сценарии, которые могут действовать в непредвиденных ситуациях.
Код
представляет собой переписанный код, использованный в главе 2 в качестве примера. Видно, что названия исходных функций сохранились, изменился только синтаксис.
Каждая автоматизация, например установка, требует нажатия нескольких кнопок или ввода необходимого текста. Этого можно добиться с помощью функций Send() и MouseClick(). Эти функции имитируют действия пользователя, отправляя виртуальные сигналы, которые затем оцениваются системой как нажатия.кнопки мыши или клавиатуры. Поскольку AutoIt v3 работает с кодовой таблицей UNICODE, любой символ может быть отправлен в качестве параметра функции Send().
Для того, чтобы щелчки мышью или нажатия клавиш производились в нужный момент, необходимо проверять состояние системы и отображаемые окна. Функции из группы Управление окнами выполняют эту задачу, у них есть задача, например, проверить, активно ли еще нужное окно, или вывести это окно на передний план.
При необходимости практически любую задачу можно автоматизировать и повторять любое количество раз с подходящей комбинацией элементов управления и операций. Затем сценарий можно распространить и запустить, что значительно сэкономит время.
Выпущено 7 февраля 2005 г.
AutoIt предлагает функции для создания графического пользовательского интерфейса (GUI). Таким образом, этот вариант выдвинул AutoIt на передний план среди таких языков, как Visual Basic. Таким образом, пользователи могут добавлять в свои программы среду для интерактивной проверки и отображения данных.
Функции AutoIt v3 позволяют пользователям создавать 22 различных элемента, которые можно использовать для создания простых и очень сложных графических интерфейсов. Пример показан на рис. 3.1.
Графические интерфейсы используют два метода запуска, и можно выбрать любой из них. Режим MessageLoop использует цикл, в котором вызывается функция GUIGetMsg(). На основе возвращаемого значения затем принимается решение о продолжении программы. Для второго метода в начале исходного кода необходимо указать определение Opt(«GUIOnEventMode», 1) и добавить функцию GUICtrlSetOnEvent(ControlHandle, NameOfControl) в каждый элемент управления. Итак, программапрерывает выполнение только тогда, когда пользователь меняет состояние одного из элементов управления. Однако оба режима эквивалентны и могут быть выбраны в соответствии с предпочтениями программиста.
GUI, созданный с поддержкой AutoIt v3 COM
COM, или компонентная объектная модель, представляет собой интерфейс для соединения различных программ с использованием объектов и их методов без необходимости знать их внутреннюю реализацию. Хотя AutoIt v3 предоставляет большое количество пользовательских функций и UDF, использование COM может сэкономить несколько строк исходного кода или выполнить операции, для которых одного AutoIt уже недостаточно.
Если, например, нам нужно отобразить окно «Свойства экрана», мы можем использовать имитацию щелчка правой кнопкой мыши и несколько условных строк кода. Однако гораздо проще вызвать это окно с помощью COM.
Первая строка создает объект, указатель на который хранится в переменной. Затем во второй строке вызывается метод ControlPanelItem для этого объекта, который вызывает окно Display Properties .
.
Эти объекты не являются частью AutoIt v3, а являются частью сторонних программ. Доступные объекты в данной установке операционной системы можно найти с помощью программы просмотра объектов OLE/COM, которая является частью Windows 2000 Resource Kit Tool и доступна для бесплатной загрузки с веб-сайта Microsoft. Эта программа загружает все COM-объекты установленных приложений в систему и отображает их методы, которые затем можно использовать при программировании.
Различия в использовании AutoIt v3 между версиями MS Windows
AutoIt привязан к операционной системе Microsoft Windows, которая также находится в стадии разработки и отдельные версии которой могут отличаться. Таким образом, при создании сценария или программы программист должен учитывать эти различия и вносить соответствующие коррективы. Начиная с версии 3.2.10.0 также доступна 64-битная версия AutoIt, предназначенная для 64-битной операционной системы.Windows XP или более поздняя версия.
Майкрософт Виндовс 9Х
По состоянию на 16 мая 2010 г.
более распространенная операционная система, чем Windows Vista. После того, как Microsoft прекратит поддержку Windows XP, она, скорее всего, станет доминирующей операционной системой на персональных компьютерах. Поэтому можно ожидать, что основной интерес команды разработчиков AutoIt постепенно сместится к этой версии системы. Примеры использования AutoIt v3
В следующих подразделах описываются несколько способов использования AutoIt v3 для управления компьютером. Эти примерыони показывают очень мало из того, что он на самом деле позволяет, но ясно и просто показывают принципы программирования на этом языке. Первые три примера реализованы и доступны на компакт-диске, приложенном к работе.
Демонстрация взаимодействия с графическим интерфейсом и скриптами
ScriptDemo — это демо-скрипт, разделенный на несколько частей. Все части перечислены в диалоговом окне, созданном функцией MsgBox(), в котором соответственно комментируются следующие события.
Автоматизация установки – Для демонстрации автоматизации процесса установки была выбрана программа Linos Zip Compression
.
- http://www.slunecnice.cz/sw/ziputility/
(проверено 19 мая 2010 г.)
от Linos Software. Принцип автоматизации уже был описан в главе 3.1. Автоматизация блокнота
Монтирование файловой системы удаленного компьютера
При удаленном администрировании выгодно иметь доступ к компьютерным файлам. Для этого необходимо настроить общие папки или включить административный общий доступ к папкам 4 . ConnectDrive упрощает подключение удаленных компьютеров, предоставляя графическоеинтерфейс. Преимуществом является, среди прочего, отображение сообщений об ошибках, что облегчает исправление.
Необходимым условием для успешного подключения является знание IP-адреса или имени целевого компьютера, данных для входа и, прежде всего, доступность в сети.
Управление программой ConnectDrive осуществляется с помощью графического интерфейса, созданного сразу после запуска. Для упрощения визуализации окна отдельные элементы скрываются или становятся видимыми во время взаимодействия. Поля редактирования используются для ввода значений, а кнопки используются для управления программой. Информацию о прогрессе предоставляют четыре графических элемента, более подробная информация отображается в строке состояния.
В следующем коде первая строка создает область для рисования графики и сохраняет указатель на переменную. Вторая строка задает цвет фона элемента управления, третья — цвет отображаемой фигуры. Четвертая строка указывает, что эта фигура является эллипсом, затем параметры задают размеры эллипса, создавая круг.
Графические элементы отображают состояние отдельных шагов программы с помощью цветов. Поскольку графическая область уже установлена, все, что вам нужно сделать, это перерисовать содержимое. Первая строка в следующем коде задает цвет, а вторая — форму. Третья строка необходима для принудительной перерисовки, чтобы изменение вступило в силу.
Пример настроек ConnectDrive
Поведение программы можно настроить в представлении «Настройки», которое можно сохранить в файле ConnectDrive.INI. Если при запуске программы обнаруживается наличие этого файла, данные загружаются функцией IniRead(), в противном случае используются базовые настройки. Во время работы программы выполняются соответствующие операции согласно настройкам.
Нажатие кнопки «Исследовать» запускает процесс _Explore(), целью которого является открытие сетевого диска или папки. Для успешного подключения необходимо ввести имя целевого компьютера или его IP-адрес, логин в соответствующие поляимя, пароль и путь к сетевой папке. В качестве пути можно использовать административную общую папку, но она должна быть включена на целевом компьютере
.
Простой общий доступ к файлам
не должен быть включен
Сначала необходимо подключить сетевой диск, чтобы отобразить проводник удаленного компьютера. Первый параметр, пустая строка, не назначает букву сетевой папке. Другой из 0 параметров устанавливает непостоянное соединение.
Предыдущий шаг требуется, если доступ к удаленному компьютеру защищен паролем. Это приведет к принудительному входу в систему, и на следующем шаге уже будет открыта нужная папка.
Каждое соединение сохраняется, и если автоматическое отключение установлено пользователем, функция DriveMapDel() отключает их при выходе из программы. Однако, поскольку эти подключения не являются постоянными, они будут разорваны при перезагрузке компьютера.
Программа psexec из набора инструментов PsTools Марка Руссиновича 5 используется для подключения к удаленному компьютеру. Следующий фрагмент кода, скомпилированный в двоичный файл, будет включать файл psexec.exe, а затем при запуске он установит этот файл в указанное место. В этом случае путь опускается, поэтому файл устанавливается в ту же папку, из которой была запущена программа.
Следующая строка кода запускает psexec.exe в командной строке с четырьмя параметрами. Последний определяет, какая программа должна быть запущена на целевом компьютере. Затем он отправляет возвращаемые значения в командную строку. Однако, поскольку в этом случае работает сама командная строка, она действует как консоль целевого компьютера.
В отображаемой командной строке удаленного компьютера можно использовать команды операционной системы MS-DOS для достижения желаемых результатов.
Сбор компьютерной информации
При управлении компьютерами, особенно при их большом количестве, регулярное получение информации может быть затруднено. Еслиесли администратор не предпочитает неприятную ручную работу, он может использовать AutoIt v3.
Например, администраторам может потребоваться актуальная информация как об аппаратном, так и о программном обеспечении. Однако большее количество компьютеров увеличивает сложность получения данных. Для такой задачи целесообразно подготовить программу, которая получает требуемую информацию и выдает ее в понятном виде.
Однако информация о компьютере не обязательно должна использоваться только для статистического обзора, по отдельности она также может использоваться для адаптации работы программы к конкретной среде и условиям. Таким образом, более общая написанная программа оценивает обстоятельства во время своей обработки, на основе которых она выполняет правильные операции.
Задачей программы GetInfo является сбор и отображение подробной информации о компьютере, на котором она была запущена. Эта программа работает только в операционной системе Microsoft Windows и требует минимального количества вычислительных ресурсов. GetInfo состоит из одного файла GetInfo.exe и не требует запуска каких-либо других файлов. Вывод можно сохранить в текстовом формате, формат по умолчанию — txt.
Графический интерфейс программы GetInfo создается постепенно во время ее работы и может быть разделен на две части. При запуске создается главное окно с двумя элементами управления. На данном этапе это меню и кнопка сканирования.
Вторая фаза начинается с нажатия кнопки «Сканировать» или выбора пункта «Сканировать» в меню. На этом этапе кнопка скрыта и создаются две вкладки, каждая с пустой древовидной структурой. Однако пока они не отображаются. При загрузке данных в древовидной структуре создаются узлы для логических единиц информации.
Пользователь информируется об общем прогрессе с помощью индикатора прогресса, который обновляется после каждого частичного шага. После завершения процесса отображаются как закладки, так и древовидные структуры. В случае повторного сканирования онизакладки и деревья уничтожаются и создаются заново.
Пример получения данных GetInfo
Основным источником данных является WMI 6 или инструментарий управления Windows
.
Иногда называется интерфейсом управления Windows
, который представляет собой набор расширений модели драйверов Windows. Этот набор предоставляет интерфейс для операционной системы, через который отдельные компоненты предоставляют информацию и уведомления.
После запуска сканирования программа начнет сбор информации о компьютере, в основном с помощью WMI. В следующем фрагменте кода показано, как получить информацию о BIOS компьютера.
Объект, хранящийся в переменной $colItems, далее разбивается на отдельные элементы циклом For. В. Далее.
Дополнительную информацию можно получить с помощью макросов, которые предлагает AutoIt v3. Макросы обозначаются префиксом @ и представляют собой, например, путь к системным папкам, текущее время, версию AutoIt и многое другое.
Отображаемые результаты можно просмотреть или сохранить по желанию. Для этого предназначен пункт меню Сохранить, который вызывает диалоговое окно сохранения файла. По умолчанию предлагается имя файла GetInfo.txt в папке «Мои документы».
Дальнейшие предложения по использованию Использование библиотек для мониторинга событий MS Windows
Системные события Windows 7 можно использовать для проверки состояния операционной системы. Во-первых, необходимо создать dll-файл, содержащий функции для каждого события, которое может произойти в системе. К сожалению, AutoIt v3 не может создавать dll-файлы, поэтому вам придется использовать другую среду разработки, например Dev-C++
от Bloodshed Software.
- http://www.bloodshed.net
(проверено 19 мая 2010 г.)
. Для события блокировки компьютера функция выглядит следующим образом.
В этом случае библиотека — это просто инструмент для запуска другой программы. Функция Spawnl запускает заданную программу, также можно выбрать аргумент. Программа создана вЗатем AutoIt v3 определяет, был ли он запущен и с какими аргументами.
0 Тогда Если $CmdLine[1]=»Аргумент» Тогда . КонецЕсли КонецЕсли ]]>
Переменная $CmdLine — это поле, которое создается при запуске программы и содержит информацию о переданных параметрах. Проверяя параметры, можно запускать различные части программы, соответствующие данному событию. Таким образом, администратор получает обзор действий на компьютере и может лучше оптимизировать его управление, например, устанавливать обновления только тогда, когда пользователь вышел из системы.
Автоматические обновления и модификация системы
Операционные системы Windows оснащены автоматической системой обновления Windows. Эта служба загружает и устанавливает пакеты исправлений и обновлений, рекомендованные Microsoft, однако не всегда желательно устанавливать их все.
Возможным решением проблемы является создание пользовательской системы обновлений, которая устанавливает только действительно необходимые пакеты. Принцип программы можно свести к пяти пунктам, описывающим подразделы.
Подключение к источнику информации, например к базе данных.
Загрузить инструкции по установке, в которых указано, что нужно загрузить и запустить.
Сравнение инструкций по установке с локальным списком уже выполненных установок.
Загрузить отсутствующие установки из сетевого источника, например, через FTP.
Обновление локального списка уже выполненных установок.
Преимуществом перед службой Windows Update является возможность установки не только пакетов обновлений Microsoft, но и выборочных установок, созданных, например, с использованием скриптовых функций языка AutoIt. Обновление системы можно запустить удаленно или запланировать в любое время с помощью службы запланированных задач.
Соединение с базами данных
При управлении компьютерами может возникнуть ситуация, когда необходимо сохранить полученные данные в легкодоступном месте. Такойбазы данных подходят для этой цели, и AutoIt v3 включает в себя функции, позволяющие работать с ними. Базовая установка предоставляет библиотеку функций, работающих с SQLite. Однако сообщество AutoIt создало несколько библиотек для других версий баз данных, таких как популярная MySQL 8. Эти библиотеки работают с базами данных с помощью COM-объектов.
для работы с базами данных должен быть установлен соответствующий драйвер, COM-объекты которого в дальнейшем используются. Затем соединение происходит в случае с базой данных MySQL следующим образом.
Хотя эти библиотеки также предлагают ряд функций для предопределенных запросов, любой запрос может быть создан с помощью функции _Query($ConnectionObj , $Query) , где переменная $ConnectionObj является указателем на базу данных, созданную функцией _MySQLConnect, и $Query — это пользовательский запрос. Когда работа выполнена, соединение должно быть закрыто с помощью функции _MySQLClose() .
Коммерческие и другие варианты предыдущих приложений
Сегодня почти для каждой программы на рынке есть конкурирующий вариант. Это ничем не отличается от примеров, представленных в этой работе. Тем не менее, вы, конечно, не можете сравнивать коммерческие продукты с пользовательскими формами. Их огромным преимуществом, безусловно, является фон, на котором создаются эти продукты. Ресурсы, будь то человеческие или финансовые, можно использовать во много раз эффективнее.
Однако с ними можно конкурировать, если смотреть с точки зрения удобства использования и защиты конфиденциальных данных. Большим преимуществом пользовательских скриптов и программ является возможность создать программу только для конкретной среды. Такая программа затем выполняет только те действия, которые абсолютно необходимы и при необходимости могут быть легко изменены. Коммерческие программы часто предлагают большое количество функций, но большинство из них могут быть ненужными в данный момент и неоправданно задерживать программу.
Еще одно преимущество заключается в абсолютном знании программы. В наши дни это очень легковнедрять вредоносный код в программу, поэтому важна осторожность при использовании сторонних программ, особенно при работе с конфиденциальными данными. В случае кастомного решения также исчезают проблемы, связанные с лицензией.
Безусловно, удобнее приобретать сложные программы с адекватной поддержкой клиентов, однако менее требовательные задачи выгодно решать собственными программами, невзирая на экономию финансовых средств.
Главной целью этой работы было собрать важную информацию об истории возникновения и развития языка AutoIt, его функциях и процедурах программирования и представить их в исчерпывающей форме. Хотя скриптовый язык AutoIt довольно популярен, на книжном рынке не хватает качественной литературы. Помимо документации AutoIt v3, которая в основном описывает основные характеристики и функции этого языка программирования, O’Reilly Media опубликовала только одну публикацию 9. Однако она тоже очень краткая, характеристике языка в книге посвящено всего две страницы. Таким образом, более подробная информация о языке и его истории доступна только в электронном виде в различных местах.
В диссертации изложена история языка, описание языка и возможности использования AutoIt на практике. Также в работе содержится описание сред разработки Koda и Scite и вспомогательных приложений, которые используются при программировании.
Три примера были реализованы для иллюстрации возможностей языка AutoIt v3. Они были описаны более подробно, а исходный код правильно прокомментирован. Исходные и двоичные файлы доступны на прилагаемом компакт-диске. Несколько других примеров были даны только теоретически, но тем не менее они в грубой форме описывают, как их следует понимать.
Работу можно дополнить более подробным описанием языка AutoIt v3, так как единственное более полное описание дает документация, которая написана лаконично и оченьтехнический. Создание UDF также открывает возможности для дальнейшей реализации. Хотя в настоящее время реализовано 2000 из них, например, библиотек математических функций по-прежнему недостаточно.