Тема: AHK: Пакетная компиляция, ошибка c INI или с ICO файлами
Приветствую.
Написал я скрипт, что бы в INI-файле были все параметры необходимые для компиляции.
Вот пример файла - AsteriosGames.ini.
;Определения для компиляции AsteriosGames
[Compile]
keyIN=""C:\AHK\AsteriosGames\AsteriosGames.ahk""
keyOUT=""F:\GameS\LAII HF - Asterios\AsteriosGames.exe""
keyICON=""С:\AHK Compiler\ICO\LA2S2.ico""
keyBIN=""Unicode 64-bit.bin""
keyMPRESS=""1""
И сам скрипт.
;Тут только OK
сMsgBoxInfo_Ok :=0+8192+64 ;only an OK button + Task Modal + Icon Asterisk(info)
сMsgBoxError_Ok :=0+8192+16 ;only an OK button + Task Modal + Icon Hand (stop/error)
FileINI := fnCountArgs()
Secion := "Compile"
IniRead keyIN, %FileINI%, %Secion%, keyIN
if (keyIN="ERROR")
{
MsgBox % сMsgBoxError_Ok, Ошибка в INI - файле
,`n`n Ошибка в секции %Secion% в переменной keyIN`n`n Выход из программы.
,30
Goto lEnd_AHK_Compile
}
IniRead keyOUT, %FileINI%, %Secion%, keyOUT
if (keyOUT="ERROR")
{
MsgBox % сMsgBoxError_Ok, Ошибка в INI - файле
,`n`n Ошибка в секции %Secion% в переменной keyOUT`n`n Выход из программы.
,30
Goto lEnd_AHK_Compile
}
IniRead keyICON, %FileINI%, %Secion%, keyICON
if (keyICON="ERROR")
{
MsgBox % сMsgBoxError_Ok, Ошибка в INI - файле
,`n`n Ошибка в секции %Secion% в переменной keyICON`n`n Выход из программы.
,30
Goto lEnd_AHK_Compile
}
IniRead keyBIN, %FileINI%, %Secion%, keyBIN
if (keyBIN="ERROR")
{
MsgBox % сMsgBoxError_Ok, Ошибка в INI - файле
,`n`n Ошибка в секции %Secion% в переменной keyBIN`n`n Выход из программы.
,30
Goto lEnd_AHK_Compile
}
IniRead keyMPRESS, %FileINI%, %Secion%, keyMPRESS
if (keyMPRESS="ERROR")
{
MsgBox % сMsgBoxError_Ok, Ошибка в INI - файле
,`n`n Ошибка в секции %Secion% в переменной keyMPRESS`n`n Выход из программы.
,30
Goto lEnd_AHK_Compile
}
vTarget := "Ahk2Exe.exe /in " keyIN " /out " keyOUT " /icon " keyICON " /bin " keyBIN " /mpress " keyMPRESS
; Рабочая папка компилятора
vWorkingDir := "C:\Program Files\AutoHotkey\Compiler\"
; Запуск компилятора
Run, %vTarget% , %vWorkingDir%
; Успешная компиляция
MsgBox % сMsgBoxInfo_Ok, Успешная компиляция
,`n`n Компиляции скрипта завершена`n`n DONE! `n`n Выход из программы.
,7
lEnd_AHK_Compile:
ExitApp
fnCountArgs(){
global
If %0% ; Выборка аргументов командной строки = только один аргумет
{
args := []
vCountArgs := 0
Loop %0%
{
args[A_Index] := %A_Index%
vCountArgs++
}
}
vIniFile := args[1]
If (vCountArgs < 1)
{
;Не указан ini-файл, вызываем диалог выбора ini-файла
vPrompt := "Выберите ini-файл для компиляции скрипта"
FileSelectFile, vIniFile, 3, %A_WorkingDir%\INI, %vPrompt%, *.ini
if (ErrorLevel = 1)
{
MsgBox % сMsgBoxError_Ok, Ошибка в INI - файле
,`n`n Не указан ini-файл для компиляции скрипта`n Укажите ini-файл как параметр`n`n Выход из программы.
,30
ExitApp
}
}
Return vIniFile
}
В результате Ahk2Exe.exe ругается, что не может изменить ICO-файл или ICO-файл не верного формата(перевод мой).
P.S. Могу дать скиншот, если нужно.
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019 Click to Download