Page 2 of 2

Re: Zugriff auf mit 'FileInstall' eingebundene Skriptressourcen

Posted: 07 Mar 2016, 16:39
by Peter2
Peter2 wrote:- der ganze Pfad wird als Struktur in die Exe hineinkompiliert -
haichen wrote:...Die eingebundene Datei findet sich dann immer an derselben Stelle in der kompilierten Exe. Das kannst Du mit dem ResHacker überprüfen...
Ich habe nochmals nachgesehen ...
a) Der Pfad wird nicht als "Struktur" eingebaut; diese wurde mir nur im TotalCommander mit dem MultiArc-Plugin so angezeigt. Aber der Pfad ist drinnen.

b) Ja, er liegt in RcData immer an der gleichen Stelle, aber gemäss der Angabe eben mit oder ohne Pfad.

Damit scheint das nicht unmöglich, aber es ist zu beachten.

Re: Zugriff auf mit 'FileInstall' eingebundene Skriptressourcen

Posted: 08 Mar 2016, 03:17
by just me
Der Zugriff gestaltet sich relativ einfach, wenn man sich das o.a. Beispiel von lexikos anschaut. Man braucht dafür nur den im Kommando FileInstall als Parameter Quelle verwendeten Namen, der Ressourcentyp ist immer RCDATA.

(siehe)

Re: Zugriff auf mit 'FileInstall' eingebundene Skriptressourcen

Posted: 07 Jun 2020, 18:39
by nscience
Funtioniert das auch mit Bildern, die Transparency/Alpha Channel haben, zb PNG?
Wenn es auf SKANs Ansatz basiert, könnte es da wohl Probleme geben. Zumindest image2include machte mir Probleme in Zusammenhang mit ImageSearch und transparentem Suchbld iVgl zur Filemethode

Re: Zugriff auf mit 'FileInstall' eingebundene Skriptressourcen

Posted: 08 Jun 2020, 04:00
by just me
Moin,

hast Du es versucht?

Re: Zugriff auf mit 'FileInstall' eingebundene Skriptressourcen

Posted: 08 Jun 2020, 18:28
by nscience
just me wrote:
08 Jun 2020, 04:00
Moin,

hast Du es versucht?
Aktuell noch nicht. Jedoch werde ich es, wenn ich mit dem Testen hier fertig bin. Bastel und teste/vergleiche derzeit noch image2include und der Lösung von The Dude
https://www.autohotkey.com/boards/viewtopic.php?p=301384#p301384
Ich bekomme unterschiedliche outputs bei PNG mit Transparenz. Und beide verhalten sich wiederum mit ImageSearch anders, als wenn ich ImageSerach per Bilddatei laufen lasse.
(was mich zu der Vermutung bringt, dass sich IS selber bei Handles und Transparenz möglicherweise anders verhält?)

Re: Zugriff auf mit 'FileInstall' eingebundene Skriptressourcen

Posted: 25 Jan 2021, 23:57
by c7aesa7r

Code: Select all

tada  := FI_GetResource("sound.wav")
PlaySoundResource(tada)
msgbox, hello
return

PlaySoundResource(SndRes)
 Return DllCall( "winmm.dll\PlaySound" ( A_IsUnicode ? "W" : "A" ), UInt,( A_IsCompiled ? SndRes.ptr : &SndRes ), UInt,0  , UInt, 0x6 ) ; SND_MEMORY := 0x4 | SND_NODEFAULT := 0x2

FI_GetResource(ResName,ResType="10") {
   If !(A_IsCompiled)
      Return False
   If (HRSRC := DllCall("Kernel32.dll\FindResource", "Ptr", 0, "Str", ResName, "Ptr", ResType, "UPtr"))
   && (HRES := DllCall("Kernel32.dll\LoadResource", "Ptr", 0, "Ptr", HRSRC, "UPtr"))
      Return {Ptr: DllCall("Kernel32.dll\LockResource", "Ptr", HRES, "UPtr")
            , Size: DllCall("Kernel32.dll\SizeofResource", "Ptr", 0, "Ptr", HRSRC, "UInt")}
   Return False
}

FileInstall, sound.wav, ""
The message box only appears when the wav files have ended, is possible to the script did not pause while the sound is still playing?

EDIT
Got it, just change the dllcall in the function PlaySoundResource:

Code: Select all

Return DllCall( "winmm.dll\PlaySound" ( A_IsUnicode ? "W" : "A" ), UInt,SndRes.ptr, UInt,0, UInt, 0x7 )