Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 95/98/Me (архив) (http://forum.oszone.net/forumdisplay.php?f=4)
-   -   Как отменить выключение компа (http://forum.oszone.net/showthread.php?t=201)

Guest 30-05-2004 08:37 1362

На 98 и ХР.

IRV 30-05-2004 13:52 1363

Как так: запретить как явление или прервать процесс выключения после подачи соответствующей команды?

Guest 07-06-2004 08:19 1364

Цитата:

Как так: запретить как явление или прервать процесс выключения после подачи соответствующей команды?
Да, если по ошибке вместо перезагруза нажал "выкл".

Greyman 07-06-2004 13:01 1365

Guest
Я уже пытался этот вопрос поднимать:
http://forum.oszone.net/topic.cgi?fo...amp;topic=1808
К сожелению :( нормального решения так и нет (надеюсь, что только пока).

IRV 07-06-2004 14:40 1366

Я в таких случаях сразу 2 раза нажимаю ctrl-alt-del. 98-я всё поймет и стерпит такое к себе отношение.

[s]Исправлено: IRV, 14:48 7-06-2004[/s]

hasherfrog 07-06-2004 15:37 1367

Посмотрите Shutdown Stopper здесь.
Подобный софт (похуже качеством, имхо) здесь
Для интересующихся вопросом: интересные вещи здесь
Для программеров: здесь

Greyman 07-06-2004 21:23 1368

IRV
А разве она на перезагрузку в этом случае не уходит?

IRV 07-06-2004 21:50 1369

Уходит. Но питание не отрубается и всё железо не обесточивается - а для него вкл\выкл очень болезненен.
Имхо, значимость поставленного в теме вопроса преувеличена.

Greyman 09-06-2004 11:50 1370

IRV
Цитата:

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

hasherfrog
О, спасибо за ссылки. Будем-с разбираться, надеюсь че и подойдет...

[s]Исправлено: Greyman, 12:09 9-06-2004[/s]

hasherfrog 30-06-2004 09:45 1371

Greyman
Не то, чтобы я хвастаюсь, но посмотрите тут. Мне интересно именно Ваше мнение по поводу удобства работы с прогой (поскольку отчасти для Вас это и писалось).

Greyman 30-06-2004 12:08 1372

hasherfrog
Ну а как с предотвращением отключения? Или предполагаеться, что для этого эти 20 секунд используеться? От себя отмечу следующие неудобства:
1) На сколько я понял, прога работает только если вызывать в ручную, штатное завершение работы она не перехватывает? Если так, то это не очень удобно, т.к. я всегда завершаюсь по горячим клавишам (если вручную, для шедулера есть свой набор прог, в том числе те, на которые ты дал ссылку). Т.е. теперь я должен всегда помнить, что завершаться по горячим клавишам нельзя, а надо пользоваться ярлыком (хотя есть вариант с переназначением клавишь - надо попробовать как оно будет...).
2) Не понятно с предотвращением ошибочной перезагрузки. Если для этого используются только 20-ти секундная пауза - то это не совсем удобно. С одной стороны, сама перезагрузка задерживаеться на время этой паузы - иногда это может вызвать лишнюю задержку, ну уж по крайней мере, прибавить раздражения по этому поводу. С другой стороны, наличие задержки не являеться уж очень серьезным параметром, чтоб предотвратить зыкрытие нужных программ (по крайней мере для меня). Я же не буду каждый раз во время этой паузы пялиться на экран мучительно перебирая в памяти, а не забыл ли я чего, что мне еще пока нужно. Так можно делать один раз, ну два - а потом просто не будешь на нее обращать внимание, а будешь в это время заниматься каким нибудь другим делом. Если бы можно было каждый раз перед перезагрузкой/ выключением внимательно проверять состояника компа - то необходимости в том, что здесь обсуждаеться, не было бы. Просто перед самой перезагрузкой какжый раз все внимательно проверялось, а уже потом комп отключался штатными средствами. Для меня, например, "спусковым крючком" для вспоминания о заботой проге вялсяеться как раз активный процесс завершения программ - сворачивание окон, пропадание иконок из таск-бара и т.д. Поэтому для меня бы идеальным был вариант прерывания уже начавшейся перезагрузки, но на том этапе, когда эта отмена еще имеет смысл - т.е. нужная прога еще не закрылась. А так, я пока решил использовать предложенный "Shutdown Stopper", хотя у него и есть довольно больой минус - он не делает предотвращения при выключении компа по кнопке питания на самом блоке.

IRV 30-06-2004 12:54 1373

Цитата:

у него и есть довольно больой минус - он не делает предотвращения при выключении компа по кнопке питания на самом блоке.
И по выдёргивании вилки питания из сети он тоже не предотвращает выключение!
Можно найти ещё массу случаев, когда он не предотвращает выключение... И все эти варианты объединяет одно - команда на выключение софту не подаётся, т.е. софт до самого последнего момента  не предполагает, что сейчас пропадёт питание. Поэтому очевидно, что противодействовать такому развитию событий никакая программа в принципе не сможет.

hasherfrog 30-06-2004 14:47 1374

Greyman
1) Ну это можно действительно решить через горячие клавиши, имхо.
2) Тут действительно всё сложно.
  1. По поводу раздражения от 20-секундной паузы. Изначально я хотел добавить ключ в реестре, где можно было бы хранить задержку, специально для продвинутых пользователей. Но потом всё-таки пришёл к выводу, что это лишнее.
  2. По поводу перехвата штатного отключения - AbortSystemShutdown на это не рассчитана. Остается догадываться, как это делает ShutDownStopper, - наверное перехватывает каким-то образом вызов системной функции из dll. Честно говоря, не знаю, я на этом не заморачивался.
  3. По поводу отключения через кнопку питания. Если я всё правильно поняли (и это был не сарказм, как считает IRV), Вы имели в виду ситуацию, когда нажатие Power на морде компа вызывает обычное отключение виндовыми средствами (как если бы Вы сказали Пуск->выключить). Это доступно, емнип, только на последних машинах с ACPI-чего-то-там. Тут, я думаю, ShutDownStopper оказывается не у дел потому, что его "цепляние" на соответствующую функцию происходит уже после того же действия со стороны библиотеки расширенного управления питанием (или стоппер вообще про это не знает).
  4. Судя по Вашему описанию Ваших действий процесса отключения (только теперь до меня дошло, что собственно, Вы делаете и что (и как) Вам мешает), можно сделать енумерацию действующих процессов на момент отключения машины. Если есть незакрытые процессы, можно спросить пользователя. а дествительно ли он собрался уходить. Всё это, конечно, не решает A, B, C. Но можно попробовать.
Жаль, но всё это "с кондачка" не  напишешь. Как буду проходить мимо похожей задачи, сделаю апдейт :rotate:

[s]Исправлено: hasherfrog, 14:49 30-06-2004[/s]

Greyman 02-07-2004 13:40 1375

IRV
Цитата:

И по выдёргивании вилки питания из сети он тоже не предотвращает выключение! Можно найти ещё массу случаев, когда он не предотвращает выключение...
Можно... А кто спорит?..
Цитата:

И все эти варианты объединяет одно - команда на выключение софту не подаётся, т.е. софт до самого последнего момента *не предполагает, что сейчас пропадёт питание.
Ну может у кого что и объединяет, но случай описанный мной (не думал, что уровень детализации должен быть на стоко высок...) сюда точно не подходит, т. к. я имел в виду действие системы при нажатии кнопки питания на передней панели корпуса в случае использование ATХ-вых мамки и блока и соответствующих настроек в биосе (у некоторых есть возможность настроить кнопку, чтоб она по нажатию сразу обрубала питание).
Цитата:

Поэтому очевидно, что противодействовать такому развитию событий никакая программа в принципе не сможет.
Ну, это конечно можно уже посчитать оффтопиком, но я как раз придерживаюсь другого мнения... Чем плох вариант в внешней камерой и соответствующим ПО, которое будет реагировать на попытки пользователя протянуть куда-то ручки и громко и ясно об этом заявить? Если софт не будет очень тормозить, а юзер будет не шибко шустрый - вполне может сработать...:)

hasherfrog
Цитата:

Судя по Вашему описанию Ваших действий процесса отключения (только теперь до меня дошло, что собственно, Вы делаете и что (и как) Вам мешает), можно сделать енумерацию действующих процессов на момент отключения машины. Если есть незакрытые процессы, можно спросить пользователя. а дествительно ли он собрался уходить. Всё это, конечно, не решает A, B, C. Но можно попробовать.
Хм-м-м... Идеальным вариантом я вижу нечто вроде ShutdownStopper, но со следующими дополнениями:
1) поддержка перехвата при выключении по кнопке питания (при поддержке ACPI на ATX-вой мамке);
2) возможность задавать список приложений и процессов, активность которых не будет позволять автоматическое завершение, а будет ожидаться решение пользователя. Сюда же желательно предусмотреть возможность интервала паузы, после которой комп таки можно выключить, несмотря на процессы-исключения;
3) анализ загрузки процессора (как общей, так и по процессам) для принятия решения о допустимости завершения работы
4) ... пока не сформулировал

hasherfrog 02-07-2004 14:04 1376

Greyman
2 и 3 проблем не представляют. А вот 1... :cranky:


Время: 11:51.

Время: 11:51.
© OSzone.net 2001-