Можно сделать так.
В HMS есть событие "Бездействие сервера (30 минут)". Можно написать обработку, которая будет срабатывать при этом событии. Например, выключать компьютер.
Но если вы телек просто смотрели не обращаясь к HMS, то это событие тоже, как я понял, может сработать. Поэтому можно также там и проверить доступность устройства с определённым IP адресом - IP телека.
UPD 2016.07.17: Исправлена ошибка в скрипте и обновлена прикреплённая обработка! Первоначальная версия была неработоспособна.
Например, можно использовать такой код:
string gsIP = "192.168.1.20"; // IP адрес телевизора, который будет проверяться на доступность
///////////////////////////////////////////////////////////////////////////////
// Проверка доступности устройства по его IP
bool DeviceIsUp(string sIP) {
bool bAvaliable = false; THmsScriptUPnPDevice DEVICE;
// Получаем список устройств и перебираем их - ищем нужный IP адрес
THmsScriptUPnPDeviceList DEVLIST = THmsScriptUPnPDeviceList.Create();
try {
for (int i=0; i < DEVLIST.Count; i++) {
DEVICE = DEVLIST[0]; if (DEVICE.IpAddress != sIP) continue;
bAvaliable = true;
break;
}
} finally { DEVLIST.Free; }
return bAvaliable;
}
///////////////////////////////////////////////////////////////////////////////
// Функция запуска указанной команды на выполнение
bool ExecuteCmd(string sCmd) {
bool bSuccess = false; variant objShell;
try {
objShell = CreateOleObject("WScript.Shell");
objShell.Run(sCmd);
bSuccess = true;
} except {
if (VarType(objShell) != varDispatch)
ShowMessage("Невозможно создать ActiveXObject WScript.Shell для запуска выключения компьютера.");
else
ShowMessage("Ошибка запуска команды "+sCmd);
}
return bSuccess;
}
///////////////////////////////////////////////////////////////////////////////
// Г Л А В Н А Я П Р О Ц Е Д У Р А //
///////////////////////////////////////////////////////////////////////////////
{
if (!DeviceIsUp(gsIP)) { // Проверка, выключено ли устройство с указанным IP
ExecuteCmd("shutdown.exe /s /f /d p:1:1"); // Выполнение команды выключения компьютера
}
}
Обработку с данным кодом также прикрепляю.
В данном скрипте нужно, естественно, указать свой IP адрес устройства (телевизора).
Конечно, компьютер в таком случае не будет выключатся моментально, как выключится телевизор, а только через пол часа. Не знаю, устроит ли.
Как вариант, можно ещё эту обработку запускать по расписанию, но как-то опасно, вдруг по какой-то причине устройство будет недоступно и комп выключится никого не спрашивая.
Как загрузить обработку
Sony Bravia KDL-32CX523