| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Как перезапустить Program Manager? |
| Автор: Rowi 7.1.2006, 21:29 | ||||
| Здравствуйте, все! Подскажите, пожалуйста, после того, как программа "убила" Explorer:
может ли она (программа) полностью восстановить всё, относящееся к Explorer'у (кнопку Пуск, Панель задач и т.п.) без перезагрузки компьютера? Пытаюсь
но только открывается окно "Мои документы", а ничего не восстанавливается |
| Автор: SoWa 7.1.2006, 21:37 |
| Странно. Должно нормально восстановиться. А посмотри в CAD, все Explorer убиты? |
| Автор: Poseidon 7.1.2006, 22:08 |
| Если убит Explorer, то винда сама пытается восстановить его (так по дефолту по крайней мере) |
| Автор: Rowi 8.1.2006, 01:37 | ||||
Я дико извиняюсь, но что такое CAD? Если я правильно догадался - Диспетчер задач Windows?
Именно так у меня и происходит - ДОСЛОВНО! (Кстати, у меня WinXP SP2) |
| Автор: FRAGNATIC 8.1.2006, 01:42 | ||
три клавишии Ctrl +ALt+Delete Добавлено @ 01:49 Rowi а вообще оно так и будет работать как ты говоришь тока в том случаии если когда ты таким вот образом убивал эксплорэр было открыто какойнить окно провдника типа диск С или Д или какая-то папка! убивается сам эксплорэр но остаётся висеть это окно процес которого тоже ехсплорэр и когда ты пытаешся заново запустить эксплорэр он видет что такой процес уже есть и думает что это кокрас и есть тот эксплорэр который в себя включает пуск и тп , и поэтому запускает проводник=) так что килить те надо не прсото окно Program Manager а сами процесы=) |
| Автор: Rowi 8.1.2006, 03:06 | ||
| Ой... я, кажется, сам разобрался! Похоже, я запутался в собственных экспериментах: не получалось всё восстановить, если хэндл "жертвы" я получал так:
т.е. я убивал кнопку Пуск (собственно, сначала я к этому и стремился). При этом все "симптомы" те же, как и при убиении ProgMan'a. (Кстати, интересно - почему? И можно ли как-то восстановить в этом случае?) Разница заметна только в Диспетчере задач (Ctrl +ALt+Delete): в этом случае в списке процессов explorer.exe остаётся! А насколько я знаю, если запускать второй (третий и т.д.) экземпляр explorer'a, то как раз и открывается только окно обзора. А в случае того кода, что я приводил в начале - всё чудненько восстанавливается! Так что ооочччень прошу меня извинить за ложную тревогу и за мою собственную рассеянность... |
| Автор: Albinos_x 8.1.2006, 04:02 | ||||
|
| Автор: bartram 8.1.2006, 11:22 |
| Rowi, так Пуск является "сoбственностью" Explorer и поэтому когда ты убиваешь пуск, убивается и панель задач (визуально) а сам процесс Explorer.exe остается висеть в памяти, для скрытия кнопки Пуск юзай методы которые показал Albinos_x |
| Автор: Rowi 8.1.2006, 11:25 | ||
Как раз это меня и не устраивало (я ранее пробовал эти варианты), а плюс ещё и <Ctrl+Esc>! Поэтому и пришёл к необходимости убивать либо кнопку "Пуск", либо весь Explorer. С Hook'ами связываться почему-то не хотелось. |
| Автор: Rowi 8.1.2006, 11:45 | ||
Продолжая свои эксперименты, я таки заметил небольшую разницу:
И вроде уже придумал, как тут быть (правда, "из Москвы в Питер через Магадан" Я сначала убиваю только кнопку, а когда потом надо всё восстановить, то сперва "добиваю" весь Explorer, а только потом его запускаю по новой. Несколько морочливо, но работает! P.S. Проблема вроде как решена (всем огромное спасибо за отзывчивость!), но если кто-нибудь всё же наведёт на мысль, как "в Питер напрямую попасть Только из-за этой надежды пока не пометил вопрос, как "решённый"... |