Текущее время: 29 мар 2024, 01:43 • Часовой пояс: UTC + 3 часа
Сообщения без ответов | Активные темы

программа телепередач в екатеринбурге

Начать новую темуОтветить на тему Страница 2 из 2 [ Сообщений: 26 ] На страницу   Пред.  1, 2
Версия для печати Пред. тема | След. тема
АвторСообщение
Сообщение Добавлено: 24 апр 2008, 22:17. Заголовок сообщения: 
Зарегистрирован:
    23 янв 2007, 15:42
Сообщения: 12
Я для себя написал небольшую прогу, которая подкладывается в каталог к предварительно сконфигурированному ListTV и делает она следующее:
1) с e1 автоматом качается программа в формате ListTV и кладется в определенный каталог
2) запускает ListTV, который загружает скачанную программу телепередач и удаляет уже ненужные файлы
3) посылает в ListTV нажатия клавиш, которые заставляют его выгрузить программу в формате JTV в папку к бехолдеру

программка написана на дельфе, исходник прилагаю

Код:
program tv_console;

{$APPTYPE CONSOLE}

uses
  SysUtils,Windows,WinInet,DateUtils;

var
  fname,url,s,s1:string;

procedure WinExecute;
var
 si: TSTARTUPINFO;
 pi: TPROCESSINFORMATION;
 hwnd:Cardinal;
 l:integer;
begin
 l:=0;
 ZeroMemory(@si, SizeOf(si));
 ZeroMemory(@pi, SizeOf(pi));
 GetStartupInfo(si);
 si.cb := SizeOf(si);
 si.dwFlags := STARTF_USESHOWWINDOW;
 si.wShowWindow := SW_HIDE;

 Win32Check(CreateProcess(nil, pchar('ListTV.exe'), nil, nil, false,
    CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, si, pi));

 //ищем окно запущенного процесса
 repeat
  hwnd:=FindWindow(nil, 'ListTV');
  inc(l);
  sleep(1000);
 until ( hwnd <> 0 ) or ( l > 30 );

 if hwnd<>0 then
 begin
    SetForegroundWindow(hwnd);
    sleep(1000);
    keybd_event(VK_MENU,0,0,0);
    keybd_event(ord('S'),0,0,0);
    keybd_event(ord('S'),0,KEYEVENTF_KEYUP,0);
    keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);
    sleep(1000);
    keybd_event(VK_RETURN,0,0,0);
    keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0);
    sleep(1000);
    keybd_event(VK_RETURN,0,0,0);
    keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0);
    sleep(1000);
    keybd_event(VK_RETURN,0,0,0);
    keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0);
    sleep(1000);
    keybd_event(VK_MENU,0,0,0);
    keybd_event(ord('X'),0,0,0);
    keybd_event(ord('X'),0,KEYEVENTF_KEYUP,0);
    keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);
 end;
 WaitforSingleObject(pi.hProcess,INFINITE);
 CloseHandle(pi.hThread);
 CloseHandle(pi.hProcess);
end;

procedure DownloadFile;
var
  hInet, //<-переменная сод. указатель на сессию
  hURL: HINTERNET; //<-указатель на URL
  ReadLen: Cardinal; //<-количество реально прочитанных байт
  fBuf: array[1..4096] of byte; //<-буфер куда качаем
  f: file; //<-файл куда качаем
  Header: string; //<-|дополнительная переменная в HTTP заголовок
begin
  AssignFile(f, fname);
  ReWrite(f, 1);

  //открываем сессию
  hInet := InternetOpen('Mozilla', PRE_CONFIG_INTERNET_ACCESS, nil, nil, 0);
  //Пишем дополнительную строку для заголовка
  Header := 'Accept: */*';
  //открываем URL
  hURL := InternetOpenURL(hInet, PChar(url), pchar(Header), StrLen(pchar(Header)), 0, 0);

  //качаем до тех пор пока реально прочитаное число байт не
  //будет равно нулю
  repeat    //читаем в буфер
    InternetReadFile(hURL, @fBuf, SizeOf(fBuf), ReadLen);
    BlockWrite(f, fBuf, ReadLen); //<-пишем в файл
  until (ReadLen = 0);

  InternetCloseHandle(hURL); //<-|закрываем
  InternetCloseHandle(hInet); //<-|сесcии
  CloseFile(f); //<-|и файл
end;

BEGIN
  //качаем программу на текущую неделю
  s:=datetostr(date-1);
  s1:=Copy(s,7,4)+Copy(s,4,2)+Copy(s,1,2);

  fname:='c:\downloads\ekatv'+s1+'.htb';
  url:='http://www.e1.ru/afisha/tv/getprog.php?start='+s1;

  s:=datetostr(date-dayoftheweek(date)+7);
  s1:=Copy(s,7,4)+Copy(s,4,2)+Copy(s,1,2);

  url:=url+'&stop='+s1;
  writeln(url);
  DownloadFile;

  //и на следующую
  s:=datetostr(date-dayoftheweek(date)+8);
  s1:=Copy(s,7,4)+Copy(s,4,2)+Copy(s,1,2);

  fname:='c:\downloads\ekatv'+s1+'.htb';
  url:='http://www.e1.ru/afisha/tv/getprog.php?start='+s1;

  s:=datetostr(date-dayoftheweek(date)+14);
  s1:=Copy(s,7,4)+Copy(s,4,2)+Copy(s,1,2);

  url:=url+'&stop='+s1;
  writeln(url);
  DownloadFile;

  //вызываем ListTV
  WinExecute;
END.
Профиль 
Сообщение Добавлено: 03 авг 2008, 19:59. Заголовок сообщения: 
Зарегистрирован:
    23 янв 2007, 15:42
Сообщения: 12
Если у кого-то нет Delphi, но есть желание воспользоваться данной программой - http://ifolder.ru/7573957
Профиль 
Сообщение Добавлено: 13 авг 2008, 08:21. Заголовок сообщения: 
Аватара пользователя
Зарегистрирован:
    04 янв 2007, 15:26
Сообщения: 5
Откуда: Yekaterinburg
Может я что то не понимаю - но работать не хочет... :(
Связь это - наше всё. RU9CU
Профиль ICQ 
Сообщение Добавлено: 14 авг 2008, 19:58. Заголовок сообщения: 
Зарегистрирован:
    23 янв 2007, 15:42
Сообщения: 12
А поконкретнее? У меня (и не только) всё работает
Профиль 
Сообщение Добавлено: 14 авг 2008, 20:42. Заголовок сообщения: 
Аватара пользователя
Зарегистрирован:
    04 янв 2007, 15:26
Сообщения: 5
Откуда: Yekaterinburg
Баг нашёлся - у меня. Так что усё работает!
Связь это - наше всё. RU9CU
Профиль ICQ 
Сообщение Добавлено: 15 авг 2008, 20:54. Заголовок сообщения: 
Зарегистрирован:
    23 янв 2007, 15:42
Сообщения: 12
Ок, на самом деле господа пользующиеся - к вам просьба:
если есть какие-то пожелания по доработкам программы - пишите, не обещаю что буду делать всё, что захотите, но расти в общем-то есть куда :)

Ещё тут http://ifolder.ru/7729723 выложил исходники и скомпилированную программку для управления с пульта тюнера: эмулируются движения мыши, нажатия мышиных кнопок, поддерживается управление винампом и media player classic, а также регулировка громкости на наушниковом выходе звуковуй карты M-Audio Revolution 5.1 :) Поддерживаются пульты от 4хх, 5хх и 6хх моделей, от М6 скорее всего тоже будет работать просто проверить не на чем было, а вот остальные вряд ли.
Профиль 
Сообщение Добавлено: 29 дек 2008, 10:47. Заголовок сообщения: 
Зарегистрирован:
    15 авг 2006, 09:42
Сообщения: 40
Откуда: Екатеринбург, Россия
WinXP SP3 прога не работает, появляеться строчка с адремос програмки на е1, а дельше винда предлагет отправить отчет. и на этом прога закрываеться нечего не сделав.
Профиль ICQ 
Сообщение Добавлено: 02 янв 2009, 00:55. Заголовок сообщения: 
Зарегистрирован:
    23 янв 2007, 15:42
Сообщения: 12
У меня работает на SP3. У тебя есть каталог C:\Downloads ?
Профиль 
Сообщение Добавлено: 02 янв 2009, 15:46. Заголовок сообщения: 
Зарегистрирован:
    15 авг 2006, 09:42
Сообщения: 40
Откуда: Екатеринбург, Россия
ты прав его нет. Я создал все заработало. Но лучше перепиши прогу что использовала системную временную папку. Temp
Профиль ICQ 
Сообщение Добавлено: 07 янв 2009, 07:45. Заголовок сообщения: 
Зарегистрирован:
    23 янв 2007, 15:42
Сообщения: 12
Программе-то всё равно какую папку использовать, главное чтоб на неё же был настроен ListTV. Как закончу праздновать - перепишу
Профиль 
Сообщение Добавлено: 07 янв 2009, 21:06. Заголовок сообщения: 
Зарегистрирован:
    23 янв 2007, 15:42
Сообщения: 12
http://ifolder.ru/9917602
Новая версия программы
1) скачивает файл во временный каталог, определенный в переменной окружения TMP
2) оптимизировано управление программой ListTV
Профиль 
Показать сообщения за:  Поле сортировки:    
Начать новую темуОтветить на тему  Страница 2 из 2  [ Сообщений: 26 ]  На страницу   Пред.  1, 2
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Найти:  
Перейти: