C ++: удаленно переводить компьютер в спящий режим

0

Как я могу спящий режим на Windows-машине, работающей под управлением Windows 7 или 8 через локальную сеть с другого компьютера?
Есть ли для этого функция WinAPI? Или мне нужно отправлять специальные магические пакеты или что-то вроде этого?
Все, что я знаю, это то, что PsShutdown.exe способен это сделать (якобы, я не пробовал).

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

Я также хотел бы знать, нужно ли мне изменять определенные настройки на целевом компьютере. Я не уверен, что это важное, но shutdown/s/m \\ComputerName не работает на моем целевом ПК.

Теги:
winapi
shutdown

2 ответа

0

Насколько я знаю, единственный способ дистанционно спячки на машине - использовать тот же метод, что и psshutdown: скопировать исполняемый файл на удаленную машину и установить его как системную службу.

API OpenSCManager позволяет указать целевой компьютер, и вы можете использовать возвращаемый дескриптор для вызова CreateService, а затем StartService. Служба может удалить себя, как только она выполнит свою работу.

0

Документ TechNet Перезапустите или закройте удаленный компьютер и задокументируйте причину, чтобы описать требования к использованию команды shutdown.exe на удаленном компьютере.

  1. Чтобы использовать эту функцию, на удаленном компьютере должна быть включена служба удаленного реестра.

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

  • 0
    Вы неправильно поняли две вещи. Во-первых, я хочу использовать функцию API, COM или аналогичную, а во-вторых, я хочу перевести свой целевой компьютер в спящий режим, не выключая его и не перезапуская его. Проблема с shutdown.exe заключается в том, что это выделенный exe-файл, который будет означать безумно плохую производительность, особенно при многократном запуске, а также очень слабый контроль и отсутствие спящего режима для удаленных ПК.
  • 0
    API-функция InitiateShutdown выглядит так, как будто API-интерфейс shutdown.exe основан на множестве одинаковых флагов. Я думаю, вы обнаружите, что перечисленные выше требования удовлетворяют, используете ли вы API напрямую или через shutdown.exe (и я не совсем понимаю ваш комментарий о «безумно плохой производительности» - как часто вы собираетесь это делать) так или иначе?).
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню