PDA

Показать полную графическую версию : [решено] Подтверждение при нажатии кнопок "Завершение работы" и "Перезагрузка"


Страниц : [1] 2

amilak
28-02-2012, 17:13
помогите решить проблему: система Windows 7 Ultimate 64 bit ... для удобства в панели задач размещены два ярлыка - завершение работы Windows (C:\Windows\System32\shutdown.exe -s -t 00) и перезагрузка (C:\Windows\System32\shutdown.exe -r -t 00). Как сделать так, чтобы при нажатии на кнопку завершение работы и перезагрузка выполнялись не сразу, а требовали подтверждения? Это нужно, чтобы обезопасить систему от случайного нажатия этих кнопок

Blast
28-02-2012, 17:14
Установите для этих задач таймер в секунд 5 и сможет отменить при случайном нажатии.

amilak
28-02-2012, 17:17
таймер не подходит ... чаще всего кнопки завершения работы или перезагрузки нажимают жена или сын, которым глубоко плевать на таймер ... кроме того, доподлинно понять, что ты случайно нажал, к примеру, на кнопку ребута, можно лишь тогда, когда система уйдет в перезагруз

Vadikan
28-02-2012, 17:17
Blast, за пять секунд человек вряд ли успеет набрать shutdown /a в командной строке :)

чаще всего кнопки завершения работы или перезагрузки нажимают жена или сын, которым глубоко плевать на таймер »
Ну так пусть они пользуются обычными кнопками в своих учетных записях... [подкаст] 7 причин использовать отдельные учетные записи для каждого члена семьи (http://www.outsidethebox.ms/11767/)

Вообще не понимаю смысла делать кнопки, а потом искать способ обойти случайное нажатие. Бонус: используйте режимы сна и гибернации! (http://www.outsidethebox.ms/11296/#bonus)

Blast
28-02-2012, 17:21
за пять секунд человек вряд ли успеет »
ну так ярлычок третий "для удобства" :)

amilak
28-02-2012, 17:25
предлагаю не предлагать такие варианты решения проблемы как на фига тебе нужны эти кнопки, отдельные учетные записи и выбрось ты этот компьютер ... только по существу

Vadikan
28-02-2012, 17:29
только по существу »
Хм... мы уже знаем, что вас не интересуют ответы по существу (http://forum.oszone.net/thread-228823.html).

Но раз вы требуете, то ответ по существу такой. В окне, которое выводит команда shutdown при перезагрузке/выключении, не предусмотрено кнопок для отмены операции.

Ваша хотелка не имеет решения в столь жесткой постановке вопроса.

Blast, +1 и LOL :)

Morpheus
28-02-2012, 17:33
@echo off
set /p answer=Enter your choice (Y or N):
if %answer%==y C:\Windows\System32\shutdown.exe -s -t 00

Blast
28-02-2012, 17:33
Заверните в cmd свои удобные команды и требуйте подтверждения. Пример:@echo off
set /p answer=Выполнить перезагрузку? (Y/N):
if %answer%==y shutdown -r -t 00
clsтолько не говорите "зачем мне это нужно" :)

Morpheus
28-02-2012, 18:22
Blast, шо, апять? :)

Вспомнил, как можно сделать красиво...
http://s06.radikal.ru/i179/1202/c0/93ac1a3e63f8.jpg
nircmd.exe (http://soft.oszone.net/program/7092/NirCmd/) qbox "Перезагрузимся?" "Вопрос на засыпку :)" "shutdown.exe" -r -t 00

amilak
28-02-2012, 18:28
сори, но я не такой продвинутый пользователь, чтобы разобраться как этот код завернуть в cmd ... нужно создать в текстовом редакторе файл с этим кодом и расширением .bat ?

Morpheus
28-02-2012, 18:30
amilak, именно.

amilak
28-02-2012, 18:31
Morpheus, спс, попробую разобраться, хотя, конечно, хотелось бы без сторонних утилит и гаджетов всяких обойтись

Morpheus
28-02-2012, 18:33
amilak, в случае с cmd/bat сторонние утилиты не нужны.
Сторонняя утилита используется только в сообщении 10, для "деланья красиво".

Vadikan
28-02-2012, 18:48
Morpheus, тогда заодно нужно рассказать про автоперевод фокуса на запущенную программу (http://www.oszone.net/10594/run_as_admin#430).

Иначе количество кликов вкупе с нажатиями клавиш сравняется с тремя кликами, которые требуются для перезагрузки из меню Пуск :) Для выключения их уже столько же.

amilak
28-02-2012, 18:53
сделал файл reboot.bat с кодом:
@echo off
set /p answer=Выполнить перезагрузку? (Y/N):
if %answer%==y shutdown -r -t 00
cls
кошмар какой-то вышел, при нажатии появляется окно командной строки с текстом в виде абракадабры (по-видимому, это "Выполнить перезагрузку?" некорректно отображается) и предложением нажать Y/N ... слишком громоздко и долго ... есть масса утилит сторонних для завершения работы и ребута, но просто хотелось бы свои ярлыки с командами shutdown.exe -s -t 00 и shutdown.exe -r -t 00 настроить ... может, как-то нужно ключ запуска изменить ?! мне тут подсказывают, что нужно изменить таймаут, подтверждения не будет, но будет кнопка отмены, но я, честно говоря, не улавливаю смысл ...

Blast
28-02-2012, 18:55
Vadikan, ты меня опередил :)
Вот смотрю я на все это и недоумеваю...
amilak, я не хочу учить вас жизни или навязывать свое видение, но просто подумайте. Вы сделали ярлык для выключения компьютера в один клик - ок, мне сложно понять преимущества, но я принимаю, что вам это нужно. Теперь вы сделали тот же ярлык, но с подтверждением действия, что привело нас к двум кликам для выполнения операции (при условии использования варианта с nicmd). Собственно один клик - это нажатие кнопки Пуск и второй клик это нажатие кнопки Завершение работы, итого - два клика.
Любите шорох орехов? :)

с текстом в виде абракадабры »
Кодировку поменяйте: [решено] Кириллица в cmd и bat файлах (http://forum.oszone.net/thread-47627.html)слишком громоздко и долго »
Тогда юзайте вариант из сообщения #10 (http://forum.oszone.net/post-1868562-10.html)

Vadikan
28-02-2012, 19:02
мне тут подсказывают, что нужно изменить таймаут, подтверждения не будет, но будет кнопка отмены »
Попробуйте и увидите, что будет кнопка "Закрыть" :)

Blast
28-02-2012, 19:16
Последний вариант... честно :)

Действия те же, только теперь код в текстовый файл и сохраните с расширением vbsMessage = "Сейчас как перезагрузится..." & vbCR & vbCR
Message = Message & "Продолжить?"

X = MsgBox(Message, vbYesNo, "А оно надо?")

If X = 6 Then

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run ("shutdown -r -t 00")

Else

MsgBox "Фух... пронесло кажется." & vbcr & vbcr, 4096, "Юзер испугался"

End If

Красным выделены тексты сообщений и заголовков в окошках подтверждения и информации, зеленым команда для выполнения при согласии - меняйте как понравится.

Только помните, что WHS сценарии не умеют запрашивать повышение привилегий при включенном UAC

Vadikan
28-02-2012, 21:16
После шестого поста я даже не сомневался, что в итоге все сведется к банальному VBS. Но на домашнем ПК его отличие от nircmd, лежащей в system32, трудно объяснить с точки зрения здравого смысла. В общем, как и...




© OSzone.net 2001-2012