<?xml version="1.0" encoding="utf-8"?>
<HmsProcessMediaConfig version="2.33">
  <ProcessMediaItemList>
    <ProcessMediaItem>
      <HotKey>0</HotKey>
      <Description>Запуск текущего выделенного элемента в POT Player</Description>
      <Name>Запуск в POT Player</Name>
      <ButtonName></ButtonName>
      <Button>-1</Button>
      <Script>///////////////////////////////////////////////////////////////////////////////
// Проверка, является ли ссылка ссылкой на медиа-файл или нет (ugly! but fast)
bool itsAFile(string sLink) {
  //string sData, sPage, sServ; int nPort = 80;
  //if (LeftCopy(sLink, 5)=="https") nPort = 443;
  //HmsRegExMatch2("//(.*?)(/.*)", sLink, sServ, sPage);
  //HmsSendRequestEx(sServ, sPage, "HEAD", "", sLink, "", nPort, 0, sData);
  //HmsRegExMatch("^(.*?)\\?", sLink, sLink); // так в utorrent
  string sMime = HmsGetMimeType(ExtractFileExt(sLink));
  return ((sMime != "") || (Pos(".m3u8", sLink) &gt; 0));
}

///////////////////////////////////////////////////////////////////////////////
// Запуск команды в системе
void RunCmd(string sCmd) {
  
  try { Variant objShell = CreateOleObject(&apos;WScript.Shell&apos;); } except { }
  
  if (VarType(objShell)==varDispatch) objShell.Run(sCmd);
  else ShowMessage("Ошибка создания объекта ActiveX WScript.Shell для запуска командной строки.");

}

///////////////////////////////////////////////////////////////////////////////
// Получение http адреса HMS сервера
string GetHttAddressHMS() {
  THmsScriptUPnPDeviceList DeviceList; THmsScriptUPnPDevice Device;
  
  DeviceList = THmsScriptUPnPDeviceList.Create(udtDeviceMediaServer);
  if (DeviceList.Count &gt; 0) {
    Device = DeviceList.Items[0];
    Result = "http://" + Device.HttpServerAddr;
  }
  DeviceList.Free();
  return Result;
}

///////////////////////////////////////////////////////////////////////////////
// Получение ссылок выделенных элементов и запуск их в POT
void RunWithsPOT() {
  string sPOT, sParams, sLink, sServer, sData;
  int i; THmsScriptMediaItem Item; THmsScriptMediaItemList ItemList;
  
  try {
    HmsShowProgress("Запуск ссылки в POTPlayer...");

    if (HmsCurrentMediaListSelection.Count == 0) {
      ShowMessage("Не выделен ни один медиа файл.");
      return;
    }
    
    sPOT = "c:\\Program Files (x86)\\TCPU69Test\\Programm\\PotPlayer\\"; // тут прописать свой путь с плееру //
    
    if (sPOT=="") { ShowMessage("Не удалось найти установленный POT плеер."); return; } 
    else sPOT += "\potplayermini.exe";
    
    sServer = GetHttAddressHMS();
    
    for (i=0; i &lt; HmsCurrentMediaListSelection.Count; i++) {
      Item = HmsCurrentMediaListSelection.Items[i];
      
      sLink = Item[mpiFilePath];
      if (!itsAFile(sLink)) {
        sLink = Item[mpiMediaResourceSource];
      }
      
      if (sLink=="") { ShowMessage("Ошибка получения ссылки на медиа-файл. Пустая ссылка."); return; }
      
      if ((LeftCopy(sLink, 2)=="-i") || (LeftCopy(sLink, 4)=="\\\\.\\")) {
        sLink = sServer + Item.WebLink(Item.ItemOrigin);
        if (Pos(".asx", sLink) &gt; 0) {
          sData = HmsDownloadURL(sLink);
          HmsRegExMatch(&apos;HREF="(.*?)"&apos;, sData, sLink, 1, PCRE_CASELESS);
        }
      }
      sLink = ReplaceStr(sLink, &apos;torrent:&apos;, &apos;&apos;);
      HmsRegExMatch("\\=(.*?)$", sLink, sLink);
      HmsRegExMatch("\\=(.*?)$", sLink, sLink);
      sParams += &apos; "&apos; + sLink + &apos;"&apos;;
      HmsSetProgress(Round(100 / HmsCurrentMediaListSelection.Count * (i+1)));
    }
    
    RunCmd(Format(&apos;"%s"  %s&apos;, [sPOT, sParams]));
    
  } finally { HmsHideProgress(); }
  
}

///////////////////////////////////////////////////////////////////////////////
//                     Г Л А В Н А Я   П Р О Ц Е Д У Р А                     //
{
  
  RunWithsPOT();

}</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>42672</DateStart>
        <NoEndDate>-1</NoEndDate>
      </Schedule>
    </ProcessMediaItem>
  </ProcessMediaItemList>
</HmsProcessMediaConfig>
