Методы автозапуска
программ в среде Windows '95, '98 и Windows Millenium.
Автор: Дмитрий
Крупорницкий
Очень часто в форумах по компьютерной
тематике можно увидеть вопросы, типа: "Как
запустить программу при загрузке Windows?", или же
"Каким способом лучше запускать программу?",
и т.д. В данной статье я решил рассмотреть
способы, которыми можно запустить программу в
среде Windows. Я намеренно не включил сюда такие
"экзотические" способы, как дописывание ещё
одного блока в PE-файл, или же запуск программы из
загрузочного сектора.
Способ первый: самый простой и до
боли знакомый со среды DOS – файл AUTOEXEC.BAT в
корневом каталоге загрузочного диска. Все
программы, которые вы хотите запустить из него,
должны выполняться в реальном режиме DOS, так как
выполнение этого командного файла происходит до
загрузки графической оболочки.
Файл AUTOEXEC.BAT – простой текстовой файл.
Каждая строка (если она не пустая) представляет
собой команду среды DOS.
Есть несколько форматов запуска
исполняемых файлов, но остановимся на
нескольких:
[путь]\файл.рас – запуск программы
с выдачей строки запуска и на экран и выводом
сообщений программы на стандартное устройство
вывода (экран);
@[путь]\файл.рас – запуск программы
без выдачи строки запуска программы и выводом
сообщений программы на экран;
@[путь]\файл.рас > nul – запуск
программы в "тихом" режиме (без вывода
строки запуска и данных программы).
Способ второй: папка автозагрузки.
Всё, что кладётся в папку "Автозагрузка",
будет выполнено при запуске Windows. В неё могут
находится программы и DOS и Windows форматов. К данной
папке можно получить доступ и через реестр Windows
по следующему пути: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell
Folders;
Ключ:
Startup="ПУТЬ_К_ПАПКЕ_АВТОЗАГРУЗКИ"
Способ третий: файл конфигурации
системы WIN.INI. Если в разделе [windows] создать (или
дописать) ключ load=файл.exe или run= файл.exe, то он
будет запущен при старте Windows.
Дописывать в этот файл информацию
нужно при помощи функции WritePrivateProfileStringA,
описание которой вы можете найти в MSDN.
Сюда же можно отнести и запуск
программы из файла SYSTEM.INI. К нему применимы всё
вышесказанное, только дописывать надо в раздел
[boot], а ключ:
shell=explorer.exe ВАШ_ФАЙЛ_ЗАПУСКА. Данный
ключ описывает среду для работы в Windows, и EXPLORER.EXE
при инициализации запускает вашу прогрмму.
Способ четвёртый: файл WINSTART.BAT. Он
представляет собой обычный BAT (командный) файл и
чаще всего используется для удаления следов
программ инстоляции или деинстоляции. Он
находится в каталоге установки Windows и в отличии
от AUTOEXEC.BAT в него могут входить программы для 32
разрядного режима (Windows формата).
Способ пятый: самый известный
людям, которые хоть раз занимались поиском
троянов, вирусов да и просто назойливых программ.
В реестре есть ряд ключей, в которых
если прописать имя программы, то она будет
выполнена при старте Windows. Ключи эти следующие:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices]
Разница между RunServices и просто Run
состоит в том, что при запуске программы в ключе
RunServices она будет запущена как обслуживающий
процесс и ей будет выделено меньше приоритетного
процессорного времени при работе. При запуске же
в ключе Run, программа запуститься как обычно с
нормальным приоритетом.
Имя ключа, содержащего путь и имя
программы, может быть любым. Параметр должен быть
строковым (REG_SZ].
Если к примеру вам требуется запустить
программу только один раз, то можете поместить её
в следующие ключи реестра:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]
Разница между ними и вышесказанным
состоит лишь в том, что данные ключи будут
очищены после успешной загрузки системы
автоматически, и вам не придётся делать это
программным способом. Программа получит
управление лишь один раз.
Способ шестой: файл WININIT.INI. Самый
"загадочный" способ запуска. Все дело в том,
что этот файл используется программами
установки для удаления своих временных файлов.
Если файл существует в каталоге установки Windows,
то он выполняется а затем удаляется
автоматически. Файл предназначен только для
удаления файлов, и очень хорош, если вы хотите
кому-то "насолить" J .
Просто создайте файл следующего
содержания:
[RENAME]
NUL=C:\COMMAND.COM
Эта команда отправит файл COMMAND.COM на
нулевое устройство, ну или просто удалит его.
Способ седьмой: привязка
программы к определённому формату файлов Windows.
Часто употребляется для вирусописательства :).
[HKEY_CLASSES_ROOT\exefile\shell\open\command] Ключ:
@="\"%1\" %*"
[HKEY_CLASSES_ROOT\comfile\shell\open\command] Ключ:
@="\"%1\" %*"
[HKEY_CLASSES_ROOT\batfile\shell\open\command] Ключ:
@="\"%1\" %*"
[HKEY_CLASSES_ROOT\htafile\Shell\Open\Command] Ключ:
@="\"%1\" %*"
[HKEY_CLASSES_ROOT\piffile\shell\open\command] Ключ:
@="\"%1\" %*"
[HKEY_LOCAL_MACHINE\Software\CLASSES\batfile\shell\open\command] Ключ:
@="\"%1\" %*"
[HKEY_LOCAL_MACHINE\Software\CLASSES\comfile\shell\open\command] Ключ:
@="\"%1\" %*"
[HKEY_LOCAL_MACHINE\Software\CLASSES\exefile\shell\open\command] Ключ:
@="\"%1\" %*"
[HKEY_LOCAL_MACHINE\Software\CLASSES\htafile\Shell\Open\Command] Ключ:
@="\"%1\" %*"
[HKEY_LOCAL_MACHINE\Software\CLASSES\piffile\shell\open\command] Ключ:
@="\"%1\" %*"
Ключ обычно должен иметь значение "%1 %*".
Однако, если это значение поменять на "c:\viewer.exe
%1 %*", то программа VIEWER.EXE будет ВСЕГДА
выполняться при запуске программ типа
exe/com/bat/hta/pif.
Способ восьмой: использование файла
DOSSTART.BAT. Данный файл – простой командный файл,
который выполняется, когда пользователь хочет
поработать в среде DOS (с выгрузкой графической
оболочки). Чаще всего используется для драйверов
мыши, экрана, и т.д.
Ну вот в принципе и всё. Конечно, можно найти ещё
много разных способов запуска программ, но это –
основные.
Если вы знаете ещё какой-нибудь способ,
напишите мне: mailto:diam@softhome.net
Дмитрий Крупорницкий
|