Показать полную графическую версию : Как отменить выключение компа
Как так: запретить как явление или прервать процесс выключения после подачи соответствующей команды?
Как так: запретить как явление или прервать процесс выключения после подачи соответствующей команды?
Да, если по ошибке вместо перезагруза нажал "выкл".
Guest
Я уже пытался этот вопрос поднимать:
http://forum.oszone.net/topic.cgi?forum=22&topic=1808
К сожелению :( нормального решения так и нет (надеюсь, что только пока).
Я в таких случаях сразу 2 раза нажимаю ctrl-alt-del. 98-я всё поймет и стерпит такое к себе отношение.
Исправлено: IRV, 14:48 7-06-2004
hasherfrog
07-06-2004, 15:37
Посмотрите Shutdown Stopper здесь (http://www.webattack.com/freeware/system/fwshutdown.shtml).
Подобный софт (похуже качеством, имхо) здесь (http://www.itsfree4u.com/shutdown.shtml)
Для интересующихся вопросом: интересные вещи здесь (http://www.robvanderwoude.com/index.html)
Для программеров: здесь (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/abortsystemshutdown.asp)
IRV
А разве она на перезагрузку в этом случае не уходит?
Уходит. Но питание не отрубается и всё железо не обесточивается - а для него вкл\выкл очень болезненен.
Имхо, значимость поставленного в теме вопроса преувеличена.
IRV
Имхо, значимость поставленного в теме вопроса преувеличена.
Ну кому как. Для меня, например, даже очень как актуально (в теме по ссылке я уже писал...). Как раз на железо - мне плевать (относительно, конечно, но приоретеры отнюдь не на нем...), а вот потерянная работа - это бывает о-о-очень как неприятно...
hasherfrog
О, спасибо за ссылки. Будем-с разбираться, надеюсь че и подойдет...
Исправлено: Greyman, 12:09 9-06-2004
hasherfrog
30-06-2004, 09:45
Greyman
Не то, чтобы я хвастаюсь, но посмотрите тут (http://forum.oszone.net/topic.cgi?forum=18&topic=1439). Мне интересно именно Ваше мнение по поводу удобства работы с прогой (поскольку отчасти для Вас это и писалось).
hasherfrog
Ну а как с предотвращением отключения? Или предполагаеться, что для этого эти 20 секунд используеться? От себя отмечу следующие неудобства:
1) На сколько я понял, прога работает только если вызывать в ручную, штатное завершение работы она не перехватывает? Если так, то это не очень удобно, т.к. я всегда завершаюсь по горячим клавишам (если вручную, для шедулера есть свой набор прог, в том числе те, на которые ты дал ссылку). Т.е. теперь я должен всегда помнить, что завершаться по горячим клавишам нельзя, а надо пользоваться ярлыком (хотя есть вариант с переназначением клавишь - надо попробовать как оно будет...).
2) Не понятно с предотвращением ошибочной перезагрузки. Если для этого используются только 20-ти секундная пауза - то это не совсем удобно. С одной стороны, сама перезагрузка задерживаеться на время этой паузы - иногда это может вызвать лишнюю задержку, ну уж по крайней мере, прибавить раздражения по этому поводу. С другой стороны, наличие задержки не являеться уж очень серьезным параметром, чтоб предотвратить зыкрытие нужных программ (по крайней мере для меня). Я же не буду каждый раз во время этой паузы пялиться на экран мучительно перебирая в памяти, а не забыл ли я чего, что мне еще пока нужно. Так можно делать один раз, ну два - а потом просто не будешь на нее обращать внимание, а будешь в это время заниматься каким нибудь другим делом. Если бы можно было каждый раз перед перезагрузкой/ выключением внимательно проверять состояника компа - то необходимости в том, что здесь обсуждаеться, не было бы. Просто перед самой перезагрузкой какжый раз все внимательно проверялось, а уже потом комп отключался штатными средствами. Для меня, например, "спусковым крючком" для вспоминания о заботой проге вялсяеться как раз активный процесс завершения программ - сворачивание окон, пропадание иконок из таск-бара и т.д. Поэтому для меня бы идеальным был вариант прерывания уже начавшейся перезагрузки, но на том этапе, когда эта отмена еще имеет смысл - т.е. нужная прога еще не закрылась. А так, я пока решил использовать предложенный "Shutdown Stopper", хотя у него и есть довольно больой минус - он не делает предотвращения при выключении компа по кнопке питания на самом блоке.
у него и есть довольно больой минус - он не делает предотвращения при выключении компа по кнопке питания на самом блоке.
И по выдёргивании вилки питания из сети он тоже не предотвращает выключение!
Можно найти ещё массу случаев, когда он не предотвращает выключение... И все эти варианты объединяет одно - команда на выключение софту не подаётся, т.е. софт до самого последнего момента не предполагает, что сейчас пропадёт питание. Поэтому очевидно, что противодействовать такому развитию событий никакая программа в принципе не сможет.
hasherfrog
30-06-2004, 14:47
Greyman
1) Ну это можно действительно решить через горячие клавиши, имхо.
2) Тут действительно всё сложно.
По поводу раздражения от 20-секундной паузы. Изначально я хотел добавить ключ в реестре, где можно было бы хранить задержку, специально для продвинутых пользователей. Но потом всё-таки пришёл к выводу, что это лишнее.
По поводу перехвата штатного отключения - AbortSystemShutdown на это не рассчитана. Остается догадываться, как это делает ShutDownStopper, - наверное перехватывает каким-то образом вызов системной функции из dll. Честно говоря, не знаю, я на этом не заморачивался.
По поводу отключения через кнопку питания. Если я всё правильно поняли (и это был не сарказм, как считает IRV), Вы имели в виду ситуацию, когда нажатие Power на морде компа вызывает обычное отключение виндовыми средствами (как если бы Вы сказали Пуск->выключить). Это доступно, емнип, только на последних машинах с ACPI-чего-то-там. Тут, я думаю, ShutDownStopper оказывается не у дел потому, что его "цепляние" на соответствующую функцию происходит уже после того же действия со стороны библиотеки расширенного управления питанием (или стоппер вообще про это не знает).
Судя по Вашему описанию Ваших действий процесса отключения (только теперь до меня дошло, что собственно, Вы делаете и что (и как) Вам мешает), можно сделать енумерацию действующих процессов на момент отключения машины. Если есть незакрытые процессы, можно спросить пользователя. а дествительно ли он собрался уходить. Всё это, конечно, не решает A, B, C. Но можно попробовать.
Жаль, но всё это "с кондачка" не напишешь. Как буду проходить мимо похожей задачи, сделаю апдейт :rotate:
Исправлено: hasherfrog, 14:49 30-06-2004
IRV
И по выдёргивании вилки питания из сети он тоже не предотвращает выключение! Можно найти ещё массу случаев, когда он не предотвращает выключение...
Можно... А кто спорит?..
И все эти варианты объединяет одно - команда на выключение софту не подаётся, т.е. софт до самого последнего момента *не предполагает, что сейчас пропадёт питание.
Ну может у кого что и объединяет, но случай описанный мной (не думал, что уровень детализации должен быть на стоко высок...) сюда точно не подходит, т. к. я имел в виду действие системы при нажатии кнопки питания на передней панели корпуса в случае использование ATХ-вых мамки и блока и соответствующих настроек в биосе (у некоторых есть возможность настроить кнопку, чтоб она по нажатию сразу обрубала питание).
Поэтому очевидно, что противодействовать такому развитию событий никакая программа в принципе не сможет.
Ну, это конечно можно уже посчитать оффтопиком, но я как раз придерживаюсь другого мнения... Чем плох вариант в внешней камерой и соответствующим ПО, которое будет реагировать на попытки пользователя протянуть куда-то ручки и громко и ясно об этом заявить? Если софт не будет очень тормозить, а юзер будет не шибко шустрый - вполне может сработать...:)
hasherfrog
Судя по Вашему описанию Ваших действий процесса отключения (только теперь до меня дошло, что собственно, Вы делаете и что (и как) Вам мешает), можно сделать енумерацию действующих процессов на момент отключения машины. Если есть незакрытые процессы, можно спросить пользователя. а дествительно ли он собрался уходить. Всё это, конечно, не решает A, B, C. Но можно попробовать.
Хм-м-м... Идеальным вариантом я вижу нечто вроде ShutdownStopper, но со следующими дополнениями:
1) поддержка перехвата при выключении по кнопке питания (при поддержке ACPI на ATX-вой мамке);
2) возможность задавать список приложений и процессов, активность которых не будет позволять автоматическое завершение, а будет ожидаться решение пользователя. Сюда же желательно предусмотреть возможность интервала паузы, после которой комп таки можно выключить, несмотря на процессы-исключения;
3) анализ загрузки процессора (как общей, так и по процессам) для принятия решения о допустимости завершения работы
4) ... пока не сформулировал
hasherfrog
02-07-2004, 14:04
Greyman
2 и 3 проблем не представляют. А вот 1... :cranky:
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC