Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Узнать, что система полностью загружена.


Автор: En_t_end 22.9.2005, 13:04
Сабж. Возникла такая необходимость из-за специфики программы, то есть мне надо продолжать работу программы только после того, как я узнаю, что система и все компоненты полностью загружены.

Автор: _hunter 22.9.2005, 13:18
простейший вариант -- засунуть в авто-ран мелкую програмку, которая при запуске будет ставить какой-нить флаг ( тот же mutex )
а основная будет этот флаг проверять. ( запуск программ из автозагрузки выполняется в самую последнюю очередь )

Автор: En_t_end 22.9.2005, 13:22
_hunter
У меня уже была такая мысля, но тогда, случайно или специально удалив из автозагрузки эту мелкую программу можно вызвать необратимые последствия в работе нужной мне программы.
Добавлено @ 13:27
Кстати ведь существует какой-то синхронизационный ресурс или флаг, ведь как-то система определяет что все загружено и можно загружать программы из автозагрузки.

Автор: _hunter 22.9.2005, 13:29
тогда при запуске основной программы ( я так понимаю она до этого запускается ) пиши мелкую в авторан ( а при инициализации ее можно грохать ) можно еще и файл открыть ( дабы никто не удалил специально ( хотя не знаю откроется ли она тогда... ) )
Добавлено @ 13:30
есть у меня подозрение что этот флаг приватный...

Автор: En_t_end 22.9.2005, 13:35
_hunter
Цитата(_hunter @ 22.9.2005, 17:29)
тогда при запуске основной программы ( я так понимаю она до этого запускается ) пиши мелкую в авторан ( а при инициализации ее можно грохать )

О, а вот до этого не додумался smile
Спасибо!
Но все же если флаг не приватный, хмм.. жду предложений.

Автор: Romikgy 22.9.2005, 14:46
Плюс к авто-рану можно еще привязать задержку по времени smile

Автор: nikitao 22.9.2005, 16:40
Цитата
У меня уже была такая мысля, но тогда, случайно или специально удалив из автозагрузки эту мелкую программу можно вызвать необратимые последствия в работе нужной мне программы.

1.Ну гипотиза конечно:можно попробывать с помощью code injection в область Explorerа записаться или в другую служебную программу,тогда прцесс будет не убить,а прогу эту(мелкую) не удалить(Тогда в автозагрузку не ярлык надо записывать).

2.Или вообще дигерский способ:эту мелкую прогу записать в Windows вместо какой-нибудь служебной,а служебную куда-то переместить и запускать при инициализации мелкой.(в автозагрузку ее писать не надо ,сам windows запустит)+1 способ чтоб процесс не отключить.

ЗЫ Не судите строго если глупость сморозил.
Цитата
Но все же если флаг не приватный
.Почему ты в этом так уверен?

Автор: SergeCpp 22.9.2005, 16:56
Autoruns запускаются из explorer.exe

Автор: _hunter 22.9.2005, 17:11
что они оттуда запускаются -- и так известно.
задача отловить момент полной загрузки explorer.exe...

Автор: Mayk 22.9.2005, 17:57
Цитата(En_t_end @ 22.9.2005, 17:04)
Возникла такая необходимость из-за специфики программы, то есть мне надо продолжать работу программы только после того, как я узнаю, что система и все компоненты полностью загружены.

А в чём именно заключается такая специфика? Нельзя ли, скажем, просто дождаться появления определенного процесса/окошка?

зы. ну не верю я, что notepad прописанный в авторан, важен для твоей проги.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)