Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.3] AutoIt скрипты

Закрытая тема
Настройки темы
[Архив - Часть 1.3] AutoIt скрипты

Старожил


Сообщения: 250
Благодарности: 16

Профиль | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 25-01-2008
Внимание!
Тема переведена в архивное состояние





(настоятельно рекомендуется к прочтению/поиску)


Руководство к действию по работе c AutoIt.

Помогите пожалуйста. Нужен маленький скриптик для решения некоторых рутинных задачь.
Вот что нужно сделать последовательно:

1) в папке DIR1 находим и удаляем файлы в названии которых присутствует text_1
2) в папке DIR2 находим xxx.sif и удаляем строки, в которых присутствует text_1
3) в папке DIR3 находим xxx.inf и добавляем в его секцию [XXX] несколько строчкек (text_2, text_3, ..., text_n)
4) в папке DIR4 находим yyy.inf ищем в его секции [YYY] text_4 и заменяем его на text_5
5) сохраняем все изменения и выводим отчёт о проделанной работе :-)

Заранее благодарен.

Отправлено: 05:05, 03-12-2006

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


_Flame_
Цитата:
Мне надо, чтобы открывался txt файл, который лежит в папке \Files
Открывался в редакторе по умолчанию? тогда так:

Код: Выделить весь код
$FilePath = "Files\textfile.txt"
ShellExecute($FilePath)
DenchikK
Цитата:
как переделать это под список - чтоб чекбоксов появлялось столько, сколько записей.
Примерно так - это отдельный набросок для создания чекбоксов в зависимости от числа записей, которые предварительно нужно поместить в массив (см. функцию _FileReadToArray() ) :

Код: Выделить весь код
;---это в начало файла---
#include <File.au3>
;------------------------

; Построение GUI
GUICreate("Автозаполнение", 330, 300)

Global $Links_Array
_FileReadToArray("links.txt", $Links_Array)

If IsArray($Links_Array) Then
    $Top = 10
    For $i = 1 To $Links_Array[0]
        GUICtrlCreateCheckbox($Links_Array[$i], 10, $Top, 180, 20)
        $Top += 20
    Next
EndIf

$Start = GUICtrlCreateButton("Заполнить", 200, 10, 120, 20)
$Close = GUICtrlCreateButton("Выход", 200, 30, 120, 20)

GUISetState()
Если записей (каждая запись это отдельная строка в файле) больше чем чекбоксы помещаются в ГУИ, то также как я проделал с переменной $Top, нужно проделать и с левым выравниванием чекбоксов ($Left = 10 и потом прибавлять в цикле, скажем по 80).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:20, 31-05-2007 | #451



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для DenchikK

Старожил


Сообщения: 282
Благодарности: 40

Профиль | Отправить PM | Цитировать


Creat0R
Спасибо большое! Построение GUI идет как надо, но вот только теперь я не понимаю, как обрабатывать эти чекбоксы... Не понимаю, как это:

Код: Выделить весь код
 If GUICtrlRead($checkCN1) = 1 Then
                     WinActivate ("AvaRemoteLoad")
	     ControlSetText ( 'AvaRemoteLoad', '', 'Edit1', $Links_Array[1] )
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit2', $Logins_Array[1])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit3', $Pass_Array[1])
        EndIf
заставить работать с построением GUI...

Тупо заделал так, но теряется возможность определять, сколько чекбоксов надо сделать для содержимого файла логов:

Код: Выделить весь код
#include <GUIConstants.au3>
#include <File.au3>

If WinExists(@ScriptName) Then Exit
AutoItWinSetTitle(@ScriptName)
AutoItSetOption("TrayIconDebug", 1)
AutoItSetOption("SendKeyDelay", 60)
AutoItSetOption("MouseCoordMode", 0)

; Запуск программы

Run ('avaload.exe')

; Построение GUI

GUICreate("Автозаполнение", 330, 300)

Global $Links_Array, $Logins_Array, $Pass_Array

_FileReadToArray("logins.txt", $Logins_Array)
_FileReadToArray("pass.txt", $Pass_Array)
_FileReadToArray("links.txt", $Links_Array)

$checkCN1 = GUICtrlCreateCheckbox ($Logins_Array[1], 10, 10, 180, 20)
$checkCN2 = GUICtrlCreateCheckbox ($Logins_Array[2], 10, 30, 180, 20)
$checkCN3 = GUICtrlCreateCheckbox ($Logins_Array[3], 10, 50, 180, 20)
$checkCN4 = GUICtrlCreateCheckbox ($Logins_Array[4], 10, 70, 180, 20)
$checkCN5 = GUICtrlCreateCheckbox ($Logins_Array[5], 10, 90, 180, 20)
$checkCN6 = GUICtrlCreateCheckbox ($Logins_Array[6], 10, 110, 180, 20)
$checkCN7 = GUICtrlCreateCheckbox ($Logins_Array[7], 10, 130, 180, 20)
$checkCN8 = GUICtrlCreateCheckbox ($Logins_Array[8], 10, 150, 180, 20)
$checkCN9 = GUICtrlCreateCheckbox ($Logins_Array[9], 10, 170, 180, 20)
$checkCN10 = GUICtrlCreateCheckbox ($Logins_Array[9], 10, 190, 180, 20)

$Start = GUICtrlCreateButton("Заполнить", 200, 10, 120, 20)
$Close = GUICtrlCreateButton("Выход", 200, 30, 120, 20)

GUISetState ()

; Основная Работа Скрипта

While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE  Or $msg = $Close Then 
        Exit

ElseIf $msg = $Start Then

 If GUICtrlRead($checkCN1) = 1 Then
                     WinActivate ("AvaRemoteLoad")
	         ControlSetText ( 'AvaRemoteLoad', '', 'Edit1', $Links_Array[1])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit2', $Logins_Array[1])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit3', $Pass_Array[1]) 
        EndIf

        If GUICtrlRead($checkCN2) = 1 Then
                     WinActivate ("AvaRemoteLoad")
	         ControlSetText ( 'AvaRemoteLoad', '', 'Edit1', $Links_Array[2])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit2', $Logins_Array[2])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit3', $Pass_Array[2]) 
        EndIf

        If GUICtrlRead($checkCN3) = 1 Then
                     WinActivate ("AvaRemoteLoad")
	         ControlSetText ( 'AvaRemoteLoad', '', 'Edit1', $Links_Array[3])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit2', $Logins_Array[3])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit3', $Pass_Array[3]) 
        EndIf

        If GUICtrlRead($checkCN4) = 1 Then
                     WinActivate ("AvaRemoteLoad")
	         ControlSetText ( 'AvaRemoteLoad', '', 'Edit1', $Links_Array[4])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit2', $Logins_Array[4])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit3', $Pass_Array[4]) 
        EndIf

        If GUICtrlRead($checkCN5) = 1 Then
                     WinActivate ("AvaRemoteLoad")
	         ControlSetText ( 'AvaRemoteLoad', '', 'Edit1', $Links_Array[5])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit2', $Logins_Array[5])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit3', $Pass_Array[5]) 
        EndIf

        If GUICtrlRead($checkCN6) = 1 Then
                     WinActivate ("AvaRemoteLoad")
	         ControlSetText ( 'AvaRemoteLoad', '', 'Edit1', $Links_Array[5])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit2', $Logins_Array[5])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit3', $Pass_Array[5]) 
        EndIf

        If GUICtrlRead($checkCN7) = 1 Then
                     WinActivate ("AvaRemoteLoad")
	         ControlSetText ( 'AvaRemoteLoad', '', 'Edit1', $Links_Array[7])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit2', $Logins_Array[7])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit3', $Pass_Array[7]) 
        EndIf

        If GUICtrlRead($checkCN8) = 1 Then
                     WinActivate ("AvaRemoteLoad")
	         ControlSetText ( 'AvaRemoteLoad', '', 'Edit1', $Links_Array[8])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit2', $Logins_Array[8])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit3', $Pass_Array[8]) 
        EndIf

        If GUICtrlRead($checkCN9) = 1 Then
                     WinActivate ("AvaRemoteLoad")
	         ControlSetText ( 'AvaRemoteLoad', '', 'Edit1', $Links_Array[9])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit2', $Logins_Array[9])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit3', $Pass_Array[9]) 
        EndIf

        If GUICtrlRead($checkCN10) = 1 Then
                     WinActivate ("AvaRemoteLoad")
	         ControlSetText ( 'AvaRemoteLoad', '', 'Edit1', $Links_Array[10])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit2', $Logins_Array[10])
                     ControlSetText ( 'AvaRemoteLoad', '', 'Edit3', $Pass_Array[10]) 
        EndIf


EndIf
WEnd
Попробовал по изощряться для компактности с $i - не вышло...

Последний раз редактировалось DenchikK, 01-06-2007 в 02:54.


Отправлено: 01:47, 01-06-2007 | #452


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


DenchikK
Цитата:
как обрабатывать эти чекбоксы
По идее можно создавать динамический массив который будет содержать в себе все управляющие идентификаторы (ControlID) от созданных чекбоксов, и отслеживать каждый раз нужный проверяя элементы массива..

Лучше (надёжнее) проверять все чекбоксы, а нужный текст брать из самого названия чекбокса, ведь каждый зажатый чекбокс (который мы и будем проверять), имеет то название, которое и требуется для записи...

Я бы если честно предложил использовать события (Events), правда придётся немного переделать структуру всего GUI (не сильно ), для этого в начале скрипта нужно установить опции для срабатывания событии - Opt("GuiOnEventMode", 1), и потом всем (нужным для обработки) контролам присваивать функцию которая будет срабатывать на событие, так в дальнейшем легче обрабатывать элементы (имхо):

Код: Выделить весь код
#include <GUIConstants.au3>
#include <File.au3>

If WinExists(@ScriptName) Then Exit
AutoItWinSetTitle(@ScriptName)
Opt("TrayIconDebug", 1)
Opt("SendKeyDelay", 60)
Opt("MouseCoordMode", 0)
Opt("GuiOnEventMode", 1)

Global $Array_logins, $Array_pass, $Array_links, $CheckBoxIDArray[1]

; Чтение Файла С Логинами
_FileReadToArray("logins.txt", $Array_logins)
If @error Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
EndIf

; Чтение Файла С Паролями
_FileReadToArray("pass.txt", $Array_pass)
If @error Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
EndIf

; Чтение Файла С Линками
_FileReadToArray("links.txt", $Array_links)
If @error Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
EndIf

; Запуск программы

Run ('avaload.exe')

; Построение GUI

GUICreate("Автозаполнение", 330, 300)
GUISetOnEvent(-3, "Quit")

$Top = 10
$Left = 10

;Чекбоксы для логинов
If IsArray($Array_logins) Then
    For $i = 1 To $Array_logins[0]
        ReDim $CheckBoxIDArray[UBound($CheckBoxIDArray)+1]
        $CheckBoxIDArray[UBound($CheckBoxIDArray)-1] = GUICtrlCreateCheckbox($Array_logins[$i], $Left, $Top, 180, 20)
        $Top += 20

                If $Top >= 200 Then
            $Top = 10
            $Left += 90
        EndIf
    Next
EndIf

;Чекбоксы для паролей
If IsArray($Array_pass) Then
    For $i = 1 To $Array_pass[0]
        ReDim $CheckBoxIDArray[UBound($CheckBoxIDArray)+1]
        $CheckBoxIDArray[UBound($CheckBoxIDArray)-1] = GUICtrlCreateCheckbox($Array_pass[$i], $Left, $Top, 180, 20)
        $Top += 20
        If $Top >= 160 Then
            $Top = 10
            $Left += 90
        EndIf
    Next
EndIf

;Чекбоксы для линков
If IsArray($Array_links) Then
    For $i = 1 To $Array_links[0]
        ReDim $CheckBoxIDArray[UBound($CheckBoxIDArray)+1]
        $CheckBoxIDArray[UBound($CheckBoxIDArray)-1] = GUICtrlCreateCheckbox($Array_links[$i], $Left, $Top, 180, 20)
        $Top += 20
        If $Top >= 160 Then
            $Top = 10
            $Left += 90
        EndIf
    Next
EndIf

$Start = GUICtrlCreateButton("Заполнить", 200, 10, 120, 20)
GUICtrlSetOnEvent($Start, "Start")

$Close = GUICtrlCreateButton("Выход", 200, 30, 120, 20)
GUICtrlSetOnEvent($Close, "Quit")

GUISetState()

While 1
    Sleep(10)
WEnd

; Основная Работа Скрипта - функция для обработки чекбоксов
Func Start()
    For $i = 1 To UBound($CheckBoxIDArray)-1
        If GUICtrlRead($CheckBoxIDArray[$i]) = 1 Then
            WinActivate("AvaRemoteLoad")
            $CurrentText = GUICtrlRead($CheckBoxIDArray[$i], 1)
            ControlSetText('AvaRemoteLoad', '', 'Edit1', $CurrentText)
            ControlSetText('AvaRemoteLoad', '', 'Edit2', $CurrentText)
            ControlSetText('AvaRemoteLoad', '', 'Edit3', $CurrentText)
        EndIf
    Next
EndFunc

Func Quit()
    Exit
EndFunc
P.S
Кстати, (кажется в последних версиях AutoIt) не обязательно активировать окно для ControlSetText() .

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 03:45, 01-06-2007 | #453


Аватара для DenchikK

Старожил


Сообщения: 282
Благодарности: 40

Профиль | Отправить PM | Цитировать


Creat0R
Ещё раз огромное спасибо!
Но я что то пока так и не смог разобраться, как же всё это работает...

Эти строки я убрал, так они не нужны и мешают (идея какая - если выбран 3 логин, то выбираются вместе с ним 3 пасс и 3 линк):

Код: Выделить весь код
;Чекбоксы для паролей

If IsArray($Array_pass) Then
    For $i = 1 To $Array_pass[0]
        ReDim $CheckBoxIDArray[UBound($CheckBoxIDArray)+1]
        $CheckBoxIDArray[UBound($CheckBoxIDArray)-1] = GUICtrlCreateCheckbox($Array_pass[$i], $Left, $Top, 180, 20)
        $Top += 20
        If $Top >= 160 Then
            $Top = 10
            $Left += 90
        EndIf
    Next
EndIf

;Чекбоксы для линков
If IsArray($Array_links) Then
    For $i = 1 To $Array_links[0]
        ReDim $CheckBoxIDArray[UBound($CheckBoxIDArray)+1]
        $CheckBoxIDArray[UBound($CheckBoxIDArray)-1] = GUICtrlCreateCheckbox($Array_links[$i], $Left, $Top, 180, 20)
        $Top += 20
        If $Top >= 160 Then
            $Top = 10
            $Left += 90
        EndIf
    Next
EndIf
и видать из за этого результат этого один и тот же для всех полей:
Код: Выделить весь код
; Основная Работа Скрипта - функция для обработки чекбоксов
Func Start()
    For $i = 1 To UBound($CheckBoxIDArray)-1
        If GUICtrlRead($CheckBoxIDArray[$i]) = 1 Then
            WinActivate("AvaRemoteLoad")
            $CurrentText = GUICtrlRead($CheckBoxIDArray[$i], 1)
            ControlSetText('AvaRemoteLoad', '', 'Edit1', $CurrentText)
            ControlSetText('AvaRemoteLoad', '', 'Edit2', $CurrentText)
            ControlSetText('AvaRemoteLoad', '', 'Edit3', $CurrentText)
        EndIf
    Next
EndFunc
То бишь у меня получается в поля Линк, Логин, Пароль - пихается Логин... Сижу, пытаюсь понять, как, не выходит...

И скорее всего придётся отказаться от чекбоксов в пользу радиобуттонов, но структура case мне пока не даётся...

Последний раз редактировалось DenchikK, 01-06-2007 в 05:09.


Отправлено: 04:31, 01-06-2007 | #454


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


voler
Код: Выделить весь код
WinWait ( 'Adobe Acrobat 7.0 Professional - Setup', 'Сюда вставить тект окна, отличающий его от остальных')
ControlClick ( 'Adobe Acrobat 7.0 Professional - Setup', 'Сюда тот же текст, что и в предыдущей функции', 'Button1' )
Текст окна можно посмотреть в штатной "AutoIt Window Info".

Последний раз редактировалось amel27, 03-06-2007 в 04:18. Причина: заменил WinWaitActive на WinWait


Отправлено: 04:58, 01-06-2007 | #455


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


DenchikK
Цитата:
идея какая - если выбран 3 логин, то выбираются вместе с ним 3 пасс и 3 линк
Я если честно теперь ещё больше запутался в отношении самой идеи...

Если можешь, поясни пошагово (не программно, а как бы со стороны юзера) - Что должно произойти, какие чекбоксы будут созданы (их структура и цель назначения), что должно происходить при зажатом чекбоксе (после нажатия кнопки Start) и т.д.

А я попробую построить соответственно гуи и описать процесс... должно быть не сложно, но цель немного смутновата - когда есть чётко поставленная цель, остальное это время, и усидчивость! (+ немного знании ).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 05:30, 01-06-2007 | #456


Аватара для ChVL

Старожил


Сообщения: 254
Благодарности: 38

Профиль | Отправить PM | Цитировать


В одной папке находятся скрипт .au3 и .exe исходного приложения. При запуске скрипта всё устанавливается правильно, до самого конца.
Через контекстное меню компилирую. При этом скомпилированный .exe "съедает" исходный .exe и имеет иконку такую же, как и скрипт. При запуске скомпилированного .exe ничего не происходит.
AutoIt версия 3.2.4.9.
Что делаю не так?

Отправлено: 10:34, 01-06-2007 | #457


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


ChVL
Цитата:
скомпилированный .exe "съедает" исходный .exe и имеет иконку такую же, как и скрипт.
так ты выбери для скрипта другое имя, к примеру: Setup.exe - приложение, Setup_AU.au3 - скрипт, тогда никакого наложения имен при компиляции не будет

Отправлено: 10:43, 01-06-2007 | #458


Аватара для ChVL

Старожил


Сообщения: 254
Благодарности: 38

Профиль | Отправить PM | Цитировать


amel27
Цитата:
выбери для скрипта другое имя
Действительно, всё работает! Спасибо!
Странно, что нигде ни в одном мануале о необходимости переименования скрипта нет ни слова. Это же не очевидно. Ну, съедает... А может так и надо?

Отправлено: 11:04, 01-06-2007 | #459


Новый участник


Сообщения: 14
Благодарности: 2

Профиль | Отправить PM | Цитировать


уважаемый amel27
к сожалению в данном случае не всё так просто. видимо вы не проверяли.
я добавил сразу после запуска Visicom
MsgBox(4096, "otladka", $pid) и оказалось что Visicom.exe имеет Pid=0 т.е. не отлавливает
т.к. Visicom запускается как дочерний процесс NTVDM.exe, последний продолжает оставаться в памяти при закрытии Visiciom то PID NTVDM'а как условие не годится.
В случае например с Notepad.exe или ещё с каким-нибуть другим приложением, которое висит в памяти как самостоятельный процесс проблем нет.
Естессно ваш код более правильный т.к. позволяет отловить именно тот процесс который запустил скрипт (если есть другой процесс с таким же именем), но в данном случае не в этом проблема.

Отправлено: 12:36, 01-06-2007 | #460



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.3] AutoIt скрипты

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? DreDo Хочу все знать 4 01-12-2009 18:54
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. Vadikan AutoIt 1543 18-01-2009 10:46
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
[Архив - Часть 1.2] AutoIt скрипты Dirk Diggler AutoIt 505 02-12-2006 11:00
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход