Как они делают программы, которые запускаются при запуске - PullRequest
2 голосов
/ 23 марта 2010

Такие программы, как дефрагментация страницы с помощью sysinternals или утилита chkdsk, которые запускаются при запуске. Пожалуйста, просветите меня. Какой язык программирования они используют для таких операций.

Ответы [ 3 ]

3 голосов
/ 23 марта 2010

Они должны работать с определенной версией загрузочного API ядра, поэтому C или C ++ - это обычный язык.

В "Windows Internals" есть краткое описание этого, но ничего подобного недостаточно для написания такой утилиты.

2 голосов
/ 23 марта 2010

Что обычно происходит, так это то, что разработчик создает загрузчик, который загружается на запоминающее устройство (например, HDD, CD / DVD, USB и т. Д.).

У загрузчика (если я правильно помню, прошло более 8 лет с тех пор, как я это сделал) адрес 512K, указывающий на регистр запуска (обычно 08h). Этот адрес 512K будет хранить ваш адрес в переменных вашего окружения, начальном адресе и т. Д.

Затем разработчик пишет программу и устанавливает свой метод main, чтобы он указывал на загрузочный адрес запуска (обычно 08h, но это не стандартно, это зависит от поставщика), так что когда загрузчик указывает на загрузочный адрес, программа, подключенная к адресу запуска, загружается и запускается.

Язык, хардкорный C / C ++ / Assembly (или Pascal, поскольку он способен на это).

0 голосов
/ 23 марта 2010

Это скорее функция операционной системы, чем язык программирования.

Например, в Windows эти типы программ часто устанавливаются как служба . Отдельная программа часто запускается от имени пользователя и устанавливается (через реестр) для запуска при входе в систему для взаимодействия со службой.

...