Что нового

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

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,912
Репутация
1,429
BmpSearch содержит компилированный код, который работает только при запуске, как х86.
Вероятно, из "консоли" (я так понимаю из SciTE) скрипт запускается, как х86 и работает. А при запуске "обычным способом" он запускается, как х64 и выдаёт ошибку.

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

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

Grell

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

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

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




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


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

А вот теперь заработало.
Спасибо за дельный совет.
 
Верх