Тема: AHK: Добавление ресурсов директивой компилятора
Добрый день.
Правильно ли я понимаю, что ресурсы добавляются в исполняемый файл чтобы спрятать их от общего доступа? Т.е. вместо .exe файла и еще "какой-то" папки, будет только один .exe. Если это так, то ресурсы нельзя будет достать через "Resource Hacker" после какого-нибудь MPress?
Попробовал добавить dll файл в .exe. Пишет ошибку к пути .dll. Нашел эту тему, там похожее, но я не понял. А как правильно указать путь?
;@Ahk2Exe-AddResource 64.dll
;@Ahk2Exe-AddResource 32.dll
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
LoadDll()
{
dllFile := (A_PtrSize=8) ? "res://test_comp.exe/10/64.dll" : "res://test_comp.exe/10/32.dll"
if !this.hModule := DllCall("LoadLibrary", "Str", dllFile, "Ptr")
{
if !FileExist(dllFile)
{
OnException("Ошибка с библиотекой: 1")
Exit
}
OnException("Ошибка с соединением: 2")
Exit
}
this.dllFile := dllFile
}
return
F12::ExitApp
Аналогичная ситуация с модулем OCR. Не знаю только, возможно ли всё это включить в .exe.
Включил .exe в ресурсы, но как быть с файлами которые идут вместе с exe (на картинке файлы в папке leptonica_util)? leptonica_util.exe использует же их.
А так же как указать путь к файлам в папке, а не к самим файлам? tessdata_best и tessdata_fast - выбирает нужный языковой файл в папке, в зависимости от того, какой язык выбирается.
;@Ahk2Exe-AddResource bin\leptonica_util\leptonica_util.exe
;@Ahk2Exe-AddResource bin\tesseract\tesseract.exe
static leptonica := "res://test.exe/10/leptonica_util.exe"
static tesseract := "res://test.exe/10/tesseract.exe"
static tessdata_best := A_ScriptDir "\bin\tesseract\tessdata_best"
static tessdata_fast := A_ScriptDir "\bin\tesseract\tessdata_fast"
convert(in:="", out:="", fast:=1){
in := (in) ? in : this.fileProcessedImage
out := (out) ? out : this.fileConvertedText
fast := (fast) ? this.tessdata_fast : this.tessdata_best
static q := Chr(0x22)
_cmd .= q this.tesseract q " --tessdata-dir " q fast q " " q in q " " q SubStr(out, 1, -4) q
_cmd .= (this.language) ? " -l " q this.language q : ""
_cmd := ComSpec " /C " q _cmd q
RunWait % _cmd,, Hide
Вдруг кто сталкивался с подобным, спасибо.