Zugriff auf mit 'FileInstall' eingebundene Skriptressourcen

Hilfreiche Erklärungen und Tipps zum Lernen von Autohotkey

Moderator: jNizM

Peter2
Posts: 325
Joined: 21 Sep 2014, 14:38
Location: CH

Re: Zugriff auf mit 'FileInstall' eingebundene Skriptressourcen

Post by Peter2 » 07 Mar 2016, 16:39

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.
Peter (AHK Beginner) / Win 10 x64, AHK Version v1.1.33
just me
Posts: 9406
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Zugriff auf mit 'FileInstall' eingebundene Skriptressourcen

Post by just me » 08 Mar 2016, 03:17

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)
nscience
Posts: 7
Joined: 07 Jun 2020, 18:29

Re: Zugriff auf mit 'FileInstall' eingebundene Skriptressourcen

Post by nscience » 07 Jun 2020, 18:39

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
just me
Posts: 9406
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Zugriff auf mit 'FileInstall' eingebundene Skriptressourcen

Post by just me » 08 Jun 2020, 04:00

Moin,

hast Du es versucht?
nscience
Posts: 7
Joined: 07 Jun 2020, 18:29

Re: Zugriff auf mit 'FileInstall' eingebundene Skriptressourcen

Post by nscience » 08 Jun 2020, 18:28

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?)
c7aesa7r
Posts: 209
Joined: 02 Jun 2016, 21:09

Re: Zugriff auf mit 'FileInstall' eingebundene Skriptressourcen

Post by c7aesa7r » 25 Jan 2021, 23:57

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 )
Post Reply

Return to “Tutorials”