Что нового

Скрипт при запуске не из консоли - выдает сообщение об ошибке

Grell

Новичок
Сообщения
127
Репутация
0
Доброго времени суток.
Помогите решить проблему со скриптом.
Скрипт этот щелкает по определенному месту в окне, после анализа скриншота.
Код:
#include <ScreenCapture.au3>
#include <BmpSearch.au3>

Opt('WinTitleMatchMode', -2)
$aPos = WinGetPos('Википедия')

_GDIPlus_Startup()


$hWnd = WinGetHandle("Википедия")

;$hSource = _ScreenCapture_Capture()
_ScreenCapture_CaptureWnd(@ScriptDir & "\Screen.png", $hWnd)
$hBmp = _GDIPlus_BitmapCreateFromFile(@ScriptDir & "\Screen.png")
$hSource = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp)

$hBmp = _GDIPlus_BitmapCreateFromFile(@ScriptDir & "\Test.bmp")
$hFind = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp)

$aCoords = _BmpSearch($hSource, $hFind, 1)

If @error Then
  ConsoleWrite("No" & @CRLF)
Else
  ConsoleWrite("X:" & $aCoords[1][2] & " Y:" & $aCoords[1][3]  & " time:" & @extended & @CRLF)
EndIf


 MouseClick("left", $aCoords[1][2] + $aPos[0], $aCoords[1][3] + $aPos[1], 1)

Я запускаю скрипт из консоли - и он спокойно щелкает по нужной кнопке.
Однако если запустить этот скрипт не из консоли, а просто щелкнув по нему мышкой - то он выдаст сообщение "Прекращена работа программы Autoit v3 Script".
Если его скомпилировать в экзешник x64 - то он выдаст сообщение "Прекращена работа программы 1.exe".

Подскажите - почему скрипт - нормально работающий из консоли, при попытках запустить его обычным способом - выдает сообщения о закрытии программы ?

1.rar
 

InnI

AutoIT Гуру
Сообщения
4 486
Репутация
1 217
BmpSearch содержит компилированный код, который работает только при запуске, как х86.
Вероятно, из "консоли" (я так понимаю из SciTE) скрипт запускается, как х86 и работает. А при запуске "обычным способом" он запускается, как х64 и выдаёт ошибку.

Если его скомпилировать в экзешник x64
Компилируйте под х86 - должно работать.

И MouseClick перенесите в ветку Else ;)
 
Автор
G

Grell

Новичок
Сообщения
127
Репутация
0
InnI да, но у меня - система-то 64-х битная.

Теперь скомпилированный 86х-экзешник вообще не запускается.

Выдает вот такое сообщение:




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


И MouseClick перенесите в ветку Else ;)
А вот теперь заработало.
Спасибо за дельный совет.
 
Верх