div.main {margin-left: 20pt; margin-right: 20pt}Методы автозапуска программ в среде Windows '95, '98 и
Windows Millenium.
Автор: Дмитрий
Крупорницкий
Очень часто в форумах по компьютерной тематике можно
увидеть вопросы, типа: "Как запустить программу при загрузке Windows?",
или же "Каким способом лучше запускать программу?", и т.д. В данной статье
я решил рассмотреть способы, которыми можно запустить программу в среде
Windows. Я намеренно не включил сюда такие "экзотические" способы, как
дописывание ещё одного блока в PE-файл, или же запуск программы из
загрузочного сектора.
Способ первый: самый простой и до боли знакомый
со среды DOS – файл AUTOEXEC.BAT в корневом каталоге загрузочного диска.
Все программы, которые вы хотите запустить из него, должны выполняться в
реальном режиме DOS, так как выполнение этого командного файла происходит
до загрузки графической оболочки.
Файл AUTOEXEC.BAT – простой текстовой файл. Каждая строка
(если она не пустая) представляет собой команду среды DOS.
Есть несколько форматов запуска исполняемых файлов, но
остановимся на нескольких:
[путь]файл.рас – запуск программы с выдачей строки
запуска и на экран и выводом сообщений программы на стандартное устройство
вывода (экран);
@[путь]файл.рас – запуск программы без выдачи строки
запуска программы и выводом сообщений программы на экран;
@[путь]файл.рас > nul – запуск программы в
"тихом" режиме (без вывода строки запуска и данных программы).
Способ второй: папка автозагрузки. Всё, что
кладётся в папку "Автозагрузка", будет выполнено при запуске Windows. В
неё могут находится программы и DOS и Windows форматов. К данной папке
можно получить доступ и через реестр Windows по следующему пути:
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerShell
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_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices]
[HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun]
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun]
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServices]
Разница между RunServices и просто Run состоит в том, что
при запуске программы в ключе RunServices она будет запущена как
обслуживающий процесс и ей будет выделено меньше приоритетного
процессорного времени при работе. При запуске же в ключе Run, программа
запуститься как обычно с нормальным приоритетом.
Имя ключа, содержащего путь и имя программы, может быть
любым. Параметр должен быть строковым (REG_SZ].
Если к примеру вам требуется запустить программу только
один раз, то можете поместить её в следующие ключи реестра:
[HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServicesOnce]
[HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnce]
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce]
Разница между ними и вышесказанным состоит лишь в том,
что данные ключи будут очищены после успешной загрузки системы
автоматически, и вам не придётся делать это программным способом.
Программа получит управление лишь один раз.
Способ шестой: файл WININIT.INI. Самый
"загадочный" способ запуска. Все дело в том, что этот файл используется
программами установки для удаления своих временных файлов. Если файл
существует в каталоге установки Windows, то он выполняется а затем
удаляется автоматически. Файл предназначен только для удаления файлов, и
очень хорош, если вы хотите кому-то "насолить" J .
Просто создайте файл следующего содержания:
[RENAME]
NUL=C:COMMAND.COM
Эта команда отправит файл COMMAND.COM на нулевое
устройство, ну или просто удалит его.
Способ седьмой: привязка программы к
определённому формату файлов Windows. Часто употребляется для
вирусописательства :).
[HKEY_CLASSES_ROOTexefileshellopencommand] Ключ: @=""%1"
%*"
[HKEY_CLASSES_ROOTcomfileshellopencommand] Ключ: @=""%1"
%*"
[HKEY_CLASSES_ROOTbatfileshellopencommand] Ключ: @=""%1"
%*"
[HKEY_CLASSES_ROOThtafileShellOpenCommand] Ключ: @=""%1"
%*"
[HKEY_CLASSES_ROOTpiffileshellopencommand] Ключ: @=""%1"
%*" [HKEY_LOCAL_MACHINESoftwareCLASSESbatfileshellopencommand]
Ключ: @=""%1" %*"
[HKEY_LOCAL_MACHINESoftwareCLASSEScomfileshellopencommand]
Ключ: @=""%1" %*"
[HKEY_LOCAL_MACHINESoftwareCLASSESexefileshellopencommand]
Ключ: @=""%1" %*"
[HKEY_LOCAL_MACHINESoftwareCLASSEShtafileShellOpenCommand]
Ключ: @=""%1" %*"
[HKEY_LOCAL_MACHINESoftwareCLASSESpiffileshellopencommand]
Ключ: @=""%1" %*"
Ключ обычно должен иметь значение "%1 %*". Однако, если это значение
поменять на "c:viewer.exe %1 %*", то программа VIEWER.EXE будет ВСЕГДА
выполняться при запуске программ типа exe/com/bat/hta/pif.
Способ восьмой: использование файла DOSSTART.BAT. Данный файл –
простой командный файл, который выполняется, когда пользователь хочет
поработать в среде DOS (с выгрузкой графической оболочки). Чаще всего
используется для драйверов мыши, экрана, и т.д.
Ну вот в принципе и всё. Конечно, можно найти ещё много разных способов
запуска программ, но это – основные.
Если вы знаете ещё какой-нибудь способ, напишите мне:
mailto:diam@softhome.net
Дмитрий Крупорницкий
|