15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


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

 

Дмитрий Крупорницкий