Методы автозапуска программ в среде 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
Дмитрий Крупорницкий
|