Вы должны войти, чтобы создавать сообщения и темы.

создать простой таймер выключения из контекстного меню

Страница 1 из 3► 3

Бонжур! 
Есть команды shutdown:

Компьютер будет выключен через:
Скопированоshutdown -s -t 10
Выключение будет приостановлено
Скопированоshutdown -a
Все приложения будут принудительно закрыты
Скопированоrem shutdown -f

Нельзя ли их как то изящно вмонтировать в контекстное меню, дабы выключать компьютер через определённое время, не прибегая к установкам дополнительного софта, обходясь штатными средствами Windows? (Без заморочек открытия какой-то программы и ковыряясь в ней минуты 3, чтобы что-то там настроить и в итоге компьютер не выключается, потому что программа не смогла завершить работающие процессы)

Час добрый!
У Хачатура на эту тему было чрезвычайно полезное видео. Полагаю, при необходимости можно просто скомпилировать этим софтом bat'ники со всеми необходимыми командами, обозвать их как-нибудь и запихать в контекстное меню с помощью редактора реестра.

Лайкнули XpucT и Удаленный пользователь
XpucTУдаленный пользователь

Разобраться как это влепить в контекстное меню, мне жизни не хватит. А для подобной компиляции я прежде пользовался Bat To Exe Converter, там есть возможность выбрать разрядность, запуск в скрытом режиме, поставить иконку и многое другое...

Цитата: Azov от 08.08.2022, 00:06

Разобраться как это влепить в контекстное меню, мне жизни не хватит. 

Добрый вечер.
Для этого есть специальные программы - редакторы контекстного меню.  

Лайкнул Удаленный пользователь
Удаленный пользователь
Голова дана человеку не для того, чтобы кушать, а для того, чтобы думать.

Иконку и прочее можно с помощью Resource Hacker'а влепить какую захочешь, или указать прямо в реестре. Если не хочется пользоваться дополнительным софтом - собираешь bat'ник, компилируешь, далее заходишь в редактор реестра, и по пути СкопированоHKEY_CLASSES_ROOT\DesktopBackground\Shell (если именно в контекстном меню Рабочего стола нужно) создаёшь папку, обзываешь её как угодно. В ней самой должно быть 3 строковых параметра (REG_SZ). По умолчанию - название. Вторую и третью назови Icon и Position. В Icon указываешь путь до иконки, в Position - предпочтительное положение (top - сверху, bottom - снизу, и т. п.). У неё так же должна быть подпапка под названием command, строковое значение в которой должно быть маршрутом до исполнительного файла (твоего скомпилированного bat'ника). Вот результат. Ещё раз - упомянутый выше маршрут в реестре именно для добавления пункта в контекстное меню рабочего стола, у проводника, например, другой маршрут.

Лайкнули Евгений и Удаленный пользователь
ЕвгенийУдаленный пользователь

Спасибо большое  Андрей и не подозревал, что такое существует. Буду изучать. Это очень полезный софт

Доброго

reg add "HKCR\DesktopBackground\Shell\Shutdown" /v "Icon" /t reg_SZ /d "" /f >nul
reg add "HKCR\DesktopBackground\Shell\Shutdown" /v "MUIVerb" /t reg_SZ /d "Shutdown" /f >nul
reg add "HKCR\DesktopBackground\Shell\Shutdown" /v "Position" /t reg_SZ /d "Bottom" /f >nul
reg add "HKCR\DesktopBackground\Shell\Shutdown" /v "SeparatorAfter" /t reg_SZ /d "" /f >nul
reg add "HKCR\DesktopBackground\Shell\Shutdown" /v "Subcommands" /t reg_SZ /d "" /f >nul

reg add "HKCR\DesktopBackground\Shell\Shutdown\Shell\OffTime" /ve /t reg_SZ /d "Компьютер будет выключен через ..." /f >nul
reg add "HKCR\DesktopBackground\Shell\Shutdown\Shell\OffTime" /v "Icon" /t reg_SZ /d "shell32.dll,-28" /f >nul
reg add "HKCR\DesktopBackground\Shell\Shutdown\Shell\OffTime\command" /ve /t reg_SZ /d "shutdown -s -t 10" /f >nul

reg add "HKCR\DesktopBackground\Shell\Shutdown\Shell\StopOff" /ve /t reg_SZ /d "Приостановить выключение" /f >nul
reg add "HKCR\DesktopBackground\Shell\Shutdown\Shell\StopOff" /v "Icon" /t reg_SZ /d "imageres.dll,-1022" /f >nul
reg add "HKCR\DesktopBackground\Shell\Shutdown\Shell\StopOff\command" /ve /t reg_SZ /d "shutdown -a" /f >nul

reg add "HKCR\DesktopBackground\Shell\Shutdown\Shell\CloseApplication" /ve /t reg_SZ /d "Закрыть принудительно приложения" /f >nul
reg add "HKCR\DesktopBackground\Shell\Shutdown\Shell\CloseApplication" /v "Icon" /t reg_SZ /d "shell32.dll,-240" /f >nul
reg add "HKCR\DesktopBackground\Shell\Shutdown\Shell\CloseApplication\command" /ve /t reg_SZ /d "shutdown -f" /f >nul

СкопированоHKEY_CLASSES_ROOT\DesktopBackground\Shell- к. меню раб. стола
СкопированоIcon - путь к иконке
СкопированоMUIVerb- название пункта
СкопированоPosition- позиция (top,bottom,center)
СкопированоSeparatorAfter/SeparatorBefore - сепаратор после/перед
СкопированоSubcommands- выпадающий список
Menu

Лайкнули XpucT, Евгений и ещё 4
XpucTЕвгенийЯRАндрейИльяУдаленный пользователь

Спасибо Огромное Vlado. Это просто великолепно. Есть только один минус, невозможно добавить своё время, в тот момент, когда кликаешь по пункту контекстного меню. Но я думаю, решу это с помощью добавления туда 20 разных пунктов с вариантами через 5 минут, 10, 15, 20, 30, 40, 50, 1час, 2 часа, 3 часа, 4 часа. )))

Ещё раз спасибо и низкий поклон до земли, за проделанную работу и за такой замечательный образец, уже с наглядным исполнением! Восхитительно!

Лайкнул XpucT
XpucT
Цитата: Azov от 08.08.2022, 00:55

Есть только один минус, невозможно добавить своё время, в тот момент, когда кликаешь по пункту контекстного меню.
решу это с помощью добавления туда 20 разных пунктов

Не следует
В CMD вот это вставьте

reg add "HKCR\DesktopBackground\Shell\Shutdown\Shell\OffTime\command" /v "" /t REG_SZ /d "cmd.exe /cecho @echo off >> C:\1.bat&echo set \"varA=\" >>C:\1.bat&echo echo Введите через сколько сек ПК выключится>>C:\1.bat&echo set /p \"varA=\" >>C:\1.bat&echo shutdown -s -t %%%%varA%%%%>>C:\1.bat&echo exit>>C:\1.bat&start C:\1.bat" /f >nul

Всегда вводите нужное кол-во секунд Вам

reg add "HKCR\DesktopBackground\Shell\Shutdown\Shell\OffTime\command" /v "" /t REG_SZ /d "cmd.exe /cecho @echo off >> C:\1.bat&echo set \"varA=\" >>C:\1.bat&echo echo Введите через сколько сек ПК выключится>>C:\1.bat&echo set /p \"varA=\" >>C:\1.bat&echo shutdown -s -t %%varA%%>>C:\1.bat&echo exit>>C:\1.bat&start C:\1.bat" /f >nul

Опечатка выше

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

Спойлер

Представляю сколько бы я часов затратил, если бы сам это контекстное меню создавал с ноля, руководствуясь инструкцией Андрея 
Но зато теперь знаю, как это делается. И что, за что отвечает. Это полезные знания, которые обязательно пригодятся и не один раз. 

Сейчас приступлю ко второму Вашему варианту.

У меня почему-то второй метод вообще не отрабатывает 

chcp 1251
reg add "HKCR\DesktopBackground\Shell\Shutdown" /v "Icon" /t reg_SZ /d "mmres.dll,8" /f >nul
reg add "HKCR\DesktopBackground\Shell\Shutdown" /v "MUIVerb" /t reg_SZ /d "Завершение работы" /f >nul
reg add "HKCR\DesktopBackground\Shell\Shutdown" /v "Position" /t reg_SZ /d "Bottom" /f >nul
reg add "HKCR\DesktopBackground\Shell\Shutdown" /v "SeparatorAfter" /t reg_SZ /d "" /f >nul
reg add "HKCR\DesktopBackground\Shell\Shutdown" /v "Subcommands" /t reg_SZ /d "" /f >nul
reg add "HKCR\DesktopBackground\Shell\Shutdown\Shell\OffTime" /ve /t reg_SZ /d "Выключить через" /f >nul
reg add "HKCR\DesktopBackground\Shell\Shutdown\Shell\OffTime" /v "Icon" /t reg_SZ /d "Shell32.dll,265" /f >nul
reg add "HKCR\DesktopBackground\Shell\Shutdown\Shell\OffTime\command" /v "" /t REG_SZ /d "cmd.exe /cecho @echo off >> C:\1.bat&echo set \"varA=\" >>C:\1.bat&echo echo Введите через сколько сек ПК выключится>>C:\1.bat&echo set /p \"varA=\" >>C:\1.bat&echo shutdown -s -t %%varA%%>>C:\1.bat&echo exit>>C:\1.bat&start C:\1.bat" /f >nul

exit

Я вроде ничего не изменял. Возникает консоль cmd с надписью "Введите через сколько сек ПК выключится", пишу любое число, нажимаю Enter, окно окрашеватся в синий цвет и ничего не происходил. Оно не скрывается. Я всегда сохраняю любые cmd в ANSI кодировке. И вставляю Скопированоchcp 1251  для корректного отображения кирилицы, может это повлияло и неподходит в этом конкретном случаи? 

Спойлер

Попробуй сохранить в юникоде, по идее должно помочь.

Цитата: Андрей от 08.08.2022, 05:05

Попробуй сохранить в юникоде, по идее должно помочь.

Да нет - пробовал всевозможные UTF 16, 8, 7, 32 / LE ; BE, с BOM, без BOM - все варианты в AkelPad. Результат, кракозябры в контекстном меню. А функционал не появился. Скорее дело не в кодировке, а в том, что у меня что-то не работает на компе, как я полагаю.

Страница 1 из 3► 3