1 (изменено: Raven, 2015-08-17 12:31:20)

Тема: AHK: Не работает скрипт после компиляции в .exe файл

Доброе утро. Возникла проблемма, помогите кто чем может. Есть код:

settimer, A1, 1000

A1:

#IfWinActive WINTITLE1 ;тайтл не важен
WcB("button1", "WINTITLE2")
#IfWinActive WINTITLE2
WcB("button1", "WINTITLE2")

return

WcB(btn,ttl) ; кнопка и тайтл окна
{
    WinWait, %ttl%    ;ожидание открытия окна
    WinActivate, %ttl%    ; активирование окна
    Loop
    {
        ControlSend, %btn%, {space}
        sleep 50*A_index
        IfWinNotExist %ttl%   
            break
    }
}

После компиляции в Ahk2Exe не закрывает окна. В скриптовом варианте все работает.

2

Re: AHK: Не работает скрипт после компиляции в .exe файл

#IfWinActive использовано не к месту, эта директива — модификатор для горячих клавиш. Читайте хэлп. Если хотите помощи, поясните, как именно должен работать скрипт.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Не работает скрипт после компиляции в .exe файл

Прочитал хелп. Дествительно использовал не то что нужно. Код подправил до такого состояния:

settimer, A1, 1000

A1:

IfWinExist WINTITLE1
WcB("button1", "WINTITLE1")

return

WcB(btn,ttl) ; кнопка и тайтл окна
{
    WinWait, %ttl%    ;ожидание открытия окна
    WinActivate, %ttl%    ; активирование окна
    Loop
    {
        ControlSend, %btn%, {space}
        sleep 50*A_index
        IfWinNotExist %ttl%   ; 
            break
    }
}

Теперь в скрипте он проходит 1 цикл и завершается. В скомпилированом .exe так же не закрывает окна.
Суть такова, нужен скрипт который нажимает button1 в окне WINTITLE1 при появлении этого окна. Не важно что за окно. Допустим диалог сохранения окна в блокноте или еще где то. Только WINTITLE1 уникальный.

4

Re: AHK: Не работает скрипт после компиляции в .exe файл

Попробуйте дописать первой строчкой

#Persistent
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Не работает скрипт после компиляции в .exe файл

Помогло - теперь скриптовая версия исполняется сколько нужно и закрывает окно. Перекомпилированая версия ведет себя так же - то есть ничего не делает. Так и не пойму в чем может быть проблемма... Может особые параметры нужны для Ahk2Exe?

6

Re: AHK: Не работает скрипт после компиляции в .exe файл

Raven проверь кодировку исходника и какой bin ты используешь.
1. При исходнике в кодировке UTF-8 надо использовать Unicode 32-bit.bin  или Unicode 64-bit.bin.
2. При исходнике в кодировке ANSI надо использовать ANSI 32-bit.bin.

Первый вариант предпочтительнее и не из-за 64-разрядности и я ещё использую сжатие используя  ПО mpress.exe - это не обязательно.

Остальные ошибки это директивы внедрения файлов и подключение через #Include, но у тебя я не увидел их.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

7

Re: AHK: Не работает скрипт после компиляции в .exe файл

Здесь никакой разницы между скомпилированным и нескомпилированным скриптом не должно быть.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8

Re: AHK: Не работает скрипт после компиляции в .exe файл

Indomito пишет:

2. При исходнике в кодировке ANSI надо использовать ANSI 32-bit.bin.

С чего это вы взяли?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9 (изменено: Indomito, 2015-08-17 17:00:25)

Re: AHK: Не работает скрипт после компиляции в .exe файл

Если я напишу в UTF-8 то с ANSI 32-bit.bin иногда происходят баги, хотя может это было давно и всё поправили, но такое было.
Хотя может и наоборот ANSI с Unicode 32-bit.bin, но у меня это было.

P.S. Спорить не буду, особенно с тобой - ты лучше разбираешься, а я может чего и путаю.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

10

Re: AHK: Не работает скрипт после компиляции в .exe файл

Пользуюсь SciTE4AutoHotkey. Думал он автоматически проставляет нужную кодировку. Взял специально блокнотом выставил кодировку UTF-8 и использовал Unicode 32-bit.bin. Все осталось в том же духе - не работает .exe файл. В процесах и трее висит но не исполняется как нужно.

11

Re: AHK: Не работает скрипт после компиляции в .exe файл

Попробуйте

ControlSend, %btn%, {space}

заменить на

ControlClick, %btn%
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

12 (изменено: Raven, 2015-08-17 17:28:22)

Re: AHK: Не работает скрипт после компиляции в .exe файл

Изменил вообще до такого состояния:


#Persistent
settimer, A1, 1000

A1:

IfWinExist WINTITLE1
ControlClick, OK, WINTITLE1
return

Все равно не работает .exe файл.

P.S. Извините, конечно же #Persistent там есть...

13

Re: AHK: Не работает скрипт после компиляции в .exe файл

Не знаю тогда, у меня всё нормально работает, проверял. Может, какие-то проблемы с компиляцией, обновите AHK.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

14

Re: AHK: Не работает скрипт после компиляции в .exe файл

Изменил вообще до такого состояния:

Опять #Persistent пропущено.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

15 (изменено: Raven, 2015-08-17 17:30:21)

Re: AHK: Не работает скрипт после компиляции в .exe файл

teadrinker пишет:

Опять #Persistent пропущено.

Он там есть, просто я его забыл скопировать сюда в код.

16

Re: AHK: Не работает скрипт после компиляции в .exe файл

Проблемма вроде бы как решилась. Что произошло я так и не разобрался. Перезагрузил комп, обновил AHK, переписал вручную заново скрипт, в блокноте выставил кодировку UTF-8 и все вроде взлетело. Теперь откомпилированый скрипт исполняет все что нужно. Всем спасибо за помощь, тему можно закрывать.

17

Re: AHK: Не работает скрипт после компиляции в .exe файл

Кстати для AHK лучше использовать не NotePad, а NotePad++ он удобнее и можно сессии создавать и кучу всего.
P.S. Поддержка синтаксиса тоже есть.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

18

Re: AHK: Не работает скрипт после компиляции в .exe файл

А кто использует NotePad?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

19

Re: AHK: Не работает скрипт после компиляции в .exe файл

Raven пишет:

... обновил AHK, переписал вручную заново скрипт, в блокноте выставил кодировку...

По привычке слово "блокнот" ассоциировал с NotePad не заметил что указан SciTE4AutoHotkey.
Извиняюсь.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro