Автор Тема: AutoItX + Delphi первый старт или как использовать.  (Прочитано 23752 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sendsay [?]

  • Новичок
  • *
  • Сообщений: 29
  • Репутация: 0
  • Пол: Мужской
  • sendsay
    • Награды
Не могу понять как их соединить. Думаю что я не первый. Максимум что я сделал, это вызвал из Dll функцию WinExists, и та не реагирует на появление нужного окна.
А MouseMove вообще рожает run-time error.
Помогите кто чем может!
Очень надо их соединить, если это сделать то нет необходимости изучать WinAPI, так как нужные мне функции есть в AutoItX.
« Последнее редактирование: Декабрь 04, 2010, 22:12:38 от sendsay »
Abeunt studia in mores.

Русское сообщество AutoIt

AutoItX + Delphi первый старт или как использовать.
« Отправлен: Декабрь 04, 2010, 22:02:53 »

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7830
  • Репутация: 2288
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
sendsay  [?]
Цитировать
вызвал из Dll функцию WinExists
Нужно не вызывать, а использовать методы и свойства объекта «AutoItX3.Control» (после регистраций Dll). В справке есть примеры использования.


Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

Оффлайн sendsay [?]

  • Новичок
  • *
  • Сообщений: 29

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
  • sendsay
    • Награды
Так там пример на VB кажется или я ошибаюсь?
Если да то значит надо изучить COM технологию?

Кажется я на верном пути!!!!! Уже читаю про использование СОМ технологии.

Спасибо CreatoR

Оффлайн Kaster [?]

  • Бритва, Бритва Оккама
  • Глобальный модератор
  • *
  • Сообщений: 4020
  • Репутация: 622
  • Пол: Мужской
  • Мой Аватар, он лучший самый
    • Награды
  • Версия AutoIt: 3.3.14.0
sendsay
в смысле "если да"? вызов методов из библиотеки осуществляется посредством COM-интерфейса, независимо от ЯП в котором он был применен. уверен, что Delphi умеет это делать
Конференция посвященная AutoIt на jabber.ru - [email protected]
Как попасть на конференцию читаем тут


Русское сообщество AutoIt

Re: AutoItX + Delphi первый старт или как использовать.
« Ответ #3 Отправлен: Декабрь 04, 2010, 22:46:42 »

Оффлайн sendsay [?]

  • Новичок
  • *
  • Сообщений: 29

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
  • sendsay
    • Награды
sendsay
в смысле "если да"? вызов методов из библиотеки осуществляется посредством COM-интерфейса, независимо от ЯП в котором он был применен. уверен, что Delphi умеет это делать
Чё то ты меня совсем запутал!!!! ))))) Дельфи может работать с ДЛЛ вызывая функции внутри ДЛЛ, но для этого надо знать параметры этих функций (типы парамеров), это сказали, узнать почти не возможно. Так же Дельфи может работать с СОМ технологиями, вот тут я полный ноль. Хотя вызывать функции из ДЛЛ я недавно научился, может по этому не получается? ))))) Сейчас прочитаю про СОМ, и думаю что нибудь придумаю. Но от помощи все равно не отказываюсь!!!   ;)

Оффлайн SyDr [?]

  • Локальный модератор
  • *
  • Сообщений: 649
  • Репутация: 157
  • Пол: Мужской
  • Сидра
    • Награды
  • Версия AutoIt: 3.3.12.0
CreatoR  [?]
Цитировать
Нужно не вызывать, а использовать методы и свойства объекта «AutoItX3.Control» (после регистраций Dll). В справке есть примеры использования.
Kaster  [?]
Цитировать
в смысле "если да"? вызов методов из библиотеки осуществляется посредством COM-интерфейса, независимо от ЯП в котором он был применен. уверен, что Delphi умеет это делать
AutoItX предоставляет не только COM-интерфейс, но и DLL-интерфейс.

sendsay
Открой справку. Там всё есть.

AutoItX can be used as a standard DLL from any language capable of calling functions in external DLLs.

The following files are provided to allow you to use the DLL (for the C/C++ language):
AutoIt3.h - C language header file showing the exported functions and parameters
AutoItX3.lib - Microsoft format import library


Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7830
  • Репутация: 2288
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
SyDr  [?]
Цитировать
AutoItX предоставляет не только COM-интерфейс, но и DLL-интерфейс
Я пару раз пытался это сделать, у меня не получалось, поэтому я и предположил что оно работает только как COM.

Оффлайн sendsay [?]

  • Новичок
  • *
  • Сообщений: 29

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
  • sendsay
    • Награды
SyDr  [?]
Цитировать
AutoItX предоставляет не только COM-интерфейс, но и DLL-интерфейс
Я пару раз пытался это сделать, у меня не получалось, поэтому я и предположил что оно работает только как COM.
Так вот я о том же. Из ДЛЛ вызвать как то не получается. Вернее получается но работает не так как надо. Прочитал про СОМ. Для использования это способа надо знать GUID интерфейса AutoItX. Если я правильно понимаю то этот GUID создается когда ДЛЛ регистрируется в системе. Блин как все запущенно!!! )))))) Продолжаю читать про СОМ, там еще все хуже!!!  :) Но от помощи не отказываюсь.

HELP - мощная вещь!!!! СПС - SyDr. Читаем, Читаем и еще раз Читаем!!!!
« Последнее редактирование: Декабрь 05, 2010, 10:02:48 от sendsay »

Русское сообщество AutoIt

Re: AutoItX + Delphi первый старт или как использовать.
« Ответ #7 Отправлен: Декабрь 05, 2010, 09:47:25 »

Оффлайн sendsay [?]

  • Новичок
  • *
  • Сообщений: 29

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
  • sendsay
    • Награды
НУ ЧТО НЕ ТАК!!!!!! Мышь прыгает в левый верхний угол и Access violation ...... , а вот MinimizeAll работает. Может какую инициализацию провести?? Или как то параметры хитро задать???????? HELPPPPPPPPP !!!!!!!
« Последнее редактирование: Декабрь 05, 2010, 11:07:18 от sendsay »

Оффлайн SyDr [?]

  • Локальный модератор
  • *
  • Сообщений: 649
  • Репутация: 157
  • Пол: Мужской
  • Сидра
    • Награды
  • Версия AutoIt: 3.3.12.0
Не кричи. И так всё слышно.

Одно из двух:
1) Ты неправильно используешь библиотеку. В этом случае её неправильно использую и я:
Похожий код на FPC выдаёт похожий результат. При передаче функции любых параметров, курсор мыши со случайной (но обычно большой) скоростью перемещается в один из трёх углов (верхние и левый нижний). Причём, даже если передаю одни и те же параметры, курсор может "прыгать" по углам. Функция всегда возвращает 1. Иногда приводит к краху программы.
2) Что-то неправильно с самой функцией.

P. S. Код обычно не выкладывают в виде скриншотов :)

Оффлайн sendsay [?]

  • Новичок
  • *
  • Сообщений: 29

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
  • sendsay
    • Награды
Не кричи. И так всё слышно.

Одно из двух:
1) Ты неправильно используешь библиотеку. В этом случае её неправильно использую и я:
Похожий код на FPC выдаёт похожий результат. При передаче функции любых параметров, курсор мыши со случайной (но обычно большой) скоростью перемещается в один из трёх углов (верхние и левый нижний). Причём, даже если передаю одни и те же параметры, курсор может "прыгать" по углам. Функция всегда возвращает 1. Иногда приводит к краху программы.
2) Что-то неправильно с самой функцией.

P. S. Код обычно не выкладывают в виде скриншотов :)

1) Если функция такая "прибацанная", то ее разработчик знает об этом? Надеюсь что да, и он уже ночей не спит пытается исправить!!  :laugh: И у меня возвращает 0
2) Не было времени разбираться, как код из Дельфи в пихнуть в этот форум (жена кричала что мы уже опаздываем)  :)

Да и не кричу я, я просто весь горю от не терпения. :laugh:


Добавлено: Декабрь 05, 2010, 19:50:25
Блин, я в ШОКЕ!!!! Ни чего не получается.  >:(  >:(  >:( Я уже пробую другие функции, и все равно ничего не работает. Работают только процедуры без параметров. Что это может быть?, может это я дурак или ...................
Пойду погоняю монстров. Утро вечера мудренее!!!!  :)
« Последнее редактирование: Декабрь 05, 2010, 19:50:25 от sendsay, Причина: Объединение сообщений »

Оффлайн Yuriy [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 737
  • Репутация: 281
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Я попробовал использовать эту библиотеку из AutoIt.
Сначала я прочитал чуть-чуть тут http://www.script-coding.info/AutiItX.html
и зарегистрировал эту библиотеку,  как там написано.
Затем открыл справку "AutoItX" -> "DLL Interface" -> "Function Prototypes",
нашел там такую строку: AU3_API long WINAPI AU3_MouseMove(long nX, long nY, /*[in,defaultvalue(-1)]*/long nSpeed);
и попробовал выполнить такой код:
Код: AutoIt [Выделить]
$result = DllCall("AutoItX3.dll", "long", "AU3_MouseMove", "long", 100, "long", 200)

действие произошло, но вываливается ошибка.
Тогда решил добавить еще один параметр (уже из справки AutoIt - скорость перемещения мыши) и получился такой код:
Код: AutoIt [Выделить]
$result = DllCall("AutoItX3.dll", "long", "AU3_MouseMove", "long", 500, "long", 700, "long", 10)

действие произошло без сообщений о ошибках.
Это все.
Не знаю как там в Delphi, но возможно это то.

Оффлайн sendsay [?]

  • Новичок
  • *
  • Сообщений: 29

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
  • sendsay
    • Награды
Я попробовал использовать эту библиотеку из AutoIt.
Сначала я прочитал чуть-чуть тут http://www.script-coding.info/AutiItX.html
и зарегистрировал эту библиотеку,  как там написано.
Затем открыл справку "AutoItX" -> "DLL Interface" -> "Function Prototypes",
нашел там такую строку: AU3_API long WINAPI AU3_MouseMove(long nX, long nY, /*[in,defaultvalue(-1)]*/long nSpeed);
и попробовал выполнить такой код:
Код: AutoIt [Выделить]
$result = DllCall("AutoItX3.dll", "long", "AU3_MouseMove", "long", 100, "long", 200)

действие произошло, но вываливается ошибка.
Тогда решил добавить еще один параметр (уже из справки AutoIt - скорость перемещения мыши) и получился такой код:
Код: AutoIt [Выделить]
$result = DllCall("AutoItX3.dll", "long", "AU3_MouseMove", "long", 500, "long", 700, "long", 10)

действие произошло без сообщений о ошибках.
Это все.
Не знаю как там в Delphi, но возможно это то.

Спс за помощь, но я пробовал указывать Speed и не помогло.
Да и ты используешь для вызова функции AutoIt, там все работает, я там уже давно пробовал !!!  :(

Оффлайн Yuriy [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 737
  • Репутация: 281
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Решил проверить на другом ЯП. Более-менее (так себе) знаком с PureBasic.
Вот код (примитив) на PureBasic:
OpenLibrary(1, "C:\WINDOWS\system32\AutoItX3.dll") ; я ее так зарегистрировал
x.l = 500 ; координата x (long)
y.l = 700 ; координата y (long)
z.l = 30 ; скорость перемещения курсора (long)
CallFunction(1, "AU3_MouseMove", x, y, z)
CallFunction(1, "AU3_MouseMove", x + 300 , y + 100, z - 10)
CallFunction(1, "AU3_MouseMove", x - 300 , y - 100, z + 50)
End

Вот еще EXE этого кода (MouseMove1.rar)
И там точно такая же история была (не хватало третьего параметра - без него ошибка)

Оффлайн sendsay [?]

  • Новичок
  • *
  • Сообщений: 29

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
  • sendsay
    • Награды
Решил проверить на другом ЯП. Более-менее (так себе) знаком с PureBasic.
Вот код (примитив) на PureBasic:
OpenLibrary(1, "C:\WINDOWS\system32\AutoItX3.dll") ; я ее так зарегистрировал
x.l = 500 ; координата x (long)
y.l = 700 ; координата y (long)
z.l = 30 ; скорость перемещения курсора (long)
CallFunction(1, "AU3_MouseMove", x, y, z)
CallFunction(1, "AU3_MouseMove", x + 300 , y + 100, z - 10)
CallFunction(1, "AU3_MouseMove", x - 300 , y - 100, z + 50)
End

Вот еще EXE этого кода (MouseMove1.rar)
И там точно такая же история была (не хватало третьего параметра - без него ошибка)

Странно!!! Но у меня твой ехе не работает, мышь мигнула раз и все.
Параметр Speed, я задавал и все равно не работает. Пробую другие функции, все не работают, работают только те которые не имеют параметров (напр. MinimizeAll)
Спс за помощь.

Русское сообщество AutoIt

Re: AutoItX + Delphi первый старт или как использовать.
« Ответ #14 Отправлен: Декабрь 05, 2010, 23:11:31 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
0 Ответов
141425 Просмотров
Последний ответ Июль 18, 2009, 19:36:48
от `p r o x y
3 Ответов
2930 Просмотров
Последний ответ Июнь 28, 2012, 11:35:05
от CreatoR
6 Ответов
2790 Просмотров
Последний ответ Февраль 14, 2013, 16:46:43
от gregaz
11 Ответов
10848 Просмотров
Последний ответ Май 20, 2014, 23:28:18
от GOODVIN
1 Ответов
1665 Просмотров
Последний ответ Май 28, 2014, 13:28:30
от Z_Lenar
4 Ответов
8352 Просмотров
Последний ответ Март 09, 2015, 16:33:10
от ivanius
0 Ответов
6686 Просмотров
Последний ответ Март 08, 2015, 06:19:56
от madmasles
0 Ответов
5757 Просмотров
Последний ответ Март 10, 2016, 16:39:12
от belovkirill
4 Ответов
985 Просмотров
Последний ответ Ноябрь 26, 2016, 23:12:00
от Gilman
0 Ответов
1100 Просмотров
Последний ответ Январь 16, 2018, 03:55:07
от Sternman