1 (изменено: belyankin12, 2016-12-28 21:19:45)

Тема: AHK: Назначение иконки компилированного скрипта по умолчанию

Здравствуйте. До определенного времени у меня был один скрипт, который я распространял в компилированном виде. И когда он был единственным, у меня не было проблем с иконкой: автоматически ставилась одна и та же. Сейчас у меня скрипта два и у каждого своя иконка. Менять каждый раз через компилер иконку лень, есть ли возможность в самом скрипте прописать параметры компиляции и путь к его иконке?

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

2 (изменено: svoboden, 2016-12-28 11:42:33)

Re: AHK: Назначение иконки компилированного скрипта по умолчанию

Это через реестр надо, тут написано как, в самом скрипте можно поставить иконку, в трее которая.

Menu, Tray, Icon, Shell32.dll, 48, 1

3 (изменено: svoboden, 2017-06-02 05:34:33)

Re: AHK: Назначение иконки компилированного скрипта по умолчанию

Если что непонятно, вот твик реестра:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Compile]
@="Компи&лировать"

[HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Compile\Command]
@="\"C:\\Program Files\\AutoHotkey\\Compiler\\Ahk2Exe.exe\" /in \"%l\" /icon \"C:\\Program Files\\AutoHotkey\\Icons\\NoImage.ico\""

В "C:\\Program Files\\AutoHotkey\\Icons\\NoImage.ico\" - указываешь свой путь к значку в формате "ico", а в "C:\\Program Files\\AutoHotkey\\Compiler\\Ahk2Exe.exe" - указываешь полный путь к компилятору. Потом в контекстном меню нужного скрипта, нажимаешь, "компилировать".

4

Re: AHK: Назначение иконки компилированного скрипта по умолчанию

В оригинале справки есть описание параметров командной строки.

Ahk2Exe.exe /in MyScript.ahk [/out MyScript.exe] [/icon MyIcon.ico] [/bin AutoHotkeySC.bin] [/mpress 0or1]

5

Re: AHK: Назначение иконки компилированного скрипта по умолчанию

Почти тоже что у ypppu, в виде функции:

Ahk2Exe := "C:\AutoHotkey\Compiler\Ahk2Exe.exe" ; путь к Ahk2Exe
InputName := A_ScriptFullPath ; путь к скрипту
OutputName := A_TickCount ; путь и название для EXE (можно не указывать)
IcoOnExe := "C:\MyIco.ico" ; путь к файлу иконки (можно не указывать)
UseMpress := "1" ; Использовать ли Mpress (можно не указывать)

RunWait, % Ahk2Exe(Ahk2Exe, InputName, OutputName, IcoOnExe, UseMpress)

Ahk2Exe(Ahk2Exe, InputName, OutputName:="", IcoOnExe:="", UseMpress:="") {
ComandLine := Ahk2Exe " /in """ InputName """"
If OutputName
ComandLine .= " /out """ OutputName , ComandLine .= !InStr(OutputName,.exe) ? ".exe""" : """"
If FileExist(IcoOnExe)
ComandLine .= " /icon """ IcoOnExe """"
If UseMpress = 1
ComandLine .= " /mpress ""1"""
Return ComandLine
}

6

Re: AHK: Назначение иконки компилированного скрипта по умолчанию

Nikva, вот, то что мне нужно. Но, как я понял, для этого нужно создавать отдельный скрипт и указывать в нем каждый раз пути. А можно что-то такое прописать внутри скрипта, который хочу компилировать и компилировать соответственно через меню - Compile script?

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

7

Re: AHK: Назначение иконки компилированного скрипта по умолчанию

ypppu, возможно ли эти параметры прописать для нескольких отдельных скриптов (с разными путями к их .ahk и к их .ico). И сохранить? Чтобы потом в результате я через меню - compile script компилировал и скрипту назначалась именно та иконка, которая прописана в конфиге именно для этого скрипта.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

8

Re: AHK: Назначение иконки компилированного скрипта по умолчанию

Есть ещё один вариант, возможно куда проще: компилировать скрипт через меню - compile script, а компилер искал .ico в корневой папке исходного .ahk. Может можно так сделать? Это наверно даже лучше будет.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

9

Re: AHK: Назначение иконки компилированного скрипта по умолчанию

belyankin12 пишет:

ypppu, возможно ли эти параметры прописать для нескольких отдельных скриптов (с разными путями к их .ahk и к их .ico). И сохранить?

Естественно, можно, для этого я и дал параметры командной строки. Создавайте для каждого скрипта файл BAT или ярлык LNK, в котором будет указана нужная иконка.

Ahk2Exe не умеет из скрипта узнавать какая нужна иконка.

10 (изменено: Malcev, 2016-12-28 19:12:48)

Re: AHK: Назначение иконки компилированного скрипта по умолчанию

Есть ещё один вариант, возможно куда проще: компилировать скрипт через меню - compile script, а компилер искал .ico в корневой папке исходного .ahk. Может можно так сделать? Это наверно даже лучше будет.

belyankin12, немного модернезируете 3 пост и компайлер будет брать иконку из той же папки, где лежит ваш скрипт.
Тут:

HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Compile\Command

Меняем:

"C:\Program Files\AutoHotkey\Compiler\Ahk2Exe.exe" /in "%l"

на:

"C:\Program Files\AutoHotkey\Compiler\Ahk2Exe.exe" /in "%l" /icon "%w\Your_Ico.ico"

11 (изменено: svoboden, 2017-06-02 05:32:38)

Re: AHK: Назначение иконки компилированного скрипта по умолчанию

Это да. И еще строку: "C:\Program Files\AutoHotkey\Compiler\Ahk2Exe.exe" /in "%l" /icon "%w\NoImage.ico". Надо вручную в реестр вводить и имя у всех "ico", должно быть одинаковое, в примере - это "NoImage".

12

Re: AHK: Назначение иконки компилированного скрипта по умолчанию

Я бы создал тут тему:
http://forum.script-coding.com/viewforum.php?id=8

13

Re: AHK: Назначение иконки компилированного скрипта по умолчанию

Отлично, Malcev, вы предоставили идеальный мне вариант. Правда как только я прочитал код, у меня возник один вопрос, на который в следующем после ответил, svoboden. Вам по плюсику в рейтинг, проблема решена, всем спасибо!

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

14

Re: AHK: Назначение иконки компилированного скрипта по умолчанию

svoboden, можете не создавать. Проблема известна и будет решена.

15 (изменено: svoboden, 2016-12-28 22:32:56)

Re: AHK: Назначение иконки компилированного скрипта по умолчанию

Да ни то чтобы проблема, я за рейтингом не гонюсь, я ради правильных ответов тут, но все равно спасибо за понимание.

16

Re: AHK: Назначение иконки компилированного скрипта по умолчанию

belyankin12 пишет:

Но, как я понял, для этого нужно создавать отдельный скрипт и указывать в нем каждый раз пути. А можно что-то такое прописать внутри скрипта, который хочу компилировать и компилировать соответственно через меню - Compile script?

Можно в начале нужного скрипта это все прописать, с условием, что-бы срабатывало только если не скомпилирован:

If !A_IsCompiled {
RunWait, % "C:\AutoHotkey\Compiler\Ahk2Exe.exe /in " """" A_ScriptFullPath """ /out """ A_TickCount ".exe"" /icon ""C:\MyIco.ico"" /mpress ""1"""
ExitApp
}

Тоже, что и в моем 5 посте только сокращенно.
В итоге скрипт при запуске .ahk будет себя компилировать и выходить.
А .exe будет выполняться как обычно.