Задать вопрос

Как мгновенно выключить питание ATX из Windows?

Как мгновенно полностью выключить питание ATX из Windows?

Интересует консольная утилита или хотя бы метод WinAPI, который можно реализовать в DLL на любом популярном языке программирования.
ПОлагаю, что такое действие возможно только на уровне ядра, поэтмоу может есть какой то небольшой драйвер, поставив который, можно эту функцию вызывать?

Выключение нужно моментальное (то есть надо программно дать туже самую команду, которая даёт сама винда, чтобы выключить при выключении питания материнскую плату)
  • Вопрос задан
  • 953 просмотра
Подписаться 3 Простой 10 комментариев
Пригласить эксперта
Ответы на вопрос 8
phaggi
@phaggi
лужу, паяю, ЭВМы починяю
Подключаешь к компьютеру матричный принтер, желательно А3 формата, он помассивней, привязываешь к каретке принтера веревкой вилку кабеля питания выключаемого компьютера, отправляешь на этот принтер печать строки «выключи меня скорееееееееееееееееееееееееееееееее» и всё.

Есть альтернативный вариант: напротив кнопки питания на блоке питания выключаемого компьютера ставится выключающий компьютер с CD-дисководом. На выключающем компьютере даёшь команду выдвинуть лоток CD-дисковода, тот нажимает на кнопку питания выключаемого - профит!

Также есть любопытный приборчик fingerbot - управляемый беспроводной палец для нажатия физических кнопок. Поищи, их сейчас много продается разных. У меня такой управляет кнопкой подсветки на кухонной вытяжке (неохота лезть внутрь, приклеил fingerbot-а).
spoiler
6783664121fcf184378883.jpeg
больше года полёт нормальный.
Ответ написан
15432
@15432
Системный программист ^_^
Вам нужно считать определенную ACPI таблицу, в которой содержится информация об адресе регистра и значении, которое записать для выключения или перезагрузки системы, затем, собственно, проделать это.

Начните с утилиты RW Everything, в ней вы сможете просмотреть содержимое ACPI таблиц, найти нужную, найти значения, а так же записать эти регистры в удобном GUI интерфейсе. После чего реализуйте это в коде, например, как я описывал в статье
Ответ написан
Комментировать
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Как мгновенно полностью выключить питание ATX из Windows?

Никак. Даже если рубануть кнопку на сетевом фильтре, кондеры в БП какое-то время держат заряд и БП выдает напряжение.
Если Вы сочиняете велосипед против терморектального криптоанализа - успокойтесь, обьектом данного анализа является вовсе не комп, а Вы ;) Во всех других случаях рисковать тем, что система больше не загрузится - зачем?

Существуют промышленные системы мгновенной очистки дисков (правда, не знаю, как там с ssd) - это просто такая большая фиговина, которая крепится над отсеком с дисками и при нажатии тревожной кнопки выдает ох...ренительный электромагнитный импульс.
Ответ написан
@rPman
Не воспринимай как решение, но как другой взгляд на него.

Настраиваешь перезагрузку после BSOD (к сожалению не нашел как вызвать выключение), ищешь способ принудительно его вызвать (например с помощью утилиты), настраиваешь загрузчик на запуск какого-нибудь linux, который вернет загрузчик назад и выключит компьютер.. что бы в BIOS долго не задерживалась загрузка, настраиваешь fast startup (я помню на какой то материнке это занимало пару секунд).

p.s. классный вопрос, не говоря о том что состояний выключения не одно, есть разные виды сна (возможно лучше использовать их, если вам реально нужно быстро прекратить тратить энергию, при работе от батареи), есть разные устройства, которым нужно предварительно указать на выключение, есть acpi который этим управляет и uefi к которому можно обратиться,..

не уверен можно ли красиво решить твою задачу, но с помощью ИИ с большим контекстным окном можно скормить ему весь msdn на эту тему и задать тот же вопрос (там есть путаница, так как все это инструкции как управлять устройствами и очень немного про выключение всей машины)
Ответ написан
@VT100
Embedded hardware & software.
Копать в сторону ACPI, упомянутого rPman . Не забывая совет hint000 . Например - изучить исходники линуксового halt.
Я так думаю ©
Ответ написан
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
Повесить микроконтроллер на порт, который будет подавать команду на реле, которое разорвет цепь питания.
Ответ написан
@mnnoee
Мать uefi поддерживает?
Самый лёгкий способ вызвать BSOD с перезагрузкой в груб с сиесекундным выключением
А ватчдог есть в матери?
А использовать NtRaiseHardError?
Как много вопрос и как мало ответов
А Ардуино+реле+ком-порт тоже не вариант?
:(
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы