elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [SOLUCIONADO] Extraer sonidos de una DLL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO] Extraer sonidos de una DLL  (Leído 3,380 veces)
aaronduran2


Desconectado Desconectado

Mensajes: 790



Ver Perfil WWW
[SOLUCIONADO] Extraer sonidos de una DLL
« en: 15 Agosto 2008, 22:56 pm »

Hola. Quisiera saber como extraer sonidos de una DLL. Tengo un código que permite extraer imágenes, pero lo que necesito es hacerlo con sonidos.

Código
  1. Type GUID
  2.     Data1 As Long
  3.     Data2 As Integer
  4.     Data3 As Integer
  5.     Data4(7) As Byte
  6. End Type
  7.  
  8. Type PicBmp
  9.     Size As Long
  10.     Type As Long
  11.     hBmp As Long
  12.     hPal As Long
  13.     Reserved As Long
  14. End Type
  15.  
  16.  
  17. Declare Function OleCreatePictureIndirect Lib "olepro32.dll" (PicDesc As PicBmp, RefIID As GUID, ByVal fPictureOwnHandle As Long, _
  18. IPic As IPicture) As Long
  19. Declare Function LoadBitmap Lib "user32" Alias "LoadBitmapA" (ByVal hInstance As Long, ByVal lpBitmapID As Long) As Long
  20. Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
  21. Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
  22. Declare Function FreeLibrary Lib "kernel32" _
  23.               (ByVal hLibModule As Long) As Long
  24. '#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
  25. '    //CargarImagenDLL//
  26. '#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
  27. '   Cargar una imagen de una DLL.
  28. '#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
  29. Public Function CargarImagenDLL(sDLL As String, ByVal lID As Long) As Picture
  30. Dim hInst As Long
  31. Dim hBmp  As Long
  32. Dim Pic As PicBmp
  33.  
  34. Dim IPic As IPicture
  35. Dim IID_IDispatch As GUID
  36. Dim lRC As Long
  37.  
  38.  
  39. hInst = LoadLibrary(sDLL)
  40. If hInst <> 0 Then
  41.    hBmp = LoadBitmap(hInst, lID)
  42.    If hBmp <> 0 Then
  43.        IID_IDispatch.Data1 = &H20400
  44.        IID_IDispatch.Data4(0) = &HC0
  45.        IID_IDispatch.Data4(7) = &H46
  46.        Pic.Size = Len(Pic)
  47.        Pic.Type = vbPicTypeBitmap
  48.        Pic.hBmp = hBmp
  49.        Pic.hPal = 0
  50.        lRC = OleCreatePictureIndirect(Pic, IID_IDispatch, 1, IPic)
  51.        If lRC = 0 Then
  52.            Set CargarImagenDLL = IPic
  53.            Set IPic = Nothing
  54.        Else
  55.            Call DeleteObject(hBmp)
  56.        End If
  57.    End If
  58.    FreeLibrary (hInst)
  59.    hInst = 0
  60. End If
  61. End Function
  62.  

Gracias de antemano.


« Última modificación: 16 Agosto 2008, 01:07 am por aaronduran2 » En línea

aaronduran2


Desconectado Desconectado

Mensajes: 790



Ver Perfil WWW
Re: Extraer sonidos de una DLL
« Respuesta #1 en: 16 Agosto 2008, 00:49 am »

Bueno, intentando conseguir algún resultado, hice esto:

Código
  1. Private Const SND_SYNC = &H0              '  play synchronously (default)
  2. Private Const SND_ASYNC = &H1             '  play asynchronously
  3. Private Const SND_NODEFAULT = &H2         '  silence not default, if sound not found
  4. Private Const SND_MEMORY = &H4            '  lpszSoundName points to a memory file
  5. Private Const SND_ALIAS = &H10000         '  name is a WIN.INI [sounds] entry
  6. Private Const SND_FILENAME = &H20000      '  name is a file name
  7. Private Const SND_RESOURCE = &H40004      '  name is a resource name or atom
  8. Private Const SND_ALIAS_ID = &H110000     '  name is a WIN.INI [sounds] entry identifier
  9. Private Const SND_ALIAS_START = 0         '  must be > 4096 to keep strings in same section of resource file
  10. Private Const SND_LOOP = &H8              '  loop the sound until next sndPlaySound
  11. Private Const SND_NOSTOP = &H10           '  don't stop any currently playing sound
  12. Private Const SND_VALID = &H1F            '  valid flags          / ;Internal /
  13. Private Const SND_NOWAIT = &H2000         '  don't wait if the driver is busy
  14. Private Const SND_VALIDFLAGS = &H17201F   '  Set of valid flag bits.  Anything outside this range will raise an error
  15. Private Const SND_RESERVED = &HFF000000   '  In particular these flags are reserved
  16. Private Const SND_TYPE_MASK = &H170007
  17.  
  18. Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
  19. Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
  20. Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, _
  21. ByVal dwFlags As Long) As Long
  22.  
  23. '#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
  24. '    //CargarSonidoDLL//
  25. '#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
  26. '   Cargar un sonido de una DLL.
  27. '#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
  28. Public Sub CargarSonidoDLL(sDLL As String, ByVal lID As Long)
  29. Const flags = SND_RESOURCE Or SND_ASYNC Or SND_NODEFAULT
  30. Dim hInst As Long
  31. Dim SonidoCargado As Variant
  32. hInst = LoadLibrary(sDLL)
  33. If hInst <> 0 Then
  34.    SonidoCargado = PlaySound(CStr("#" & lID), hInst, flags)
  35. End If
  36. DoEvents
  37. FreeLibrary (hInst)
  38. hInst = 0
  39. End Sub
  40.  
Así que el problema está solucionado.

Saludos.


En línea

user_foro

Desconectado Desconectado

Mensajes: 28



Ver Perfil
Re: [SOLUCIONADO] Extraer sonidos de una DLL
« Respuesta #2 en: 25 Mayo 2022, 07:28 am »

Disculpen mi ignorancia, pero Cómo puedo ejecutar ese código para poder usarlo y poder obtener audios de una dll.

Alguien tendrá el ejecutable...

Agradecería mucho que me ayuden porfa... De verdad!
« Última modificación: 25 Mayo 2022, 07:34 am por user_foro » En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


Ver Perfil
Re: [SOLUCIONADO] Extraer sonidos de una DLL
« Respuesta #3 en: 25 Mayo 2022, 11:39 am »

De entrada este hilo data del 2008... y para colmo pone 'solucionado', con lo cual es más probable que menos gente entre e intente dar una respuesta que ya se supone facilitada.

Para otra abre un nuevo tema y en todo caso proveer un enlace como referencia (por ejemplo a este tema).

Para terminar lo que pides, lo mismo que el propio título de este hilo se presta a interpretación.

En el caso que trata el tema, al parecer la dll es de su propiedad, tiene acceso a ella y conoce su contenido y se supone que puede cambiarlo cuando quiera. Es decir, parece que lo que quería era simplemente utilizar los sonidos que él mismo tendría almacenado (o accediendo, rescatando desde la propia dll) a recursos de sonido.

En tu caso parece que tratas (a interpretación mía), de exportar recursos de sonido que contiene una dll, de la que no tienes nada más que el propio fichero (porque por ejemplo pertenezca a un juego). Esto puede ser algo muy simple, o extremadamente complejo.

...pero si simplemente tratas de ejecutar un sonido que tienes lamacenado como recurso en una dll, o desde un fichero, es básicamente lo mismo que acceder a  cualquier otro recurso de VB6, solo que en tal caso se trataría de un 'custom resource', por lo que hay que tratarlo de forma binaria... típicamente la función API PlaySound, puede recibir incluso los datos del sonido en formato de string, pués al pasar el dato por referencia simplemente está recibiendo el puntero...

Como no tengo nada claro que es con exactitud lo que quieres, aquí lo dejo. Si te expresas con más claridad, se te podrá orientar más acertadamente.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SOLUCIONADO]Extraer archivos dentro de un .jar
Java
cyberserver 6 13,109 Último mensaje 31 Diciembre 2009, 14:13 pm
por Debci
[SOLUCIONADO] Extraer cadena de conexion
Programación Visual Basic
leosanzio 7 6,796 Último mensaje 8 Marzo 2011, 23:28 pm
por raul338
(solucionado)No se me ollen los sonidos y notificaciones messenger plus
Mensajería
Anonymous250 3 4,729 Último mensaje 8 Octubre 2011, 06:28 am
por Anonymous250
extraer sonidos de un archivo .jar
Ingeniería Inversa
daniel7885 2 3,450 Último mensaje 14 Noviembre 2013, 09:32 am
por Mad Antrax
Extraer un dato de un JSON.parse [SOLUCIONADO]
Desarrollo Web
SpeedyFrost 3 2,223 Último mensaje 21 Diciembre 2018, 14:33 pm
por SpeedyFrost
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines