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

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

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

Widok (01-06-2010 13:08): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

AutoIt3
(Часть 1)

 
 
Домашняя страница: http://www.autoitscript.com
Страница загрузки: http://www.autoitscript.com/autoit3/downloads.php
 
Описание:

Цитата:
AutoIt v3 - это язык для написания сценариев, напоминающий BASIC. Основным его назначением является автоматизация работ с Windows GUI (графическим интерфейсом пользователя MS Windows). Для выполнения этой сложной задачи предоставляется комбинация испытанных методов, включающих в себя эмуляцию нажатий комбинаций клавиш клавиатуры, перемещения указателя мыши, управление окнами и их визуальными элементами. Как показывает практика, эти "приводные ремни" весьма эффективны для получения работающих решений в ситуациях, когда другие стандартные средства (например, VBScript и SendKeys) оказываются бессильны.
Умеет он очень и очень многое! Бесплатный.

 
Помощь по AutoIT:
  • Справку на русском (и не только) вы всегда(?) сможете найти тут
  • Учебник по AutoIt для начинающих
  • Видео-руководства на YouTube (англ.)
  • AutoIt v3: Your Quick Guide (652 КБ) - Ваш быстрый гид в мир AutoIt-а (книга в формате pdf) - Та же книжка online.
  • Справочник по командам rundll32
  • Справка WinAPI (Win 32 API по шагам)
  • Русский справочник по API-функциям
  • Полезная информация по WinAPI на русском
  • Помощь по регулярным выражениям
  • Tutorial on DllCall() & DllStructs - Небольшое (пока?) руководство по использованию функции DllCall*()
     
     
    Ресурсы, посвящённые AutoIt
  • AutoIt в Википедии
  • AutoIt Russian Community - Русское сообщество AutoIt
  • Jabber-конференция для обсуждения мелких вопросов касающихся AutoIt
  • Обзор скриптового языка AutoIt (рус.)
  • AutoIt на Yahoo! Groups
  • Раздел в конфиренции OSzone.net, посвящённый AutoIt
  • Пополняющийся со временем сайт с полезными утилитами и функциями на AutoIt
  • Коллекция AutoIt-скриптов от Sanja Alone
  • Коллекция AutoIt-скриптов от MSFN (могут быть устаревшие).
  • Коллекция AutoIt-скриптов от AZJIO
     
     
    !!! Полезные советы и заметки - новичкам и не только
     
     
  • Рекомендации по написанию скриптов
     
     
    Инструменты для AutoIt:
  • AutoIt Path Switcher - Переключение пути к папке AutoIt.
  • AutoIt3Wrapper [Страница закачки] - Программа для компиляции скрипта с дополнительными возможностями (добавление значка, описания и т.п).
  • Koda (724 Kb) - Визуализация работы с GUI - аналог Visual Basic.
  • CodeWizard (400 Kb) - нечто простенькое на вариант Koda.
  • AutoItMacroGenerator (34 Kb) - Записывает в реальном времени действия пользователя в AutoIt-код.
  • ScriptWriter (78 Kb) - Аналог AutoItMacroGenerator.
  • API Constants (1042 Kb) - Утилита для просмотра всех констант API-функции и не только.
  • Страница закачки утилит, которые идут в отдельной поставке редактора SciTE.
  • AutoIt-меню для браузера Opera.
     
    Готовые скрипты и программы с открытым кодом на AutoIt:
  • Desktop Icons Restorator - Скрипт-программа для сохранения/восстановления позиции значков рабочего стола.
  • CaptureIt - Утилита для захвата изображений с экрана.
  • SwitchIt - Скрипт для конвертирования выделенного текста.
  • Скрипт раскраски кода AutoIt для публикации в форумах
     
    Общие вопросы и решения на Autoit:
  • Обработчик скриптов добавляющий отладчик (debugger) - Последняя версия: AutoItScript Add Debugger
  • Интеракция между несколькими скриптами
  • Пример использование интеракции между скриптами - Добавление элементов GUI с внешнего модуля
  • Чтение и запись данных с/в окна/о SciTE
  • Пример автообновления версии своего приложения
  • Копирование большого файла с отображением данных прогресса
  • Создание динамического меню в Tray Icon (значок в области уведомлений)
  • Пример создания своего мастера (Wizard)
  • Метод, позволяющий запускать код VBS без создания временных файлов
  • Описание функции GUIRegisterMsg()
  • Пример перехвата вводимых символов с клавиатуры
  • Пример деактивирования TabItem
  • Пример вывода лога в Edit-поле (с поддержкой форматирования текста)
  • Пример остановки/начало выполнения скрипта + Слежение за буфером обмена с заменой неподдерживаемых в имени файла символов
  • Подключение приложения (GUI) к буферу обмена
  • Пример использования меню с значками (ModernMenu.au3) -> Список программ в меню значка в системном трее
  • Пример подсчёта интервала времени между нажатиями клавиш
  • Слежение нажатых элементов в текущем окне (под курсором)
  • Написание instant messaging Бота на AutoIt
  • Способ, позволяющий посылать нажатие клавиши в неактивное окно (не путать со свёрнутым)
  • Сервер <=> Клиент - Пример передачи файла
  • Пример отображения только элементов GUI (без самой оболочки)
  • Модуль, превращающий ваше приложение в Trial-версию
  • Слежение за выделенным текстом и с последующим его помещением в файл
     
    Отдельные функции и библиотеки (UDF):
  • Функции, относящиеся к интернету
  • Функции для работы с процессами и окнами
  • Функции для работы с файлами
  • Функции для GUI/Tray
  • Системные функции
  • Разное (то, что не подпадает под другие категории)
     


     
    За шапкой следит ViSiToR  

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 14:47 12-01-2009 | Исправлено: Maz, 11:50 17-04-2017
    CKA3O4H1K



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

    Цитата:
    Реализовать удалось возможно не всё и не так как задумано, но это начало, пишите что требуется подкорректировать, если оно не сложно (я беру в расчёт фактор (отсутствия) времени), попробую исправить.

    Здорово что Вы взялись за разработку Линейки, я очень благодарен Вам, уверен мною благодарность не ограничится.
    То что вышло реализовать уже очень много. Спасибо большое за Ваше время и умения. .  
    За мной документация и популяризация
     
    Мои замечания...

    Всего записей: 1378 | Зарегистр. 26-10-2004 | Отправлено: 21:13 07-06-2009 | Исправлено: CKA3O4H1K, 21:14 07-06-2009
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    CKA3O4H1K
    Во-первых, что такое лБлок и лЛиния?
     
    CKA3O4H1K 21:13 07-06-2009
    Цитата:
     При не закрепленном состоянии лБлока курсор должен отображатся при любых настройках

    Я ведь про это и спрашивал, т.к не поступило ясного ответа, я предположил что есть всего два режима.
     

    Цитата:
    Сделать возможность делать лЛинию тоньше

    Ок, а высота нормально?
     

    Цитата:
    Добавить переменную в ini-файл которая будет отвечать за отступ лЛинии от курсора

    Ок.
     

    Цитата:
    * Отключить клик СКМ для переключения режимов в режиме лЛиния (накладываються функции Линейки на стандартные браузера). Очень прошу ввести хоткей для этих целей

    Не уверен что понял - т.е по сути в максимальном режиме не обрабатывать СКМ, а повесить это дело на хоткей? (какой тогда?)
     

    Цитата:
    * Если по умолчанию режим лЛиния, то после запуска Линейки нужно кликнуть где угодно, иначе за лЛинией остаётся шлейф следов, также при переключения с лБлок на лЛинию по СКМ

    Не замечаю у себя подобного. Какая система? и я так понял опция "Отображения содержимого окна при перетаскивании" у вас отключена?
     

    Цитата:
    можно ли регулировать частоту обновления (плавность слежения за курсором)? Было бы здорово видеть эту опцию в ini-файле

    Попробую.
     

    Цитата:
     Если по умолчанию режим лЛиния, то после запуска Линейки в трее в подменю Режимы отображения "включены" оба пунка

    Странно...
     

    Цитата:
     При работе с программами жестов мышы на линейке остаются следы, воможно обновлять линейку (её цвет ) после кликов левой/правой клавиши мышки?

    Думаю да, но это ответственность этих программ, они не должны так влиять на внешние окна.
     

    Цитата:
    * Переименовать "Максимальный" = Горизонтальная Линия, "Нормальный" = Прозрачный Блок

    Ок.
     

    Цитата:
    При наборе с клавиатуры, линейка стаёт максимально прозрачной

    При наборе чего/где?

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 22:47 07-06-2009
    CKA3O4H1K



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

    Цитата:
    Я ведь про это и спрашивал
    А я не понял, думал Вы говорите о закреплённом состоянии.

    Цитата:
    Ок, а высота нормально?
    Я понимаю высота и толщина в этом режиме синонимы, что вы имеете ввиду?

    Цитата:
    Не уверен что понял - т.е по сути в максимальном режиме не обрабатывать СКМ, а повесить это дело на хоткей? (какой тогда?)  
    Да, так как при обычных действиях СКМ лЛиния также сменяется на лБлок, который собой перекрывает некую рабочую область. Думаю вообще убрать обработку СКМ. Поставьте по аналогии на Ctrl+Shift+K, а потом придумаем более удобные хоткеи.

    Цитата:
    Не замечаю у себя подобного. Какая система? и я так понял опция "Отображения содержимого окна при перетаскивании" у вас отключена?  
    Да, включена. Система Win XP SP3. При переключении из трея - всё нормально, но если последним был режим лЛиния, выйти из Линейки и запустить снова, то до клика при перемещении остаётся след. Но это мелочь, тем более может это конфликт моего софта.

    Цитата:
    При наборе чего/где?  

    Ну можем придумать условие. К примеру, после набора букв больше трёх штук - Линейка меркнет, а при активности перемещения мышки - Линейка появляется
     

    Всего записей: 1378 | Зарегистр. 26-10-2004 | Отправлено: 00:20 08-06-2009
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    CKA3O4H1K 00:20 08-06-2009
    Цитата:
    высота и толщина в этом режиме синонимы, что вы имеете ввиду?

    Я имел в виду максимальная высота, лимит.
     

    Цитата:
    после набора букв больше трёх штук - Линейка меркнет, а при активности перемещения мышки - Линейка появляется

    Не пойму для чего сия затея? Какова цель...

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 00:40 08-06-2009
    CKA3O4H1K



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

    Цитата:
    Я имел в виду максимальная высота, лимит.  
    Пущай 20 ать

    Цитата:
    Не пойму для чего сия затея? Какова цель...
    Дабы не мешала оку зреть на плод творенья пальцев и ума человечьих

    Всего записей: 1378 | Зарегистр. 26-10-2004 | Отправлено: 00:52 08-06-2009
    timsky



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ynbIpb
    Спасибо за программу. Утащил в копилку
    А что именно тебе нужно делать с СМС-ками?
    Посылать и принимать. Мобильный телефон для этого дела можешь присобачить к компу?

    Всего записей: 2287 | Зарегистр. 08-06-2004 | Отправлено: 01:04 08-06-2009
    CKA3O4H1K



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

    Цитата:
    после набора букв больше трёх штук - Линейка меркнет, а при активности перемещения мышки - Линейка появляется
     
    Не пойму для чего сия затея? Какова цель...

    Серьёзно говоря, когда идет набор буков Линейка в любом из режимов не нужна, а только мешает.  
    Это фича для тех кто будет жить с Линейкой вместо Гаечки , то есть тем, кому будет влом отключать Линейку во время ответа на форумах, блогах, да врочем многие ситуации, даже переименование файлов.  
    Заметил сам неудобство отвечая на Ру-боарде, Горизонтальная Полоска заслонила текст, был вынужден отводить курсор, притом несколько раз.
     
    Вот.  
     
    Кстати Линейке аналогов нет, даже платные проги просто никчемные поделки, видел разве срипт от Линуксоводов, тогда и оценил задумку. Перепробовал кучу читалок, ни одна не умела. А ведь мониторы все крупнее, текста больше, буквы мельче, часто путаю строки, теряю текст, теряю даже курсор. С режимом Горизонтальная Линия уже и живу.  
     
    Не бросай Линейку, очень прошу, доделывай её когда есть желание. Спасибо ViSiToR!

    Всего записей: 1378 | Зарегистр. 26-10-2004 | Отправлено: 06:56 08-06-2009 | Исправлено: CKA3O4H1K, 07:08 08-06-2009
    ynbIpb



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

    Цитата:
    А что именно тебе нужно делать с СМС-ками?

    ну вообще есть безумная идея прикрутить это к нашему проекту ICQ бота как резервный канал связи если отвалится интернет. например чтоб он мне СМС скидывал в таком случае и я мог послать команду ребутнуть сервер.

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 08:39 08-06-2009
    whitebear150980

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR  AutoIT
     
    Добрый день.
     
    Да Ваш пример красивше Задача такая: есть структура папок Год-Месяц-День-файл№.txt которые и отображаются в дереве. Необходимо, чтобы когда я кликаю по файлику в дереве, мне возращался полный путь, т.е. Год-Месяц-День-файл№.txt. В принципе импирически понимаю что надо получить хоть какойто отклик от элементов дерева, остальное прирастим
     
    З.Ы. И вот возник вопрос: а можно сделать какие-то части дерева невидимыми и или заменять их псевдонимами в отображении.

    Всего записей: 15 | Зарегистр. 03-06-2009 | Отправлено: 17:11 08-06-2009
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    whitebear150980 17:11 08-06-2009
    Цитата:
    Необходимо, чтобы когда я кликаю по файлику в дереве, мне возращался полный путь

    Так в примере же все элементы дерева помещены в массив, остаётся только проверять событие:
     

    Код:
    Case $aItems[1] To $aItems[$aItems[0]]
                $sGet_TreePath = _GUICtrlTreeView_GetTree($TreeView, $nMsg)
     
                ConsoleWrite($sGet_TreePath & @CRLF)


    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 21:21 08-06-2009
    timsky



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ynbIpb
    Вобщем, есть такая прога для СонЭриков MyPhoneExplorer: http://forum.ru-board.com/topic.cgi?forum=5&topic=19403&glp
    Замечательная бесплатная софтина. Подключаешь к компу через USB и делай что хочешь с телеоном. Есть командная строка, контролы досягаемы.
    Была задача замутить через нее отправку СМС-ок, но отпала.
    А еще как вариант юзать сервисы самих сотовых компаний типа такого: http://sms.mts.uz/sms.php
    У разных компаний по разному, например, бывает что если послать мыло на {номер}@beeline.ru, то владелец получит смс.

    Всего записей: 2287 | Зарегистр. 08-06-2004 | Отправлено: 22:57 08-06-2009
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    CKA3O4H1K 06:56 08-06-2009
    Цитата:
    когда идет набор буков Линейка в любом из режимов не нужна

    Думаю не сложно её прятать при наборе букв(!), и показывать при движении мышки, ну или по спец. хоткею (тот же «Ctrl + Shift + L»).
     
    Вобщем я нашёл (точнее мне на офф. форуме подсказали) метод пропускания кликов и прочего сквозь GUI, это оказалось намного проще чем я думал, всего один стиль - $WS_EX_TRANSPARENT ).
     
    P.S
    У вас есть ICQ? Там будет удобнее, и быстрее
     
    Добавлено:
    CKA3O4H1K
    Я начинаю немного путаться...
     
    * В закреплённом состоянии (уточну, это не режим, а только состояние для всех режимов?) курсор отображается в соответствии с настройками каждого режима отдельно, и в этом (и только в этом, верно?) состоянии линейка движется за курсором, независимо от текущего режима, а клики и прочее обрабатываются сквозь GUI, верно?
    Может тогда лучше просто сделать отдельный режим для этого, назвать его «Закреплённый режим»
     
    * Нужно ли для режима Г.Линия пропускать клики, или это только для П.Блока?
     
    21:13 07-06-2009
    Цитата:
    * Если по умолчанию режим лЛиния, то после запуска Линейки в трее в подменю Режимы отображения "включены" оба пунка

    Это пофиксил.
     
    P.S
    У меня на данный момент есть немного свободного времени (и желание повозиться с этой линейкой ), поэтому лучше поспешите с ответами (ещё лучше в аське), такая возможность у меня бывает редко.


    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 00:23 09-06-2009 | Исправлено: ViSiToR, 00:54 09-06-2009
    2133pavel2133

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте. У меня снова проблема, возможно вы сможете мне помочь.
    Программа-клиент на VB.NET. В ней есть злобная кнопка "Search".
     
    Autоit Info:
    >>>> Window <<<<
    Title:    Main
    Class:    WindowsForms10.Window.8.app4
    Position:    1685, 0
    Size:    235, 861
    Style:    0x16CE0000
    ExStyle:    0x00050100
    Handle:    0x00050338
     
    >>>> Control <<<<
    Class:    WindowsForms10.Window.8.app4
    Instance:    172
    ClassnameNN:    WindowsForms10.Window.8.app4172
    Advanced (Class):    [CLASS:WindowsForms10.Window.8.app4; INSTANCE:172]
    ID:    591376
    Text:    Search
    Position:    144, 69
    Size:    64, 24
    ControlClick Coords:    42, 12
    Style:    0x56010000
    ExStyle:    0x00000000
    Handle:    0x00090610
     
    При нажатии текст "abc" отпраляется серверу, и получается ответ "123"
    Время ответа от 0.2 сек до 1-2 секунд. Требуется определить, когда кнопка освободилась.
    Визуально, после запроса она находится в нажатом состоянии, пока не придет ответ.
     
    Я пробовал
     
    ControlCommand ("Main", "", "[CLASS:WindowsForms10.Window.8.app4; INSTANCE:172]","IsEnabled", "")
     
    всегда возвращает 1, опция "isvisible" то же самое.
     
    GUICtrlRead - возвращает всегда 0.
     
    Гугл не помог, там только эти варианты. Есть какие-нибудь идеи?

    Всего записей: 7 | Зарегистр. 05-06-2009 | Отправлено: 06:55 09-06-2009 | Исправлено: 2133pavel2133, 06:56 09-06-2009
    CKA3O4H1K



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

    Цитата:
    У вас есть ICQ? Там будет удобнее, и быстрее

    Да! С твоего  позволения : )
     
    Теперь ответы туда

    Всего записей: 1378 | Зарегистр. 26-10-2004 | Отправлено: 11:42 09-06-2009
    moto25ru



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

    Цитата:
    moto25ru, мне кажется у тебя не получится сделать прокси. Как-то я делал socks 4/5 прокси на Perl, так там используется спецфункция select чтобы определять с какого сокета пришли данные (с сайта или от браузера) или есть еще неблокирующие сокеты,незнаю, может еще с многопоточностью можно как-то извернуться.  

    спасибо за ответ =) ты единственный пока, кто откликнулся =)
    С какого сокета пришли данные и так определяется =) более того, в последней редакции уже более-менее работает, если так можно выразиться.. беда в другом.. у меня есть 2 скрипта.. 1 впринципе неверен, но работает на половину, второй - верен, но не работает =) поясню
    1) работает почти как второй, но "вылетает" и после его завершения (в чем причина понятия не имею) отображается часть странички =)
    2) работает отлично, запросы постоянно принимает и отправляет на проксю, прокся их принимает и отправляет ответ, все вроде верно, НО ! итоговая страничка не отображается вообще, есть подозрение, что это связано с тем, что я или не закрываю сессию TCP как это происходит при вылете по ошибке в первом скрипте или же просто надо закрыть сокеты и затем заного открыть, чтобы браузер понял, что ответ который он получил это и есть то, что он ожидал, а то происходит как вечная загрузка..
    ---
    посему вопросы простые, пусть и не в тему
    1) как вообще функционирует http протокол по запросу браузера, требует ли он завершения TCP сессии как команды к окончанию загрузки и отображению скаченного ?
    2) есть ли примеры (лучше подробные) когда используются функции TCP в autoIT ? т.е. передача файлов, передача текста, смешанные варианты может быть.. у меня вот, например, работает скрипт только в случае записи в файл в бинарном принудительном порядке =) интересно почему =) но не сильно важно впринципе (файлы используются на данный момент как форма передачи запроса на другой порт, а сам скрипт этакий тунель)
    3) вообще как формируется страничка ? т.е. в каком порядке что закачивается, например:
    ) закачивается форма (разметка гипертекстовая)
    ) затем браузер смотрит каких картинок не хватает и посылает дополнительные запросы и вставляет полученные данные куда положено по форме (разметка гипертекстовая)
    ###
    вообще задача казалась более чем простой, получил на одном порту - отправил на другой и наоборот ! и ведь даже не важно что получил и передал, просто как тунель, принял-отправил, а уже почти месяц бьюсь.. приблизился незначительно, хоть и больше стал понимать как, что работает, хелп уже весь почти наизусть по этим функциям помню ((
    ###

    Код:
     
    #include <GUIConstantsEx.au3>
    #include <Array.au3>
    #Include <File.au3>
    Opt('MustDeclareVars', 1)
     
    local $listen_IP = "127.0.0.1"
    local $listen_PORT = 80
    local $proxy_IP = "127.0.0.1"
    local $proxy_PORT = 8080;1521
     
    local $file, $m,$s,$g,$soc ;, $BUFF, $cleint_IP_Accepted, $array, $addr $time=1000, $recv = "", $i=0,  
    local $to_proxy="temp_proxy.bin", $to_listen="temp_listen.bin", $flag="flag"
    local $buf = 65432, $TTL = 100, $data="", $GET="", $bin=0, $b=16, $count=0
    local $ListenSocket, $ConnectedSocket, $proxySocket, $socket
     
    Example()
     
    Func Example()
    If FileExists($to_proxy) Then FileDelete($to_proxy)
    If FileExists($to_listen) Then FileDelete($to_listen)
    If FileExists($flag) Then FileDelete($flag)
        
    TCPStartUp()
     
    $ListenSocket = TCPListen($listen_IP, $listen_PORT,  $TTL )
    If $ListenSocket = -1 Then Exit
    $proxySocket = TCPConnect ( $proxy_IP, $proxy_PORT )
    $socket = TCPConnect ($listen_IP, $listen_PORT)
    ProgressOn ("tonnel","", "",0,800,1)
     
    While 1
    ProgressSet (0,"прослушивание портов")
    ;    проверка на наличие данных для отправки на proxy
        
        If FileExists($to_proxy) Then
            $file = FileOpen ($to_proxy, $b+0)
                If $file = -1 Then
                    MsgBox(0, "Error", "buffer error")
                    Exit
                EndIf
    ProgressSet (0,"передача данных на proxy")
            $data=FileRead($file);, 1)
            $count=TCPSend ($proxySocket, $data )
            If @error == -1 Then _MsgBox (0, "Error", "EOF")
            If @error == 1 Then _MsgBox(0, "Error", "buffer error")
    ; # # # # #
    _MsgBox (0, "Send to proxy", $data&@CRLF&@CRLF&"binary="&isBinary($data)&@CRLF&"@error="&@error&@CRLF&"$count="&$count)
    ; # # # # #
            FileClose($file)
            FileDelete($to_proxy)
            $data = ""
        EndIf
        
        If not FileExists($to_listen) Then
    ;    получение данных на локальном порту
    ;    $data = _TCPRecv(TCPAccept($ListenSocket), $buf)
        $data = _TCPRecv($ConnectedSocket, $buf)
    ; # # # # #
    _MsgBox (0, "получено с 127.0.0.1:80", $data&@CRLF&@CRLF&"binary="&isBinary($data)&@CRLF&"@error="&@error&@CRLF&"$buf="&$buf)
    ; # # # # #
            If $data<>"" Then
                If FileExists($to_proxy) Then;And $proxySocket<>-1 Then
                    $file = FileOpen ($to_proxy, $b+2)
                    If $file = -1 Then
                        MsgBox(0, "Error", "buffer error")
                        Exit
                    EndIf
                    FileWrite($file, $data)
                    FileClose($file)
                Else    
                    _FileCreate($to_proxy)
                    $file = FileOpen ($to_proxy, $b+1)
                    If $file = -1 Then
                        MsgBox(0, "Error", "buffer error")
                        Exit
                    EndIf
                    FileWrite($file, $data)
                    FileClose($file)
                EndIf
    ProgressSet (0,"получение данных с 127.0.0.1:80")
            Else
    ;    переключение порта в режим ожидания|приема
                $ConnectedSocket = TCPAccept($ListenSocket)
            EndIf
        EndIf
        
     
    ;    проверка на наличие данных для отправки в браузер
        If FileExists($to_listen) Then;$ListenSocket<>-1 Then
            $file = FileOpen ($to_listen, $b+0)
                If $file = -1 Then
                    MsgBox(0, "Error", "buffer error")
                    Exit
                EndIf
    ProgressSet (0,"передача данных в iE")
            $GET=FileRead($file);, 1)
            $count=TCPSend ($socket, $GET );$ListenSocket, $GET )
            If @error == -1 Then _MsgBox (0, "Error", "EOF")
            If @error == 1 Then _MsgBox(0, "Error", "buffer error")
    ; # # # # #
    _MsgBox (0, "Send to iE", $GET&@CRLF&@CRLF&"binary="&isBinary($GET)&@CRLF&"@error="&@error&@CRLF&"$count="&$count)
    ; # # # # #
            FileClose($file)
            FileDelete($to_listen)
            $GET = ""
        EndIf
     
        If not FileExists($to_proxy) Then
    ;    получение данных на порту proxy
    ;    $GET = _TCPRecv($socket, $buf)
        $GET = _TCPRecv($proxySocket, $buf)
    _MsgBox (0, "получено с 127.0.0.1:8080", $GET&@CRLF&@CRLF&"binary="&IsBinary($GET)&@CRLF&"@error="&@error&@CRLF&"$buf="&$buf)
            If $GET<>"" Then
                If FileExists($to_listen) Then
                    $file = FileOpen ($to_listen, $b+2)
                    If $file = -1 Then
                        MsgBox(0, "Error", "buffer error")
                        Exit
                    EndIf
                    FileWrite($file, $GET)
                    FileClose($file)
                Else
                    _FileCreate($to_listen)
                    $file = FileOpen ($to_listen, $b+1)
                    If $file = -1 Then
                        MsgBox(0, "Error", "buffer error")
                        Exit
                    EndIf
                    FileWrite($file, $GET)
                    FileClose($file)
                EndIf
    ;        Else
    ;    переключение порта в режим ожидания|приема
    ;            $socket = TCPAccept($proxySocket)
            EndIf
        EndIf
        $data = ""
        $GET = ""
    WEnd
    ProgressOff ( )
        
     If $ConnectedSocket <> -1 Then TCPCloseSocket($InputSocket)
     If $proxySocket <> -1 Then TCPCloseSocket($InputSocket)
     TCPShutdown()
    EndFunc    
     
    Func _MsgBox ($m, $s, $g)
        MsgBox($m,$s,$g,0)
    EndFunc
     
    Func _TCPRecv ($soc, $buf)
       Return TCPRecv ($soc, $buf, 0)
    EndFunc
     
     

    последняя функция переписана для форума =) она у меня реально в скрипте используется в старом виде где проходит проверка на бинарность полученного, НО ! на любые данные она реагирует, что данные строковые, кроме тех, что читаются из бинарного файла =)

    Всего записей: 12 | Зарегистр. 02-06-2009 | Отправлено: 13:04 09-06-2009 | Исправлено: moto25ru, 13:12 09-06-2009
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    moto25ru, может это чем-то поможет: Proxy Server Socks5 (almost fully working)
    з.ы.
    пряч большой код под тег [more=море...][/more]

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 18:47 09-06-2009 | Исправлено: ynbIpb, 18:47 09-06-2009
    hunter19

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Привет всем, кто-нибудь знает скрипт, который бы генерировал au3-код без лишних переменных и функций, находящихся в #include-файлах, чтобы позже получить exe малого размера.
    Искал на офф. форуме - не нашёл.
     
    Пару дней назад пробовал сделать подобное, но попалась проблема с комментариями.
    Не знаю, как вычислить комментарии в au3-коде. Проблема в том, что ; #cs #ce могут содержаться в строках, которые в свою очередь окружены кавычками " или ',  
    помимо крайних кавычек могут быть одинарные и двойные кавычки в середине.

    Всего записей: 86 | Зарегистр. 28-02-2007 | Отправлено: 15:26 10-06-2009
    NIKZZZZ



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

    Цитата:
    Привет всем, кто-нибудь знает скрипт, который бы генерировал au3-код без лишних переменных и функций, находящихся в #include-файлах, чтобы позже получить exe малого размера.

    Для этого нужно при компиляции включить   Obfuscator с опцией /striponly
     
     
     
     
    Добавлено:
    Или использовать  Project Manager

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 15:35 10-06-2009
    hunter19

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    NIKZZZZ
    Спасибо большое. Project Manager как раз то, что нужно.
     

    Всего записей: 86 | Зарегистр. 28-02-2007 | Отправлено: 16:13 10-06-2009
    Hackproof



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    При работе двух скриптов по сети и передаче данных от одного к другому, после TCPCloseSocket($socket) соединение остается висеть на клиенте (инициаторе) в состоянии CLOSE_WAIT, на сервере(ждущем подключения) в состоянии FIN_WAIT.
    И каждое новое соединение после отработки и закрытия прибавляется к висящим.  
    TCPCloseSocket($socket) всегда возвращает 1, то есть успешное закрытие сокета, но тем не менее, через пару часов в TCPView длинный список мертвых душ...

    Всего записей: 106 | Зарегистр. 24-05-2008 | Отправлено: 19:26 10-06-2009
       

    Страницы: 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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166

    Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 2)
    Widok (01-06-2010 13:08): Лимит страниц. Продолжаем здесь.


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru