Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » nnCron

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

Открыть новую тему     Написать ответ в эту тему

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nnCron
 
nnCron - это компактный, но мощный планировщик и менеджер автоматизации с собственным скриптовым языком, основанным на синтаксисе языка программирования Форт. Помимо традиционной для планировщика способности запускать в указанное время программы, "напоминалки" и открывать документы ..
 
nnCron способен отслеживать файлы, флаги, окна, процессы, движения мыши, время простоя компьютера, клавиатурные шорткаты, выход в онлайн/оффлайн, появление диска в драйве, наличие хоста в сети (пинг), изменение удаленного ресурса по http-протоколу, количество свободного места на диске, загруженность оперативной памяти и многое другое...
 
nnCron понимает cron-формат (Unix) и управляется с помощью текстовых кронтаб-файлов. Для тех, кто любит работать с GUI есть графическая оболочка из которой можно удалять/добавлять/редактировать и запускать задачи, устанавливать напоминалки, менять настройки программы.
 
nnCron позволяет использовать в задачах VBScript/JScript, регулярные выражения и расширяется за счет плагинов. Он может быть запущен в качестве службы (сервиса) или как обычное приложение. Обладает средствами удаленного администрирования. Подробнее прочитать о возможностях nnCron вы можете в online-документации.
 
nnCron бесплатен для граждан стран бывшего СССР при условии частного и некоммерческого использования.


история изменений - https://nncron.ru/forums/viewforum.php?f=11
форум - https://nncron.ru/forums/
 
архив конференции поддержки: » fido7.ru.nncron
 
скачать: https://nncron.ru/download_ru.shtml - программу, документацию, плагины, скрипты
 
последняя версия:
 
v.1.91 (build 1083) - последний релиз от 21 марта 2006 (+ основные плагины и документация на английском языке)
v.1.93 beta 15 - последняя бета от 15.02.2016
history
 
документация:
 
help_ru.zip  (обновляется регулярно) документация nnCron (на русском языке)
faq_ru.zip nnCron FAQ (на русском языке)
spf_help.zip (130k  20 Nov 2002)  описание основных слов SP-Forth (на русском языке)
sf.chm (1.5M  03 Feb 2003)  книга Leo Brodie "Начальный курс программирования на языке Форт" (на русском языке)
 
полезные ссылки:
* » nnBackup - крошечная (250k) консольная утилита, предназначенная для резервного копирования файлов, синхронизации содержимого каталогов, создания и обработки файл-листов.
* » Cтатья Валерия Кондакова про возможности nnCron
* » Канал "nnCron releases" для » WatzNew by 8AleX8
* » Файл расцветки синтаксиса исходников языка Форт и кронтабов nnCron для плагина Colorer (Far Manager)
* » Редактор мелодий для beeper'a под nnCron
Если не работает новая, правильно написанная задача, то попробуйте добавить в опции задачи слово AsLoggedUser (галочка в свойствах новой задачи "Как пользователь, выполнивший login") и, возможно, LoadProfile (галочка "Загрузить профиль").
 

Полезные самодельные задачи для сабжа на Ru-Board'е
 
Если хочется в имени задачи поставить пробел, используйте комбинацию Alt+0160, такой пробел принимается.
 
Полезные самодельные задачи для сабжа на оффоруме
 
Актуально!!! Запуск и работа nnCron в Win7 (оффорум)
 
nnCron на GitHub
 
 
предыдущее обсуждение - тут

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 15:38 29-01-2008 | Исправлено: RetroRocket, 07:16 15-10-2024
Dimitr69

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый вечер...  
 
Я пытаюсь написать скрипт, который будет эмулировать нажатие кнопок в сторонней программе... Запускаю утилиту WinSpy, а что дальше делать не знаю... Мне надо эти кнопки по координатам искать? Или как-то иначе? И как потом эти координаты использовать? Если несложно, напишите пожалуйста общий принцип работы с этой утилитой и команды, на которые мне нужно обратить внимание... Или может есть где-то какой нибудь урок или дока именно по эмулированию нажатий в других программах?  
 
 
Заранее большое спасибо...  
 
Нажатие кнопок я кое как освоил. Но работает это не стабильно, сам не знаю почему. Наверно тонкостей винды не знаю. Но прицип такой:
 
Есть окно, на нем несколько кнопок с надписями.
Если win спаем навести на окно, например на заголовке, увидишь какой у окна класс ("tAniClass"), и какой у окна текст ("Чувак, сделай выбор!"). Это окно родительское. Если мышью наведешь на какую то кнопку этого окна, то в нижнем поле спая увидишь класс кнопки tButton, и текст кнопки , например "Пуск", или "OK", короче что написано на самой кнопке.
Теперь кроном имитируем нажатие кнопки:
 
\ проверим наличие окна
S" Чувак, сдел*" WIN-EXIST?  
IF
\ нажмем на кнопку "Пуск"
WIN-CLICK: "Чувак, сделай вы*" "Пуск"
THEN
 
Первую строку можно также заменеить такой
S" tAniClass" WIN-EXIST?  
 
или так  
WIN-EXIST: "*сделай выбор!"
 
т. е. при работе с  оконн. функциями (о них смотри рус. справку КЛЮЧЕВЫЕ СЛОВА NNCRON/Работа с окнами)
можно применить для идентификац. окон либо класс, либо текст окна.
 
 хотел пробный тест написать для калькулятора (программа систаемная), чтобы програмно нажать типа 3+2, но вин спаем надписей на кнопок нету, наверно у них это отображает графика. И поэтому WIN-CLICK здесь не пойдет. Необходимо наверно использовать функции типа SEND-KEYS...
 

Всего записей: 5 | Зарегистр. 29-01-2008 | Отправлено: 13:13 04-02-2008
DJ makrus

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
doc58_81oB0t
Цитата:
...не надо ли добавить проверку на зависшие приложения...
  Кроме тебя этого никто лучше не определит, все очень индивидуально, так же как индивидуальны у каждого компьютеры...
Цитата:
...что за функция 'Выключение питания'...
прочти в Help'е описание к словам SHUTDOWN и POWEROFF.
 
mistdream
Цитата:
...напишите пожалуйста общий принцип работы с этой утилитой...
  Утилита WinSpy показывает основную информацию об окне над которым в данный момент расположен курсор мыши, достаточно подробно об ней есть в Help'е, в том числе и как получить с ее помощью нужную инфорацию (см. п.1 ... п.6).
  А вот какая информация нужна и что делать с ней тут очень многое зависет от программы которой вы хотите управлять с помощью nnCron'а, но основных принципа два (если не считать их комбинацию):
1. Управление с помощью мыши
2. Управление с помощью клавиатуры
(все как у людей   ), поподробнее:
 
1. В этом случае нам необходимо знать координаты кнопок которые нам предстоит нажимать (лучше всего координаты центра кнопок которые предстоит нажимать). С помощью слов описанных в разделе "Эмуляция движений мыши" мы помещаем курсор мыши "над" соотвествующей кнопкой и производим нажатия, перемещения, отпускания левой/правой кнопки мыши.
 
2. В этом случае нам надо знать какие горячие клавиши поддерживаются программой, например, "Alt+F4" - общепринятый выход из программы (возможны так же "Alt+X", "Alt+Q"), "Enter" - ввод/нажатие на текущую кнопку, и отправлять их программе с помощью слов описанных в разделе "Эмуляция ввода с клавиатуры" и WIN-CLICK: с WIN-SEND-KEYS:.
 
  Я использую второй вариант, т.к. считаю его более надежным. Какой будете использовать вы смотрите сами, рекомендую начать со второго.
  Поэтому в вашем случае вам надо сначала узнать с помощью WinSpy заголовок главного окна программы, заголовок дочернего (если кнопка которую надо нажать расположена не в основном окне программы) и текст самой кнопки. Попробуйте написать задачку для нажатия этой кнопки и если не будет получаться - пишите что и как делали, и что и как происходило.

Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 14:42 04-02-2008
mistdream

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dimitr69
DJ makrus
 
Спасибо, очень помогли... Пока столкнулась только с одной проблемой. Как проверить активность кнопки? То есть я на нее жму, она на какое-то время становится неактивной, после того как она вновь активизировалась мне нужно выполнить след действие...
 
вот только кнопку я эту нажимаю по передвижению мыши, потому в этой программе почему-то две кнопки с одинаковым именем класса, текстом, а хендл меняется при каждом запуске... Получается что различить эти две кнопки можно только по координатам...
 
 
И еще есть ли дока по свойствам классов отображающимся в окне Class WinSpy? Взять ведь те же кнопки... Должны же быть у них свойства которые не зависят от приложения... Та же активность... А если конкретнее, то мне придется работать с классом FlatTabCtrl и мне интересно закладки на нем придется тоже по мыши переключать или есть какие-то методы чтобы по очереди активизировать нужную мне закладку по ее номеру?
 
Пишу скрипт для управления прогой FlylinkDC++

Всего записей: 76 | Зарегистр. 01-04-2007 | Отправлено: 21:06 04-02-2008 | Исправлено: mistdream, 21:24 04-02-2008
lucky_Luk

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть задача, которая запускается раз в неделю по OnceAWeek, в ней есть запрос QUERY: и в случае положительного ответа делается определенное действие. А как сделать, чтобы при отрицательном ответе эта задача снова запускалась на следующий день/сутки (при загрузке компа или в  определенное время)? Такое возможно или придется городить еще одну задачу?

Всего записей: 7100 | Зарегистр. 29-11-2004 | Отправлено: 01:10 05-02-2008
DJ makrus

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mistdream
Цитата:
...Как проверить активность кнопки?  То есть я на нее жму, она на какое-то время становится неактивной, после того как она вновь активизировалась мне нужно выполнить след действие...
возможно я ошибаюсь, но скорее всего никак, можно попробовать через паузу выполнять следующее действие (если разброс в продолжительности "неактивности" кнопки не очень велик), или по каким-либо косвенным признакам определять что пора выполнять следующее действие (появление/исчезновение окна/файла, запись в лог-файле программы) надо эксперементировать с этой программой...

Цитата:
И еще есть ли дока по свойствам классов отображающимся в окне Class WinSpy?
здесь я тоже добавлю, IMHO, свойства объектов одного класса в одной программе должны быть одинаковы, но объект такой же по названию класса в другой программе может иметь совершенно другие свойства   , классы помогают ориентироваться когда заголовки окон (одной и той же или разных программ) совпадают...

Цитата:
почему-то две кнопки с одинаковым именем класса, текстом, а хендл меняется при каждом запуске...
хэндл обоих окон/кнопок (одну из которых надо нажимать) постоянный во время одного запуска программы (одной сессии)? Или же одна из этих кнопок в течении сессии имеет одинаковый хэндл, а другая (скорее всего та которую нажимаем) меняет свой хэндл? Если так, то можно попробовать запомнить постоянный хэндл и различать окна/кнопки с одинаковыми заколовками/классами по переменному хэндлу (а возможно получится и отлавливать момент для следующего действия по этому же событию - появление окна с тем же заголовком/классом, но новым хэндлом).

Цитата:
...мне интересно закладки на нем придется тоже по мыши переключать или есть какие-то методы чтобы по очереди активизировать нужную мне закладку по ее номеру?
  Практически любая программа допускает управление собою без использования мыши, попробуйте "перебирать" активные объекты программ с помощью "Tab" ("Shift+Tab" - обратный порядок), а так же попробуйте сочетания "Ctrl" и "Alt" с цифровыми кнопками клавиатуры, и поэксперементируйте с функциональными клавишами "F1", "F2", ..., "F12".
 
lucky_Luk
Цитата:
...чтобы при отрицательном ответе эта задача снова запускалась на следующий день/сутки...
см. слово CLEAR-ONCE

Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 06:53 05-02-2008
justass

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не подскажите как средствами nnCron найти первый свободный диск (буковку), чтобы смонтировать на него volume? Присвоить буковке переменную.

Всего записей: 65 | Зарегистр. 22-02-2003 | Отправлено: 10:31 05-02-2008
lucky_Luk

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DJ makrus

Цитата:
см. слово CLEAR-ONCE

Какая разница между CLEAR-ONCE и CANCEL ?

Всего записей: 7100 | Зарегистр. 29-11-2004 | Отправлено: 20:00 05-02-2008
akuzminich



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет.
 
nnCron перестал выполнять задачи при выходе из ждущего режима. До этого все работало - ноут выходил из ждущего режима, запускал менеджер закачек и все было хорошо. А сейчас он только выходит из спячки, но ничего не запускает. В логах тоже видно только выход из ждущего режима.  
 
Но это еще не все. Если он просыпается не через большой промежуток времени, минут 5-10, то все работает. Но если проходит пара часов, то он только просыпается, и на этом все.
 
В чем может быть дело? У меня вообще никаких идей - ничего не понимаю

Всего записей: 5 | Зарегистр. 15-06-2006 | Отправлено: 00:03 09-02-2008
mistdream

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый вечер..Подскажите как избежать запуска модуля раз в минуту при перечитывании кронтабов. Модуль нужен для вызова из другого при определенных условиях

Всего записей: 76 | Зарегистр. 01-04-2007 | Отправлено: 20:26 10-02-2008 | Исправлено: mistdream, 20:31 10-02-2008
lucky_Luk

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mistdream

Цитата:
Добрый вечер..Подскажите как избежать запуска модуля раз в минуту при перечитывании кронтабов. Модуль нужен для вызова из другого при определенных условиях
 

ИМХО в модуле, который запускается раз в минуту, нужно прописать NoActive.
Что за модули, речь о задачах ? Тогда выложи их код под тегом more.
 
Есть задача, которая срабатывает по нажатию клавиши, выводит запрос TQUERY: и в случае подтверждения выполняет определенные действия (IF ... THEN). Можно ли сделать, чтобы при запуске этой задачи вручную, через ярлык Windows, запрос не выдавался и действия между IF и THEN выполнялись автоматически?

Всего записей: 7100 | Зарегистр. 29-11-2004 | Отправлено: 21:08 13-02-2008
DJ makrus

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akuzminich
Цитата:
...В чем может быть дело?
  Возможных причин - тысячи! Как минимум надо видеть не работающие задачи, версии nnCron'а, винды, что в логе и в nncron.out, и постараться вспомнить что устанавливалось/удалялось/настраивалось до того как перестало работать.
 
lucky_Luk
Цитата:
...Можно ли сделать, чтобы при запуске этой задачи вручную, через ярлык Windows, запрос не выдавался и действия между IF и THEN выполнялись автоматически?
  В ярлыке задачу запускаешь с помощью "-run"? Тогда самый простой способ все определенные действия (IF ... THEN) определи в новое слово:
Код:
: my_new_word ( ? -- )
  IF
     ... \ тут определенные действия
  THEN
;
это определение слова вставь в шапку задачи, а в теле задачи вставь вместо
"IF ... THEN"
"my_new_word"
и в ярлыке вместо имени задачи тоже укажи это слово. Должно работать как ты хотел.

Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 14:06 14-02-2008
lucky_Luk

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DJ makrus

Цитата:
В ярлыке задачу запускаешь с помощью "-run"? Тогда самый простой способ все определенные действия (IF ... THEN) определи в новое слово

Да, с помощью "-run". Если не ошибаюсь каждую задачу сабж воспринимает как отдельное "слово", т.е. сделать собственное слово с описанием действий, это тоже самое, что и сделать еще одну задачу?

Всего записей: 7100 | Зарегистр. 29-11-2004 | Отправлено: 20:32 14-02-2008
DJ makrus

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lucky_Luk
Цитата:
...т.е. сделать собственное слово с описанием действий, это тоже самое, что и сделать еще одну задачу?
  Да, верно. Хотелось бы уточнить что задача nnCron'а это одна из разновидностей слов nnCron'а (Форта) которыми он оперирует, эти слова могут по разному быть определены и обладают разными свойствами. Особенность задач nnCron'а в том что эти слова сопсобны реагировать на окружающие nnCron события, за это в них отвечает содержимое шапки задачи, но они обычными способами не способны принимать/передавать параметры через стек - это их главные отличительные свойства по сравнению с прочими словами nnCron'а.
PS. давно уже собираюсь шапку в этом топике переделать добавив туда много, на мой взгляд, полезного, в том числе и для себя   , да никак не соберусь..., у автора есть планы по выпуску новой версии, если до этого события не соберусь, то по такому случаю возьмусь обязательно...

Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 06:00 15-02-2008
M1chA



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите написать скрипт.
Нужно,чтобы после старта системы Крон ждал определенное колличество времени а потом запускал определенное приложение.
Как это сделать?
Заранее благодарен.

Всего записей: 283 | Зарегистр. 11-10-2006 | Отправлено: 13:10 15-02-2008
IDentify

Редактировать | Цитировать | Сообщить модератору
M1chA
Можно паузу (PAUSE) воткнуть.
 
#( pause_and_start
Time: START-TIME
Action:
PAUSE: 10000 \ пауза 10 секунд и действие
 
)#
 
DJ makrus

Цитата:
PS. давно уже собираюсь шапку в этом топике переделать

Ты уж соберись

Отправлено: 13:36 15-02-2008 | Исправлено: IDentify, 13:47 15-02-2008
Nthnsq



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, надо сделать, чтобы сабж поддерживал инет соединение. Провайдер рвет сессию каждые 12 часов, иногда быват, что пропадает связь по тех причинам. А комп дома качает круглосуточно. Сейчас организовано так: USD при попытке получить ссылку запускает скрипт, кторый запускает ИЕ и вводит Логин+Пароль на вебформе прова и жмет ОК. Недостатки: если отключение сессии - то нормально, а если техпричины - USD запускает скрипт каждую минуту, что-то с ОС происходит - потом не грузится ни одно приложение. Только перезагрузка спасает.

Всего записей: 4889 | Зарегистр. 15-02-2006 | Отправлено: 15:34 15-02-2008
lucky_Luk

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nthnsq

Цитата:
Подскажите, надо сделать, чтобы сабж поддерживал инет соединение. Провайдер рвет сессию каждые 12 часов

Провайдер рвет сессию в любом случае или только при отсутствии активности "со стороны пользователя"? Подключение к Инету по дайл-ап или по кабелю/телеантенне?
Можно сделать задачу с циклом, который будет переодически пинговать какой-нибудь надежный всегда доступный адрес в Инете, например google.com, и при отсутствии доступа на этот адрес (т.е. разрыва соединения провайдером) будет снова устанавливать соединение.
Но в случае технических проблем у провайдера или на на том адресе

Цитата:
Недостатки: если отключение сессии - то нормально, а если техпричины - USD запускает скрипт каждую минуту

тоже будут косяки - nnCron будет крутить цикл до офигения , нужно ограничить количество циклов.  
ИМХО в USD тоже должно быть подобное ограничение (допустим десять раз запустить скрипт и в случае неудачи прекратить попытки).

Всего записей: 7100 | Зарегистр. 29-11-2004 | Отправлено: 21:18 15-02-2008
M1chA



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2IDentify
Спасибо за подсказку.
Еще вопрос.После паузы мне нужно запустить "Удаленный рабочий стол".
При запуске "Удаленный рабочий стол" теряется пароль(логин вводится нормально),хотя при запуске самого ярлыка "Удаленный рабочий стол" и логин и пароль автоматически вводятся без проблем (а вот при запуске через Крон теряется пароль)...
Как решить эту проблему?

Всего записей: 283 | Зарегистр. 11-10-2006 | Отправлено: 23:33 15-02-2008 | Исправлено: M1chA, 23:37 15-02-2008
DJ makrus

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nthnsq
Цитата:
...иногда быват, что пропадает связь по тех причинам.
когда такое случается веб-форма прова доступна? (Веб-форма, это не страница настройки DSL-модема? Какой адрес надо набрать в броузере что бы попасть на нее?). Если во время проподания связи по тех.причинам веб-форма не доступна, то можно сначала в цикле ждать появления этой веб-формы, а затем с помощью USD (а лучше, наверное самим nnCron'ом, что за скрипт? nnCron позволяет использовать VBScript и JScript) запускать скрипт авторизации, т.е. алгоритм примерно следующий:
1. В цикле проверяем наличие связи с Интернетом (см. пост lucky_Luk ), как только связь обрывается переходим к п.2
2. Проверяем доступность веб-формы (по аналогии с п.1), как только веб-форма становится доступна переходим к п.3
3. Запускаем скрипт (или USD или nnCron'ом)
4. Закрываем броузер, если это не делает скрипт (это возможная причина того что:
Цитата:
...что-то с ОС происходит - потом не грузится ни одно приложение. Только перезагрузка спасает.

 
M1chA
  Почти наверняка дело в том что задача не авторизована..., см. шапку топика или про авторизацию задач в Help'е
PS. прочти Help хотя бы бегло не разбираясь во множестве примеров - будешь продставлять возможности nnCron

Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 07:25 16-02-2008
M1chA



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2DJ makrus
Спасибо,поковыряюсь.

Всего записей: 283 | Зарегистр. 11-10-2006 | Отправлено: 07:48 16-02-2008
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

Компьютерный форум Ru.Board » Компьютеры » Программы » nnCron


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru