wav en dll? vengo cargado!

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
alexisvz
Mensajes: 2
Registrado: 29 Sep 2018, 02:08

wav en dll? vengo cargado!

Mensaje por alexisvz »

hola compañeros, por aqu´´i estoy devuelta.

otra vez yo con esto de reproducir wav en dll.
se que estoy bastante pesado, pero es que fue algo que se me ocurrio y lo quiero lograr.

hoy he venido con un pequeño c´´odigo, que extrage de la web, con el cual he experimentado un poco, he cambiado mucho pero no he llegado a mi proposito.

por aqu´´i les adjunto el au3 con el c´´odigo, y el archivo dll con el que quiero hacer la prueba.

de todos modos, les copio todo lo que tengo, asi se las hago mas corta.
#include <WinAPIRes.au3>
#include <APIResConstants.au3>
#include <WinAPIMisc.au3>
#include <APIMiscConstants.au3>
#include <GUIConstantsEx.au3>
#include <Memory.au3>
#include <StaticConstants.au3>
#include <MsgBoxConstants.au3>

Global $sJpg=@TempDir&'\~Tech.jpg'

; Load Resources.dll to memory
Local $hInstance= _WinAPI_LoadLibraryEx(@ScriptDir&'\Extras\Resources.dll', $LOAD_LIBRARY_AS_DATAFILE)
If Not $hInstance Then
MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Error', @ScriptDir&'\Extras\Resources.dll not found.')
Exit
EndIf

; Load JPEG resource from Resources.dll library
Local $hResource= _WinAPI_FindResource($hInstance, 'JPEG', 1)
Local $iSize= _WinAPI_SizeOfResource($hInstance, $hResource)
local $hData= _WinAPI_LoadResource($hInstance, $hResource)
local $pData= _WinAPI_LockResource($hData)
; Save resource to .jpg file
local $hFile=FileOpen($sJpg, 2+16)
local $tData=DllStructCreate('byte['&$iSize&']', $pData)
FileWrite($hFile, DllStructGetData($tData, 1))
FileClose($hFile)

; Load FONT resource from Resources.dll library
$hResource= _WinAPI_FindResource($hInstance, $RT_FONT, 'TECHNOVIA_CAPS')
$iSize= _WinAPI_SizeOfResource($hInstance, $hResource)
$hData= _WinAPI_LoadResource($hInstance, $hResource)
$pData= _WinAPI_LockResource($hData)
; Add font from a memory to the system
local $hFont= _WinAPI_AddFontMemResourceEx($pData, $iSize)

; Load SOUND resource from Resources.dll library
$hResource= _WinAPI_FindResource($hInstance, 'sonido', 1)
$iSize= _WinAPI_SizeOfResource($hInstance, $hResource)
$hData= _WinAPI_LoadResource($hInstance, $hResource)
$pData= _WinAPI_LockResource($hData)

; Copy WAV to memory for use later
local $hWave= _MemGlobalAlloc($iSize, $GMEM_MOVEABLE)
local $pWave= _MemGlobalLock($hWave)
_MemMoveMemory($pData, $pWave, $iSize)
; _MemGlobalUnlock($hWave)

; Load STRING resource from Resources.dll library
local $sText= _WinAPI_LoadString($hInstance, 1)

; Unload Resources.dll from memory
_WinAPI_FreeLibrary($hInstance)

; Create GUI
GUICreate('Test '&StringReplace(@ScriptName, '.au3', '()'), 350, 350)
GUICtrlCreatePic($sJpg, 0, 0, 350, 350)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateLabel($sText, 10, 18, 330, 36, $SS_CENTER)
GUICtrlSetFont(-1, 30, -1, -1, 'Technovia Caps')
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1, 0xF06000)
local $Button=GUICtrlCreateButton('Play Sound', 125, 316, 100, 23)
GUICtrlSetOnEvent($button, "sonido")
GUISetState(@SW_SHOW)

While 1
WEnd


Func sonido()



_WinAPI_PlaySound($pWave, BitOR($SND_ASYNC, $SND_MEMORY, $SND_NOWAIT))

EndFunc

; Free resources
_WinAPI_RemoveFontMemResourceEx($hFont)
FileDelete($sJpg)
por lo que puedo entender, este codigo extrae un jpeg, una fuente y un sonido del dll, y a mi me interesa solo el wav, pero como no tengo del todo claro que hace cada cosa, no se que parte del codigo no va.

podrian ayudarme a sacar esas partes que no van, para entender mejor como funciona?

por que con esto que tengo, lo ejecuto, pero no hace nada, yo no se si es el codigo, o es el dll, que yo mismo le cargue un wav adentro y la direccion del wav esta mal en el au3, y ya no se que pensar.

bueno, talvez con esto alguno me pueda ayudar,
esperare con entuciasmo sus respuestas,
un saludo y suerte para todos.
Adjuntos
bat.zip
au3 y dll con el wav adentro.
(135.69 KiB) Descargado 201 veces
Responder