Выход из ситемы
Как можно запустить программу при выходе из системы (выключении/перезагрузке)? Есть же варианты Run разделов реестра на запуск системы и всякие подобные пункты в ini-файлах.
Запусти программу создай невидимое окно и отрабатывай на WM_QUERYENDSESSION или WM_ENDSESSION
Запусти программу создай невидимое окно и отрабатывай на WM_QUERYENDSESSION или WM_ENDSESSION
Не могу. Надо экономить память. А в реестре нет ничего такого?
Не могу. Надо экономить память. А в реестре нет ничего такого?
Нет, винда наоборот стремится все закрыть перед выключением а не наоборот открыть.
Нет, винда наоборот стремится все закрыть перед выключением а не наоборот открыть.
А как же программы, которые начинают работать (в XP, например) ещё до загрузки системы - типа проверки диска?
А как же программы, которые начинают работать (в XP, например) ещё до загрузки системы - типа проверки диска?
Во первых не одна программа не запукается до загрузки ОС, а во вторых это же ДО а не ПОСЛЕ.
Во первых не одна программа не запукается до загрузки ОС, а во вторых это же ДО а не ПОСЛЕ.
На счёт "до загрузки" - это я погорячился конечно же.
А что же происходит в случае, если, например, с PartionMagic, когда она (PartionMagic) говорит, что для выполнения операции требуется перезагрузка. Перезагружается машина и до загрузки GUI начинается её (PartionMagic) работа. В Run'ы что ли запись делает?
На счёт "до загрузки" - это я погорячился конечно же.
А что же происходит в случае, если, например, с PartionMagic, когда она (PartionMagic) говорит, что для выполнения операции требуется перезагрузка. Перезагружается машина и до загрузки GUI начинается её (PartionMagic) работа. В Run'ы что ли запись делает?
Так тебе нужно запустить программу во время выключения компьютера или во время включения, но до загрузки модуля пользователей?
Одним из первых система запускает драйвера устройств. Видимо Паритшион Мэджик в качестве драйвера работает. А вообще я этим не интересовался...
На счёт "до загрузки" - это я погорячился конечно же.
А что же происходит в случае, если, например, с PartionMagic, когда она (PartionMagic) говорит, что для выполнения операции требуется перезагрузка. Перезагружается машина и до загрузки GUI начинается её (PartionMagic) работа. В Run'ы что ли запись делает?
1. Можно запустить программу ещё во время загрузки Windows, до загрузки Win32. Для этого используется NativeAPI. Но в этот момент, на сколько мне известно, диски смонтированы и часть реестра тоже. Т.е. низкоуровневые дисковые операции с системным разделом выполнять уже поздно. Для этого используют второй путь.
2. До загрузки ОС Windows загружается какая-нибудь автономная микро-ОС. В ней выполняются операции с диском, после чего загружается Windows.
Мы в качестве такой микро-ОС использовали Linux, образ которого составлял ~3Mb и хранился (в виде обычного файла) на системном диске Windows.
Как можно запустить программу при выходе из системы (выключении/перезагрузке)? Есть же варианты Run разделов реестра на запуск системы и всякие подобные пункты в ini-файлах.
Программу нужно оформить в виде сервиса, и при регистрации сервиса нужно указать, что сервис принимает сообщение SERVICE_CONTROL_STOP.