Недавние сообщения

Страницы: [1] 2 3 ... 10
1
Общие вопросы по AutoIt / Re: Удаление самого себя
« Последний ответ от Alofa Отправлен Вчера в 23:35:19 »
2
Общие вопросы по AutoIt / Re: Удаление самого себя
« Последний ответ от hxckid Отправлен Вчера в 22:55:27 »
P.S
Для предотвращения конфликтов при удалении, нужно установить паузу:

Код: AutoIt [Выделить]
ShellExecute('cmd.exe', '/k ping -n 2 localhost < nul & del /F /Q "' & @ScriptFullPath & '"', '', '', @SW_HIDE)


Две проблемы:
1. После удаления скрипта таким способом остается папка в которой он лежал. Заменив макрос на @ScriptDir удаления папки тоже не происходит.
2. Процесс cmd.exe продолжает работу и не дает вручную удалить эту папку, пока не убьешь процесс и не повторишь процедуру вручную.


3
InnI да, но у меня - система-то 64-х битная.

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

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




Добавлено: Вчера в 22:56:40

Цитировать
И MouseClick перенесите в ветку Else ;)

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

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

И MouseClick перенесите в ветку Else ;)
5
Код: AutoIt [Выделить]
#include <Misc.au3>

Func getObjectPixelsByClickCoords($x, $y, $deviation = 3)
    Local $colors[5]

    ; Получаем цвет точки, по которой кликнули + цвета точек на углах квадрата с центром в заданной точке
    $colors[0] = PixelGetColor($x, $y)
    $colors[1] = PixelGetColor($x - $deviation, $y - $deviation)
    $colors[2] = PixelGetColor($x + $deviation, $y - $deviation)
    $colors[4] = PixelGetColor($x + $deviation, $y + $deviation)
    $colors[3] = PixelGetColor($x - $deviation, $y + $deviation)

    Run('notepad.exe')
    WinWaitActive("Безымянный — Блокнот")
    Send("$colors[5] = [" & $colors[0] & ", " & $colors[1] & ", " & $colors[2] & ", " & $colors[3] & ", " & $colors[4] & "]")
    Send("{ENTER}")

    ; вариант с записью в файл coords.txt
    ; $line = "$colors[5] = [" & $colors[0] & ", " & $colors[1] & ", " & $colors[2] & ", " & $colors[3] & ", " & $colors[4] & "]"
    ; FileWriteLine("coords.txt", $line)
    ; Run('notepad.exe coords.txt')
EndFunc


Func _MousePrimaryDown_Event()
    While Not _IsPressed("01")
        Sleep(11)
    WEnd
    Local $coords = MouseGetPos()
    getObjectPixelsByClickCoords($coords[0], $coords[1])
EndFunc

MsgBox(0, "Скрипт работает!", "Закройте это окно и кликните в нужной точке")
_MousePrimaryDown_Event()


Супер, спасибо огромное! =))))
6
Общие вопросы по AutoIt / Re: Не успевает вывестись текст с помощью функции Send
« Последний ответ от InnI Отправлен Вчера в 22:07:01 »
Код: AutoIt [Выделить]
#include <Misc.au3>

Func getObjectPixelsByClickCoords($x, $y, $deviation = 3)
    Local $colors[5]

    ; Получаем цвет точки, по которой кликнули + цвета точек на углах квадрата с центром в заданной точке
    $colors[0] = PixelGetColor($x, $y)
    $colors[1] = PixelGetColor($x - $deviation, $y - $deviation)
    $colors[2] = PixelGetColor($x + $deviation, $y - $deviation)
    $colors[4] = PixelGetColor($x + $deviation, $y + $deviation)
    $colors[3] = PixelGetColor($x - $deviation, $y + $deviation)

    Run('notepad.exe')
    WinWaitActive("Безымянный — Блокнот")
    Send("$colors[5] = [" & $colors[0] & ", " & $colors[1] & ", " & $colors[2] & ", " & $colors[3] & ", " & $colors[4] & "]")
    Send("{ENTER}")

    ; вариант с записью в файл coords.txt
    ; $line = "$colors[5] = [" & $colors[0] & ", " & $colors[1] & ", " & $colors[2] & ", " & $colors[3] & ", " & $colors[4] & "]"
    ; FileWriteLine("coords.txt", $line)
    ; Run('notepad.exe coords.txt')
EndFunc


Func _MousePrimaryDown_Event()
    While Not _IsPressed("01")
        Sleep(11)
    WEnd
    Local $coords = MouseGetPos()
    getObjectPixelsByClickCoords($coords[0], $coords[1])
EndFunc

MsgBox(0, "Скрипт работает!", "Закройте это окно и кликните в нужной точке")
_MousePrimaryDown_Event()

7
Общие вопросы по AutoIt / Не успевает вывестись текст с помощью функции Send
« Последний ответ от Andeangl Отправлен Вчера в 20:59:25 »
Здравствуйте!

Пытаюсь сделать скрипт, который бы заменил библиотеку ImageSearch, с поиском по 5 точкам (по углам квадрата + по центру).

Сделал функцию, которая бы при клике по точке на экране создаёт массив цветов и выводит его в блокнот.

Но как-то очень странно работает вывод, прерываясь на 3-4 цвете.

Код: AutoIt [Выделить]
#include <./MouseOnEvent.au3>

Func getObjectPixelsByClickCoords($x, $y, $deviation = 3)
    Local $colors[5]

    ; Получаем цвет точки, по которой кликнули + цвета точек на углах квадрата с центром в заданной точке
    $colors[0] = PixelGetColor($x, $y)
    $colors[1] = PixelGetColor($x - $deviation, $y - $deviation)
    $colors[2] = PixelGetColor($x + $deviation, $y - $deviation)
    $colors[4] = PixelGetColor($x + $deviation, $y + $deviation)
    $colors[3] = PixelGetColor($x - $deviation, $y + $deviation)

    Run('notepad.exe')
    WinWaitActive("Безымянный — Блокнот")

    Send("$arr_colors[5] = [" & $colors[0] & ", " & $colors[1] & ", " & $colors[2] & ", " & $colors[3] & ", " & $colors[4] & "]")

    Send("{ENTER}")
EndFunc


Func _MousePrimaryDown_Event($event)


    If $event Then
        Local $coords = MouseGetPos()

        getObjectPixelsByClickCoords($coords[0], $coords[1])
        Sleep(3000)
    Else
        Sleep(3000)
    EndIf
EndFunc

_MouseSetOnEvent($MOUSE_PRIMARYDOWN_EVENT, "_MousePrimaryDown_Event")
MsgBox(0, "Скрипт работает!", "Для получения массива цветов, необходимо в течении 10 секунд щёлкнуть по точке на экране!", 10)
 


Подскажите, пожалуйста, как изменить скрипт, чтобы массив выводился корректно. Кроме того, пытался делать задержки, чтобы скрипт не завершал работу, пока не будет нажатия, но как-то у меня с этим не задалось.
8
Доброго времени суток.
Помогите решить проблему со скриптом.
Скрипт этот щелкает по определенному месту в окне, после анализа скриншота.
(нажмите для показа/скрытия)

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

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

1.rar
9
Общие вопросы по AutoIt / Re: Как вставить путь и выделить все файлы в папке?
« Последний ответ от art22 Отправлен Вчера в 19:51:07 »

тоже не помогает

 ControlSend
10
InnI
все заработало.
Спасибо.
Страницы: [1] 2 3 ... 10