1

Тема: AHK: запуск файлов прикрепленных к скомпилированному скрипту

Не знаю на сколько название понятно, но мне нужно следующее:
с помощью Compile_AHK II компилирую скрипт, и в ресурсах добавляю звуковой файл. При запуске скрипта выполняется команда на проигрывание этого звука. Но скомпилированный файл "не понимает", что ему надо проиграть звук именно из своего ресурса. Приходится командой FileInstall извлекать файл в какую либо папку, а только потом проигрывать этот звук.
Возможно ли проиграть звук не извлекая его из .exe?

2

Re: AHK: запуск файлов прикрепленных к скомпилированному скрипту

А как он должен понять? Что Вы для этого делаете?

3

Re: AHK: запуск файлов прикрепленных к скомпилированному скрипту

Скомпилировал скрипт, прикрепив к нему звуковой файл on.wav
Запускаю скрипт следующего содержания, и звук не проигрывается

soundplay, on.wav

Если запускать вот такой скомпилированный скрипт с этим же звуковым файлом внутри, то звук проигрывается

PathToInstall=%a_temp%
FileInstall, on.wav, %PathToInstall%\on.wav, 1

Т.е. сначала требуется выгрузить этот файл в какую-либо папку, а затем проиграть его.
А нельзя сделать так, что бы этот звук можно было проиграть, не извлекая его из .exe?

4

Re: AHK: запуск файлов прикрепленных к скомпилированному скрипту

Ну, понятно. В ресурсах это уже не файл. Вообще, наверно, можно, но уж точно не через SoundPlay, ей же файл на диске нужен. Что-то мне подсказывает, что teadrinker может это раскурочить. Надо его нацелить и озадачить. У меня на машине звуковой карты нет, так что не поэкспериментируешь.

5

Re: AHK: запуск файлов прикрепленных к скомпилированному скрипту

Экспериментировать можно и с изображением.
teadrinker  думаю может всё
Решил обойтись вариантом с "разгрузкой" файла во временную папку.

6

Re: AHK: запуск файлов прикрепленных к скомпилированному скрипту

InFlames пишет:

Возможно ли проиграть звук не извлекая его из .exe?

На AHK — маловероятно, нужных функций для работы с ресурсами нет.

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

7

Re: AHK: запуск файлов прикрепленных к скомпилированному скрипту

Нет, оказывается, всё возможно. Вот здесь примеры распаковки ресурсов. Для wav нужен пример "Referencing a WAVE", вместо числа 666, выделенного красным, нужно поставить 1, если ресурс единственный. Ну и Loop 10 не обязательно:

hModule   := DllCall( "GetModuleHandle", Str, A_ScriptFullPath )
hResource := DllCall("FindResource", UInt,hModule, UInt, 1, UInt,10 )
nSize     := DllCall("SizeofResource", UInt,hModule, UInt, hResource )

hResData  := DllCall("LoadResource", UInt,0, UInt,hResource )
Buffer    := DllCall("LockResource", "UInt", hResData )

DllCall("winmm.dll\sndPlaySoundA", UInt,Buffer, UINT, ( (SND_MEMORY:=0x4) | (SND_NODEFAULT:=0x2)) )

ExitApp

Этот код нужно скомпилировать с помощью Compile_AHK.exe, добавив в качестве ресурса wav-файл.

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