<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Добавление ресурсов директивой компилятора]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=16518&amp;type=atom" />
	<updated>2021-08-05T13:56:34Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=16518</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Добавление ресурсов директивой компилятора]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=149147#p149147" />
			<content type="html"><![CDATA[<p>Переменные при добавлении ресурсов не работают, нужен буквальный путь текстом.<br />Нельзя загрузить dll непосредственно из ресурса, нужно сначала выгрузить в файл, либо использовать довольно сложный и объёмный код для загрузки dll в память.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-08-05T13:56:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=149147#p149147</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Добавление ресурсов директивой компилятора]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=149146#p149146" />
			<content type="html"><![CDATA[<p>Прописал полный путь:<br /></p><div class="codebox"><pre><code>
test := StrReplace(A_ScriptFullPath, &quot;\&quot;, &quot;/&quot;)
dllFile := (A_PtrSize=8) ? &quot;res://&quot; test &quot;/10/64.dll&quot; : &quot;res://&quot; test &quot;/10/32.dll&quot;
</code></pre></div><p>И так тоже:<br /></p><div class="codebox"><pre><code>
dllFile := (A_PtrSize=8) ? A_ScriptFullPath &quot;\64.dll&quot; : A_ScriptFullPath &quot;\32.dll&quot;
</code></pre></div><p>Не сработало.</p><p>Если только 1 версию оставить (64), то ошибок нет при запуске, но вот команды не работают:<br /></p><div class="codebox"><pre><code>
if !this.hModule := DllCall(&quot;LoadLibrary&quot;, &quot;Str&quot;, A_ScriptFullPath, &quot;Ptr&quot;)
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Botsy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41069</uri>
			</author>
			<updated>2021-08-05T13:34:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=149146#p149146</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Добавление ресурсов директивой компилятора]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=149142#p149142" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Botsy пишет:</cite><blockquote><p>чтобы спрятать их от общего доступа?</p></blockquote></div><p>Нет, будут обычными ресурсами, которые видны через ResHacker и аналогичные менеджеры ресурсов.</p><div class="quotebox"><cite>Botsy пишет:</cite><blockquote><p>Пишет ошибку к пути .dll</p></blockquote></div><p>Укажите полный путь.</p><div class="quotebox"><cite>Botsy пишет:</cite><blockquote><p>А так же как указать путь к файлам в папке, а не к самим файлам?</p></blockquote></div><p>Чтобы запихнуть большое количество файлов, создайте zip-архив и включите одним файлом. После распаковки ресурса распакуйте zip (ищите примеры на форуме ahk).</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-08-05T13:02:16Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=149142#p149142</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Добавление ресурсов директивой компилятора]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=149140#p149140" />
			<content type="html"><![CDATA[<p>Добрый день. </p><p>Правильно ли я понимаю, что ресурсы добавляются в исполняемый файл чтобы спрятать их от общего доступа? Т.е. вместо .exe файла и еще &quot;какой-то&quot; папки, будет только один .exe. Если это так, то ресурсы нельзя будет достать через &quot;Resource Hacker&quot; после какого-нибудь MPress? </p><p>Попробовал добавить dll файл в .exe. Пишет ошибку к пути .dll. Нашел <a href="http:////www.autohotkey.com/boards/viewtopic.php?t=90580&amp;p=399933">эту тему</a>, там похожее, но я не понял. А как правильно указать путь?<br /></p><div class="codebox"><pre><code>
;@Ahk2Exe-AddResource 64.dll
;@Ahk2Exe-AddResource 32.dll

SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

LoadDll() 
{
	dllFile := (A_PtrSize=8) ? &quot;res://test_comp.exe/10/64.dll&quot; : &quot;res://test_comp.exe/10/32.dll&quot;
		if !this.hModule := DllCall(&quot;LoadLibrary&quot;, &quot;Str&quot;, dllFile, &quot;Ptr&quot;) 
		{
			if !FileExist(dllFile) 
			{
				OnException(&quot;Ошибка с библиотекой: 1&quot;)
				Exit
			}
			OnException(&quot;Ошибка с соединением: 2&quot;)
			Exit
		}
	this.dllFile := dllFile
}

return

F12::ExitApp
</code></pre></div><p>Аналогичная ситуация с модулем <a href="http:////github.com/iseahound/Vis2">OCR</a>. Не знаю только, возможно ли всё это включить в .exe. <br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p><a href="https://ibb.co/mNQv42b"><span class="postimg"><img src="https://i.ibb.co/tLyZDvQ/ocr.jpg" alt="https://i.ibb.co/tLyZDvQ/ocr.jpg" /></span></a></p><p>Включил .exe в ресурсы, но как быть с файлами которые идут вместе с exe (на картинке файлы в папке leptonica_util)? leptonica_util.exe использует же их.<br />А так же как указать путь к файлам в папке, а не к самим файлам? tessdata_best и tessdata_fast - выбирает нужный языковой файл в папке, в зависимости от того, какой язык выбирается.</p><div class="codebox"><pre><code>
;@Ahk2Exe-AddResource bin\leptonica_util\leptonica_util.exe
;@Ahk2Exe-AddResource bin\tesseract\tesseract.exe

static leptonica := &quot;res://test.exe/10/leptonica_util.exe&quot; 
static tesseract := &quot;res://test.exe/10/tesseract.exe&quot;
static tessdata_best := A_ScriptDir &quot;\bin\tesseract\tessdata_best&quot;
static tessdata_fast := A_ScriptDir &quot;\bin\tesseract\tessdata_fast&quot;

convert(in:=&quot;&quot;, out:=&quot;&quot;, 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 &quot; --tessdata-dir &quot; q fast q &quot; &quot; q in q &quot; &quot; q SubStr(out, 1, -4) q
_cmd .= (this.language) ? &quot; -l &quot; q this.language q : &quot;&quot;
_cmd := ComSpec &quot; /C &quot; q _cmd q
RunWait % _cmd,, Hide
</code></pre></div></div></div><p>Вдруг кто сталкивался с подобным, спасибо.</p>]]></content>
			<author>
				<name><![CDATA[Botsy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41069</uri>
			</author>
			<updated>2021-08-05T12:50:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=149140#p149140</id>
		</entry>
</feed>
