© Иван Рощин, Москва
| ZXNet | : 500:95/462.53 |
| : bestview@mtu-net.ru | |
| WWW | : http://www.ivr.da.ru |
(«Радиомир. Ваш компьютер» 9/2005)
Для этого я написал простой скрипт на Perl. Возможно, он пригодится и вам
для решения такой же или похожей задачи. Конечно, нужно будет внести в скрипт
соответствующие изменения, если у вас ситуация не
Текст скрипта приведён ниже.
#!/usr/bin/perl
$run_time_h='12'; # Нужное время запуска (часы).
$run_time_m='00'; # Нужное время запуска (минуты).
@pages=( # Список адресов открываемых страниц.
'http://example1/',
'http://example2/',
'http://example3/'
);
# Проверка: в адресах не должно быть символа '"', так как этим
# символом адреса ограничиваются, когда передаются "Опере"
# в командной строке.
foreach $page (@pages)
{
if ($page=~m'"') {die ("Error: found '\"' in \"$page\"!\n")}
}
# Ждём указанного времени запуска.
print ("Waiting run time ($run_time_h:$run_time_m)...\n");
while (@time=localtime,
$time[2]*60+$time[1] != $run_time_h*60+$run_time_m)
{
sleep (20); # Интервал (в секундах) между проверками времени.
}
# Запускаем "Оперу" и ждём 60 секунд, чтобы она успела
# загрузиться.
print (scalar(localtime)." Starting \"Opera\"...\n");
system ('start "C:\Program Files\Opera\Opera.exe"');
print ("Pause...\n");
sleep (60);
# По очереди открываем перечисленные в списке @pages страницы.
# После передачи "Опере" адреса страницы ждём 45 секунд.
foreach $page (@pages)
{
print (scalar(localtime)." Opening page \"$page\"...\n");
$page=~s'%'%%'g; # Удваиваем "%" в адресе, чтобы командный
# интерпретатор Windows считал этот символ
# обычным символом.
system ('start "C:\Program Files\Opera\Opera.exe" "'.$page.'"');
print ("Pause...\n");
sleep (45);
}
Время запуска «Оперы» задаётся в переменных $run_time_h и $run_time_m (соответственно часы и минуты). Адреса открываемых документов задаются в списке @pages. Само собой, адресов может быть не три, как для примера приведено в скрипте, а столько, сколько нужно. Адреса указываются в одиночных кавычках и перечисляются через запятую.
Если адрес длинный, его можно разделить на части удобной длины и записать каждую часть в отдельной строке, заключив в одиночные кавычки; между частями должна стоять точка (в Perl это оператор склейки строк). Вот пример:
'адрес 1', 'адрес 2 (часть 1)'. 'адрес 2 (часть 2)'. 'адрес 2 (часть 3)', 'адрес 3'
Адреса не должны содержать одиночных кавычек (так как сам адрес
ограничивается ими) и двойных кавычек (они используются как ограничители при
передаче адреса «Опере»).
Если вдруг в адресе попадётся одиночная кавычка, то, скорее всего, при запуске скрипта Perl выдаст сообщение об ошибке. Отсутствие двойных кавычек в адресах проверяется непосредственно в скрипте; если они будут обнаружены, выполнение скрипта прекратится с выдачей соответствующего сообщения.
После запуска скрипт выводит строку с указанием времени, когда он должен
начать работу, и ждёт этого времени. Когда оно наступит, происходит запуск
«Оперы» (обратите внимание: в скрипте указан полный путь к
исполняемому файлу «Оперы»; если у вас он не такой, то надо
указать в скрипте свой путь). Затем следует
Далее в цикле по очереди открываются окна с документами. Чтобы открыть окно
с некоторым документом в браузере Opera 5.12, достаточно просто запустить этот
браузер, указав в командной строке адрес этого документа. Именно это действие
и выполняется в скрипте. При этом не будет запущен новый экземпляр браузера, а
в уже запущенном откроется новое окно с указанным документом. Не знаю, так же
или нет ведут себя другие браузеры. После открытия окна следует
В процессе работы скрипт выводит информацию о том, когда и что он делает, как в нижеприведённом примере.
Waiting run time (12:00)... Mon Apr 25 12:00:11 2005 Starting "Opera"... Pause... Mon Apr 25 12:01:15 2005 Opening page "http://example1/"... Pause... Mon Apr 25 12:02:02 2005 Opening page "http://example2/"... Pause... Mon Apr 25 12:02:50 2005 Opening page "http://example3/"... Pause...
Если вы решите использовать описанный скрипт (возможно, внеся в него
Осталось рассказать о некоторых проблемах, обнаруженных в процессе регулярного использования данного скрипта (под Windows 95 OSR 2.1 RUS; версия Perl ActivePerl 5.8.6.811).
Каталог поиска для COMMAND задан неверно Слишком много параметров
После этого командный интерпретатор не возвращает управление скрипту, так что все следующие документы также не будут открыты. Эта проблема возникает, по моим наблюдениям, когда адрес документа содержит символы «%» (хотя, быть может, это лишь совпадение). Если отказаться от перенаправления вывода, то этот же документ открывается нормально.
|
Другие мои статьи о браузере Opera:
|