Форум Beholder http://beholder.ru/bb/ | |
программа телепередач в екатеринбурге http://beholder.ru/bb/viewtopic.php?f=12&t=1704 |
Страница 2 из 2 |
Автор: | Sergei V Sh [ 24 апр 2008, 22:17 ] |
Заголовок сообщения: | |
Я для себя написал небольшую прогу, которая подкладывается в каталог к предварительно сконфигурированному 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. |
Автор: | Sergei V Sh [ 03 авг 2008, 19:59 ] |
Заголовок сообщения: | |
Если у кого-то нет Delphi, но есть желание воспользоваться данной программой - http://ifolder.ru/7573957 |
Автор: | ru9cu [ 13 авг 2008, 08:21 ] |
Заголовок сообщения: | |
Может я что то не понимаю - но работать не хочет... |
Автор: | Sergei V Sh [ 14 авг 2008, 19:58 ] |
Заголовок сообщения: | |
А поконкретнее? У меня (и не только) всё работает |
Автор: | ru9cu [ 14 авг 2008, 20:42 ] |
Заголовок сообщения: | |
Баг нашёлся - у меня. Так что усё работает! |
Автор: | Sergei V Sh [ 15 авг 2008, 20:54 ] |
Заголовок сообщения: | |
Ок, на самом деле господа пользующиеся - к вам просьба: если есть какие-то пожелания по доработкам программы - пишите, не обещаю что буду делать всё, что захотите, но расти в общем-то есть куда Ещё тут http://ifolder.ru/7729723 выложил исходники и скомпилированную программку для управления с пульта тюнера: эмулируются движения мыши, нажатия мышиных кнопок, поддерживается управление винампом и media player classic, а также регулировка громкости на наушниковом выходе звуковуй карты M-Audio Revolution 5.1 Поддерживаются пульты от 4хх, 5хх и 6хх моделей, от М6 скорее всего тоже будет работать просто проверить не на чем было, а вот остальные вряд ли. |
Автор: | TroN [ 29 дек 2008, 10:47 ] |
Заголовок сообщения: | |
WinXP SP3 прога не работает, появляеться строчка с адремос програмки на е1, а дельше винда предлагет отправить отчет. и на этом прога закрываеться нечего не сделав. |
Автор: | Sergei V Sh [ 02 янв 2009, 00:55 ] |
Заголовок сообщения: | |
У меня работает на SP3. У тебя есть каталог C:\Downloads ? |
Автор: | TroN [ 02 янв 2009, 15:46 ] |
Заголовок сообщения: | |
ты прав его нет. Я создал все заработало. Но лучше перепиши прогу что использовала системную временную папку. Temp |
Автор: | Sergei V Sh [ 07 янв 2009, 07:45 ] |
Заголовок сообщения: | |
Программе-то всё равно какую папку использовать, главное чтоб на неё же был настроен ListTV. Как закончу праздновать - перепишу |
Автор: | Sergei V Sh [ 07 янв 2009, 21:06 ] |
Заголовок сообщения: | |
http://ifolder.ru/9917602 Новая версия программы 1) скачивает файл во временный каталог, определенный в переменной окружения TMP 2) оптимизировано управление программой ListTV |
Страница 2 из 2 | Часовой пояс: UTC + 3 часа |