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

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

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

(*.*)


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


Конфигурация

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


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







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


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


Сайт программы
Русская справка
Коллекция AutoIt скриптов от Sanja Alone
Коллекция AutoIt скриптов от MSFN (могут быть устаревшие).
Справочник по командам rundll32 (команды запуска диалоговых окон и не только...)

AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо).



Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров.
Цитата Vadikan:
В теме уже свыше 500 сообщений и поиск нужной информации в ней усложняется. Есть предложение собрать все решения (скрипты) и разместить их на Wiki по принципу "один скрипт - одна статья wiki", добавляя статьи в категорию Autoit. Речь, в принципе, идет об общих решениях, а не о скриптах для установки конкретной программы. Название статьи, очевидно, должно отражать назначение скрипта. Затем можно в шапке просто разместить ссылки на статьи Wiki.

-------
Канал Windows 11, etc | Чат @winsiders

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

Отправлено: 00:02, 05-02-2006

 

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


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

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


Подскажите пожалуйста.
Как с помощью AutoIt получить информацию из графического приложения в котором AutoIt Window Info ничего не опознает кроме самого окна приложения. Все внутри окна нарисовано, написано и работает автономно. Хочу написать бот для некоторых манипуляций в онлайн игре.

Отправлено: 19:18, 03-09-2007 | #411



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

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


Аватара для Creat0R

Must AutoIt


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

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


yukko,
Цитата:
Как с помощью AutoIt получить информацию из графического приложения в котором AutoIt Window Info ничего не опознает кроме самого окна приложения
Это весьма широкий вопрос - информация бывает разная, что именно требуется?

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

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

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


Отправлено: 20:32, 03-09-2007 | #412


Пользователь


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

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


Как-то я задавал вопрос по поводу перетаскивания окна за форму ...недавно эксперементировал с GUIRegisterMsg() и совешенно случайно обнаружил способ, думаю это хорошая замена для стиля $GUI_WS_EX_PARENTDRAG:
Код: Выделить весь код
#include <GuiConstants.au3>
Global Const $WM_SYSCOMMAND  = 0x0112
Global Const $WM_LBUTTONDOWN = 0x0201
$HWnd = GUICreate("DRAG_COMMAND",240,180,-1,-1,$WS_OVERLAPPEDWINDOW)
GUIRegisterMsg($WM_LBUTTONDOWN,"DRAG_COMMAND")
GUISetState()

While 1
   $msg = GUIGetMsg(0)
   Switch $msg
      Case $GUI_EVENT_CLOSE
         Exit
   EndSwitch
WEnd

Func DRAG_COMMAND($HWnd,$command,$wParam,$lParam)
   If BitAND(WinGetState($HWnd),32) Then Return
   DllCall("user32.dll","long","SendMessage","hwnd",$HWnd,"int",$WM_SYSCOMMAND,"int",0xF009,"int",0)
EndFunc
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:23, 04-09-2007 | #413


Аватара для Creat0R

Must AutoIt


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

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


Diamond,
Можно ещё так..

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

Global Const $WM_NCHITTEST = 0x0084
Global $GUI = GuiCreate("Drag using any place on GUI - Demo", -1, -1, -1, -1, $WS_OVERLAPPEDWINDOW)

GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")

GUISetState()

While 1
    $Msg = GUIGetMsg()
    Switch $Msg
        Case -3
            Exit
    EndSwitch
WEnd

Func WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam)
    If $hWnd = $GUI And $iMsg = $WM_NCHITTEST Then
        Local $id = _API_DefWindowProc($hWnd, $iMsg, $iwParam, $ilParam)
        If $id = 1 Then
            Return 2
        Else
            Return $id
        EndIf
    EndIf
EndFunc

Func _API_DefWindowProc($hWnd, $iMsg, $iwParam, $ilParam)
    Local $aResult
    $aResult = DllCall("User32.dll", "int", "DefWindowProc", "hwnd", $hWnd, "int", $iMsg, "int", $iwParam, "int", $ilParam)
    Return $aResult[0]
EndFunc
Вопрос только в том, какой метод болшье использует ресурсов, ведь в твоём примере используется Dll'ка (посылая сообщения) при каждом нажатии мышки... а в моём примере при движении мышки ...

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

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

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

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

Отправлено: 02:52, 04-09-2007 | #414


Аватара для Maza Faka

Ветеран


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

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


Хочу написать скрипт со "сфетофором", что бы при копировании файла отображался прогресс-бар, но почему-то функция AdlibEnable() начинает работать после того как скопируется файл, что я делаю не так:

Код: Выделить весь код
Dim $source = "d:\Video\Films\Адреналин.avi", $dest = "c:\Адреналин.avi", $i = 0
ProgressOn("Please wait...", "Now copying file", "", -1, -1, 16)
AdlibEnable("Rename", 500)

FileCopy($source, $dest, 1)

AdlibDisable()
ProgressSet(100, "Done")
Sleep(100)
ProgressOff()

Func Rename()
    $i += 1
    If $i = 100 Then $i = 0
        ProgressSet($i, $i & " percent")
    EndFunc

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение


Отправлено: 09:40, 04-09-2007 | #415


Аватара для Creat0R

Must AutoIt


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

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


Maza Faka,
Цитата:
Хочу написать скрипт со "сфетофором", что бы при копировании файла отображался прогресс-бар
Тут нужно использовать либо _CallBack функции, либо ещё один скрипт (потому как функции типа FileCopy() останавливают выполнение всего скрипта на момент копирования), но проблема в другом - Как определить сколько уже скопировалось..
Если требуется просто "голый" светофор, тогда будет достаточно вышеупомянутых действии ....

Код: Выделить весь код
Dim $source = "d:\Video\Films\Адреналин.avi", $dest = "c:\Адреналин.avi"

$DummyGui = GUICreate("#_Dummy_Gui_#")

$ProgressStr = '#NoTrayIcon' & @CRLF & _
    'ProgressOn("Please wait...", "Now copying file", "", -1, -1, 16)' & @CRLF & _
    'Dim $i = 0' & @CRLF & _
    'While WinExists(Hwnd(' & $DummyGui & '))' & @CRLF & _
    '   $i += 1' & @CRLF & _
    '   If $i = 100 Then $i = 0' & @CRLF & _
    '   ProgressSet($i, $i & " percent")' & @CRLF & _
    '   Sleep(200)' & @CRLF & _
    'Wend' & @CRLF & _
    'ProgressSet(100, "Done")' & @CRLF & _
    'Sleep(1000)' & @CRLF & _
    'ProgressOff()'

FileWrite(@TempDir & "\Temp_au3_Script.tmp", $ProgressStr)

Run(@AutoItExe & ' /ErrorStdOut /AutoIt3ExecuteScript "' & @TempDir & '\Temp_au3_Script.tmp"')

FileCopy($source, $dest)
GUIDelete($DummyGui)

FileDelete(@TempDir & "\Temp_au3_Script.tmp")

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

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

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


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


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


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

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


Искомая информация - строка, состоящая из английских букв и пробелов (название объекта). Строка известна, может быть такой и никакой другой. Нужно идентифицировать обьект. Так же есть строка поиска, в которую можно поместить название объекта, нажать на кнопку и произойдет поиск обьектов, которые после этого все равно нужно идентифицировать. Обьект - статический прямоугольник. Название в верхней части прямоугольника, по высоте текст приблизительно 1/15 от высоты прямоугольника.

Отправлено: 11:14, 04-09-2007 | #417


Аватара для Creat0R

Must AutoIt


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

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


yukko,
Нужно видеть приложение (сомневаюсь что видно только заголовок окна, возможно текст элементов скрытый?), а по сути, функции ControlGetText, ControlSetText, ControlCommand и т.п помогут в этой задаче.

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

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

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


Отправлено: 11:26, 04-09-2007 | #418


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


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

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


Сами обьекты отсканированные/нарисованы, но если есть поиск, то наверное текст где то в клиентской части есть. Утилита не видит ничего кроме заголовка окна. Подскажите пожалуйста где можно поискать текст ?

Отправлено: 12:10, 04-09-2007 | #419


Аватара для Creat0R

Must AutoIt


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

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


yukko
Цитата:
Сами обьекты отсканированные/нарисованы
Это изображение? Тогда будет сложновато, нужно задействовать OCR.. на оф. форуме кажется есть решение с использованием Microsoft Document Imaging (нужен Office 2003 как минимум), но распознаёт далеко не все виды изображении.

Приведи хотябы снимок приложения

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

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

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


Отправлено: 12:17, 04-09-2007 | #420



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

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

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




 
Переход