Что нового

AutoItX + Delphi первый старт или как использовать.

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
sendsay сказал(а):

Да. А еще нужно указать полный путь к DLL или закинуть его, как было сказано выше, в системную папку или в папку с проектом. Но лучше испоьзовать COM интерфейс, т.к. он предоставляет несравнимо больше функций.
 
Автор
S

sendsay

sendsay
Сообщения
29
Репутация
0
Kaster сказал(а):
sendsay [?]
Поэтому у вас все работает, вам не надо переводить этот пример на другой язык.
еще раз, я не знаком с Delphi, но могу точно сказать, что ты пытаешься вызвать функцию непосредственно из библиотеки. Для этого регистрировать библиотеку не надо. Но! после регистрации можно пользоваться непосредственно объектной модель. Для этого использую специальный ключевые слова, о которых я не знаю, нужно вызвать конструктор и создать корневой объект AutoItX3.Control. Из которого уже доступные все остальные методы AutoIt.


Добавлено:
Сообщение автоматически объединено:

однако, выполнив работу за тебя, нашел в инете функцию конструктора для Delphi и выглядит она, как ни странно весьма аналогично многим другим ЯП
Код:
au3OLE := CreateOleObject('AutoItX3.Control');
au3OLE.Run('notepad')



Спс. Но я пытаюсь избежать СОМ. Так как это надо изучать и устанавливать сложнее. Но видно никуда не денешься. Буду пробовать СОМ.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
sendsay [?]
Так как это надо изучать и устанавливать сложнее
хм. а на чем основаны эти выводы? вызывать методы куда проще чем вытягивать функцию из сырой библиотеки с указанием кучи параметров и их типов. да и потом, тот хелп что в папаке с AutoItX как раз таки для COM. вызов функций так же прозрачен как и в родной среде, с одним дополнением в названии связанный с корневым объектом.
поэтому мне, если честно, твоя позиция непонятна.
 
Автор
S

sendsay

sendsay
Сообщения
29
Репутация
0
Yashied сказал(а):
sendsay сказал(а):

Да. А еще нужно указать полный путь к DLL или закинуть его, как было сказано выше, в системную папку или в папку с проектом. Но лучше испоьзовать COM интерфейс, т.к. он предоставляет несравнимо больше функций.
Да закинул я ее в папку проeкта и system32, для верности, и зарегистрировал.
И все равно не работает. Буду пробовать СОМ. ((((



Добавлено:
Сообщение автоматически объединено:

Kaster сказал(а):
sendsay [?]
Так как это надо изучать и устанавливать сложнее
хм. а на чем основаны эти выводы? вызывать методы куда проще чем вытягивать функцию из сырой библиотеки с указанием кучи параметров и их типов. да и потом, тот хелп что в папаке с AutoItX как раз таки для COM. вызов функций так же прозрачен как и в родной среде, с одним дополнением в названии связанный с корневым объектом.
поэтому мне, если честно, твоя позиция непонятна.
Так ДЛЛ как то привычней. Я согласен что иду наверное не правильным путем, но привычная дорога легче, а новая интересней. )))) Буду читать СОМ. Спс.
 
Автор
S

sendsay

sendsay
Сообщения
29
Репутация
0
ЛЮДИ ДОБРЫЕ!!!! ВСЕМ ОГРОМНОЕ СПС ОСОБЕННО Kastor (направил меня на путь истинный). Все работает
через СОМ. Признаю это Я лох. Сам себе пудрил мозги. Заработало после вот этого:
(код на Дельфи)

Код:
procedure TForm1.JvBitBtn1Click(Sender: TObject);  // нажали кнопку на форме
var
  au3OLE : Variant ;     //переменная, так как возвращ. тип не известен то Variant
begin
   au3OLE := CreateOLEObject('AutoItX3.Control');      // подключились к контролу

   au3OLE.MouseMove(500, 500);                        //перемещаем мышь

   if au3OLE.WinExists('Калькулятор') = 1 then   //проверяем присутствие алькулятора"
      ShowMessage('OK')                                 // есть
   else
      ShowMessage('not OK');                          //нет
end;

Теперь последние мелочи.
Для использования этого метода, обязательно надо регистрировать ДЛЛ в системе!!!!!
(regsvr32.exe AutoItX3.Dll)

Как я рад!!!! :laugh:

P.S.
CreateCOMObject требует GUID контрола, поэтому использую CreateOLEObject

ВСЕ тема закрыта!!!! ВСЕ ОГРОМНОЕ СПС. ;)
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
sendsay [?]
Для использования этого метода, обязательно надо регистрировать ДЛЛ в системе!!!!!(regsvr32.exe AutoItX3.Dll)
COM/OLE по жизни требует regsvr32, странно что вы такого не знали :-X
 
Автор
S

sendsay

sendsay
Сообщения
29
Репутация
0
Garrett сказал(а):
sendsay [?]
Для использования этого метода, обязательно надо регистрировать ДЛЛ в системе!!!!!(regsvr32.exe AutoItX3.Dll)
COM/OLE по жизни требует regsvr32, странно что вы такого не знали :-X
Вообще то, если Вы читали выше, из текста видно что я СОМ вообще не знаю.
А написал этот факт, для таких как я, которые будут читать этот текст после меня.
 
Верх