<?xml version="1.0" encoding="utf-8"?>
<HmsProcessMediaConfig version="2.18">
  <ProcessMediaItemList>
    <ProcessMediaItem>
      <HotKey>0</HotKey>
      <Description></Description>
      <Name>Выключение компьютера если телевизор выключен</Name>
      <ButtonName></ButtonName>
      <Button>0</Button>
      <Script>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 &lt; 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"); // Выполнение команды выключения компьютера
  }
  
}

</Script>
      <ScriptSyntaxType>C++Script</ScriptSyntaxType>
      <ScheduleActive>0</ScheduleActive>
      <Schedule>
        <TaskName></TaskName>
        <TaskParams></TaskParams>
        <Occurs>0</Occurs>
        <DailyMode>0</DailyMode>
        <DailyDaysInterval>1</DailyDaysInterval>
        <WeeklyDaysOfWeek>127</WeeklyDaysOfWeek>
        <WeeklyWeekInterval>1</WeeklyWeekInterval>
        <MonthlyMode>0</MonthlyMode>
        <MonthlyDayOfMonth>1</MonthlyDayOfMonth>
        <MonthlyWeekOfMonth>0</MonthlyWeekOfMonth>
        <MonthlyDayOfWeek>0</MonthlyDayOfWeek>
        <MonthlyMonths>4095</MonthlyMonths>
        <DailyFrequency>0</DailyFrequency>
        <OnceAtTime>0</OnceAtTime>
        <ExecuteTimeList></ExecuteTimeList>
        <TimeUnit>0</TimeUnit>
        <TimeInterval>3600</TimeInterval>
        <TimeStart>0</TimeStart>
        <TimeEnd>86399</TimeEnd>
        <DateStart>42567</DateStart>
        <NoEndDate>-1</NoEndDate>
      </Schedule>
    </ProcessMediaItem>
  </ProcessMediaItemList>
</HmsProcessMediaConfig>
