Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОС - Лабораторная работа №10

.pdf
Скачиваний:
23
Добавлен:
26.03.2015
Размер:
1.04 Mб
Скачать

Лабораторная работа № 10

Special Folders Windows. Startup. Работа с файлами и папками.

Цель: По изученым методам и функциям языка VBScript, написать сценарий.

Учебный план:

1.Применение свойства Special Folders.

2.Автозагрузка в реестре.

3.Применение метода SendKeys.

4.Объектная модель FileSystemObject.

1.Применение свойства Special Folders

Свойство SpecialFolders позволяет просмотреть список “ специальных” папок (табл.1) операционной системы Windows, имеется в виду просмотр местоположения таких каталогов как рабочий стол, мои документы или папка автозагрузки.

Рассмотрим спциальную папку Автозагрузка. В английской версии Windows папка Автозагрузка носит имя Startup, и если вы укажете точный путь вроде

C:\Users\user1\AppData\Roaming\Microsoft\Windows\Главное меню\Программы\Автозагрузка,

то это сработает в русской версии Windows и нигде больше. Чтобы избежать этих проблем Microsoft создала список специалных папок. Чтобы получить доступ к какой-либо специальной папке можно воспользоваться свойством SpecialFolders объекта WshShell.

Для примера расмотрим сценарий на языке VBScript, для вывода специальных папок

Рис.1:

Создаем объект WshShell

Создаем объект WshSpecialFolders

Имя специальной папки Windows

Выводим путь на рабочий стол

Рис.1 Применение свойства SpecialFolders объекта WshShell.

Рис.2 Резуьтат работы сцеария. Путь для специальной папки Desktop.

Таблица 1

 

Специальные папки в Windows

Имена папок

Описания

Desktop

Путь к рабочему столу

Favorites

Избранное

Fonts

Путь к шрифтам

My Documents

Мои документы

NetHood

Сетевое окружение

PrintHood

Путь к принтерам

Programs

Подменю "Программы" кнопки "Пуск"

Recents

Подменю "Документы" кнопки "Пуск"

SendTo

подменю Отправить из контекстного меню файлов

StartMenu

Главное меню

Startup

Подменю "Автозагрузка" из подменю "Программы"

Templates

Шаблоны

AllUsersDesktop

Путь к рабочему столу для всех пользователей

AllUsersStartMenu

Путь к главному меню для всех пользователей

AllUsersPrograms

Подменю "Программы" кнопки "Пуск" для всех пользователей

AllUsersStartUp

Подменю "Автозагрузка" из подменю "Программы"

Однако, список специальных папок можно получить и другим способом, этот список легко просмотреть через реестр, он хранится в двух местах

HCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

и

HKCU\Software\ Microsoft\Windows\CurrentVersion\Explorer\Shell Folders

Согласно документации msdn.microsoft.com мы получаем доступ лишь к папкам представленным в (табл.1).

2.Автозагрузка в реестре

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion. Найдите там подразделы Run, RunOnce, RunOnceEx, RunServices, RunServicesOnce. В этих разделах есть строковые ключи (некоторые разделы пустые), отвечающие за запуск программ. Название ключа может быть произвольным, а в качестве значения у них указывается запускаемая программа, если надо - то с параметрами. Обратите внимание на разделы, в названии которых присутствует "Once". Это разделы, в которых прописываются программы, запуск которых надо произвести всего один раз. Например, при установке новых программ некоторые из них прописывают туда ключи, указывающие на какие-нибудь настроечные модули, которые запускаются сразу после перезагрузки компьютера. Такие ключи после своего запуска автоматически удаляются. Подумайте, все ли они нужны вам при загрузке и лишнее просто удалите. Это позволит значительно ускорить загрузку Windows.

Но это не единственный раздел, откуда запускаются программы. Перейдем к другой ветви, а именно к HKEY_CURRENT_USER и откроем там раздел

SOFTWARE\Microsoft\Windows\CurrentVersion. Там есть только два подраздела, отвечающие за автозагрузку: Run и Runonce. Изначально они пустые, так что все записи там сделаны другими программами.

Следует помнить, что из реестра программы запускаются в первую очередь, затем из файла win.ini и самыми последними из "Автозагрузки". Так что если у вас стоит в автозагрузке антивирусный монитор, то это еще не факт, что он отловит запуск вирусной программы, т.к. вирусы имеют гораздо меньший по размеру файл и грузятся не в пример быстрее.

3.Применение метода SendKeys

Сценарий может запустить приложение и перевести его окно на передний план. Все нажатия клавиш пользователем передаются в это окно приложения. Для написания сценария используют метод SendKeys. Рассмотрим простой пример. Следующий VBScript запускает

Сalculator методом Run Рис.3:

Рис.3 Пример метода Run

Оператор Wscript.sleep 1000 переводит фокус в окно Calculator. Если не сделать эту паузу, сценарий может перейти к следующему оператору, посылающего нажатие клавиши, до того, как Calculator получит фокус; если это случится, все заданные нажатия пропадут.

Продолжим сценарий Рис.4. Когда окно активизируется, сценарий посылает выражение:

10 + 2 = в окно Calculator.

Метод SendKeys является частью объекта WshShell. Для представления «клавиши», передаваемой в этом параметре, нужен минимум один символ. Клавиша на клавиатуре может быть представленна одним символом. Так, чтобы имитировать нажатие клавиши A, в аргумент нужно передать символ A. Если в строке нескколько символов (скажем, ABC), приложению посылаются все эти символы.

Знак «плюс» (+) имеет особый смысл в команде SendKeys (табл.2), а передать его можно, заключив в фигурные скобки: {+}.

Таким образом, команды в окно Calculator пересылаются операторами:

Создаем объект WshShell

Запускаем Calculator

Приостанавливаем сценарий на 1 секунду

Задаем нажатия клавиш в Calculator

Рис. 4 Продолжение примера запуска Calculator, сложение выражения и удаление результата.

Каждый вызов передает параметр, содержащий строку. Калькулятор выражает и отображает число 12. Следующие команды приостанавливают сценарий и очищают результат на табло калькулятора.

Таблица 2

 

Кодировка специальных клавиш в методе SendKeys

Клавиша

Кодировка

Backspace

{BACKSPACE}, {BS} или {BKSP}

Break

{BREAK}

Caps Lock

{CAPSLOCK}

Delete

{DELETE} или {DEL}

End

{END}

Enter

{ENTER}

Esc

{ESC}

Help

{HELP}

Home

{HOME}

Insert

{INSERT} или {INS}

Num Lock

{NUMLOCK}

Page Down

{PGDN}

Page Up

{PGUP}

Print Screen

{PRTSC}

Scroll Lock

{SCROLLLOCK}

Tab

{TAB}

Cursor up

{UP}

Cursor left

{LEFT}

Cursor down

{DOWN}

Cursor right

{RIGHT}

F1-F16

{F1}-{F16}

Чтобы задать комбинации, включающие Shift, Ctrl или Alt, вы должны добавить специальный код перед кодом второй клавиши (табл.3)

Таблица 3

 

Коды для комбинаций клавиш в методе SendKeys

Клавиша

Кодировка

Shift

+

Ctrl

^

Alt

%

 

 

Для того чтобы задать комбинацию клавиш, которую нужно набирать, удерживая нажатыми клавиши Shift, Ctrl или Alt, нужно заключить коды этих клавиш в скобки. Например, если требуется сымитировать нажатие клавиш G и S при нажатой клавише Shift, следует использовать последовательность "+(GS)". Для того же, чтобы задать одновременное нажатие клавиш Shift+G, а затем S (уже без Shift), используется "+GS".

В методе SendKeys можно задать несколько нажатий подряд одной и той же клавиши. Для этого необходимо в фигурных скобках указать код нужной клавиши, а через пробел — число нажатий. Например, {LEFT 42} означает нажатие клавиши 42 раза подряд; {h 10} означает нажатие клавиши h 10 раз подряд.

4.Объектная модель FileSystemObject

Работа с файлами.

Чтобы получить доступ к объектам и свойствам объектной модели FileSystemObject (далее FSO), надо создать переменную-объект и присвоить ей ссылку на объект FileSystemObject. Этот объект сам по себе является частью языка, поэтому ссылку на него позволяют получить встроенные методы VBScript. FSO предоставляет некоторые возможности для работы с текстовыми файлами. Можно создавать, удалять, копировать и перемещать файлы Рис.5.

Для создания текстового файла применяют метод CreateTextFile.

Для копирования, перемещения и удаления файлов объект FSO предоставляет несколько методов.

Рис.5 Некоторые возможности для работы с файлами и папками.

Задания для выполнения лабораторной работы

Создание простого вируса с применением Автозагрузки и изученых методов, функций

VBScript.