J'ai compilé un fichier res qui contient des fichiers gif utiles a mon
appli.
Je sais extraire les fichiers car je connais leur identifiant.
Ce que j'aimerais faire pour plus de souplesse, c'est de pouvoir
lister le contenu d'un fichier ressource afin de pouvoir tout
extraire dans une boucle.
J'ai compilé un fichier res qui contient des fichiers gif utiles a mon
appli.
Je sais extraire les fichiers car je connais leur identifiant.
Ce que j'aimerais faire pour plus de souplesse, c'est de pouvoir
lister le contenu d'un fichier ressource afin de pouvoir tout
extraire dans une boucle.
J'ai compilé un fichier res qui contient des fichiers gif utiles a mon
appli.
Je sais extraire les fichiers car je connais leur identifiant.
Ce que j'aimerais faire pour plus de souplesse, c'est de pouvoir
lister le contenu d'un fichier ressource afin de pouvoir tout
extraire dans une boucle.
Bonjour,
Merci, ca a l'air d'etre ce dont j'ai besoin, mais je crois qu'il
manque une déclaration :
modPEStructs n'est pas connu.
Public Function EnumResTypeProc(ByVal hModule As Long, ByVal lpszType
As Long, ByVal lParam As Long) As Long
Form1.List1.AddItem lpszType & " " &
modPEStructs.RTToString(lpszType)
EnumResourceNames hModule, lpszType, AddressOf EnumResNameProc, 0
EnumResTypeProc = 1
End Function
Bonjour,
Merci, ca a l'air d'etre ce dont j'ai besoin, mais je crois qu'il
manque une déclaration :
modPEStructs n'est pas connu.
Public Function EnumResTypeProc(ByVal hModule As Long, ByVal lpszType
As Long, ByVal lParam As Long) As Long
Form1.List1.AddItem lpszType & " " &
modPEStructs.RTToString(lpszType)
EnumResourceNames hModule, lpszType, AddressOf EnumResNameProc, 0
EnumResTypeProc = 1
End Function
Bonjour,
Merci, ca a l'air d'etre ce dont j'ai besoin, mais je crois qu'il
manque une déclaration :
modPEStructs n'est pas connu.
Public Function EnumResTypeProc(ByVal hModule As Long, ByVal lpszType
As Long, ByVal lParam As Long) As Long
Form1.List1.AddItem lpszType & " " &
modPEStructs.RTToString(lpszType)
EnumResourceNames hModule, lpszType, AddressOf EnumResNameProc, 0
EnumResTypeProc = 1
End Function
Hello,
Tu peux extraire les ressource à partir du fichier compilé par APIs:
'Sur une Form, Form1, avec un listbox, list1
'Drag & dropper un exe
Option Explicit
Private Declare Function LoadLibrary _
Lib "kernel32" _
Alias "LoadLibraryA" _
( _
ByVal lpLibFileName As String _
) _
As Long
Private Declare Function FreeLibrary _
Lib "kernel32" _
( _
ByVal hLibModule As Long _
) _
As Long
Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As
Integer, Shift As Integer, X As Single, Y As Single)
List1.Clear
If Data.GetFormat(vbCFFiles) Then
Dim hMod As Long
hMod = LoadLibrary(Data.Files(1))
EnumResourceTypes hMod, AddressOf EnumResTypeProc, 0
FreeLibrary hMod
End If
End Sub
'Dans un module standard
Option Explicit
Public Declare Function EnumResourceTypes _
Lib "kernel32" _
Alias "EnumResourceTypesA" _
( _
ByVal hModule As Long, _
ByVal lpEnumFunc As Long, _
ByVal lParam As Long _
) _
As Long
Public Declare Function EnumResourceNames _
Lib "kernel32" _
Alias "EnumResourceNamesA" _
( _
ByVal hModule As Long, _
ByVal lpType As Long, _
ByVal lpEnumFunc As Long, _
ByVal lParam As Long _
) _
As Long
Public Declare Function EnumResourceLanguages _
Lib "kernel32" _
Alias "EnumResourceLanguagesA" _
( _
ByVal hModule As Long, _
ByVal lpType As Long, _
ByVal lpName As Long, _
ByVal lpEnumFunc As Long, _
ByVal lParam As Long _
) _
As Long
Private Types() As Long
Public Function EnumResTypeProc(ByVal hModule As Long, ByVal lpszType As
Long, ByVal lParam As Long) As Long
Form1.List1.AddItem lpszType & " " & modPEStructs.RTToString(lpszType)
EnumResourceNames hModule, lpszType, AddressOf EnumResNameProc, 0
EnumResTypeProc = 1
End Function
Public Function EnumResNameProc(ByVal hModule As Long, ByVal lpszType As
Long, ByVal lpszName As Long, ByVal lParam As Long) As Long
Form1.List1.AddItem " " & lpszName
EnumResourceLanguages hModule, lpszType, lpszName, AddressOf
EnumResLangProc, 0
EnumResNameProc = 1
End Function
Public Function EnumResLangProc(ByVal hModule As Long, ByVal lpszType As
Long, ByVal lpszName As Long, ByVal wIDLanguage As Integer, ByVal lParam
Long) As Long
Form1.List1.AddItem " " & wIDLanguage
End Function
Ceci liste *toutes* les ressources contenues. Ici, comme tu connais le
de la ressources, tu pourrais directement appeler
EnumResourceNames hModule, lpszType, AddressOf EnumResNameProc, 0
Note que lpType et lpName peuvent être déclarée comme Byval As String, en
fonction de ce dont tu as besoin.
Pour les fichiers ressources c'est un peu plus compliqué, mais normalement
le .res n'est pas redistribué avec l'application!
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
"houbahop2003" a écrit dans le message de
news:ch82jg$ohs$
> J'ai compilé un fichier res qui contient des fichiers gif utiles a mon
> appli.
> Je sais extraire les fichiers car je connais leur identifiant.
>
> Ce que j'aimerais faire pour plus de souplesse, c'est de pouvoir
> lister le contenu d'un fichier ressource afin de pouvoir tout
> extraire dans une boucle.
Hello,
Tu peux extraire les ressource à partir du fichier compilé par APIs:
'Sur une Form, Form1, avec un listbox, list1
'Drag & dropper un exe
Option Explicit
Private Declare Function LoadLibrary _
Lib "kernel32" _
Alias "LoadLibraryA" _
( _
ByVal lpLibFileName As String _
) _
As Long
Private Declare Function FreeLibrary _
Lib "kernel32" _
( _
ByVal hLibModule As Long _
) _
As Long
Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As
Integer, Shift As Integer, X As Single, Y As Single)
List1.Clear
If Data.GetFormat(vbCFFiles) Then
Dim hMod As Long
hMod = LoadLibrary(Data.Files(1))
EnumResourceTypes hMod, AddressOf EnumResTypeProc, 0
FreeLibrary hMod
End If
End Sub
'Dans un module standard
Option Explicit
Public Declare Function EnumResourceTypes _
Lib "kernel32" _
Alias "EnumResourceTypesA" _
( _
ByVal hModule As Long, _
ByVal lpEnumFunc As Long, _
ByVal lParam As Long _
) _
As Long
Public Declare Function EnumResourceNames _
Lib "kernel32" _
Alias "EnumResourceNamesA" _
( _
ByVal hModule As Long, _
ByVal lpType As Long, _
ByVal lpEnumFunc As Long, _
ByVal lParam As Long _
) _
As Long
Public Declare Function EnumResourceLanguages _
Lib "kernel32" _
Alias "EnumResourceLanguagesA" _
( _
ByVal hModule As Long, _
ByVal lpType As Long, _
ByVal lpName As Long, _
ByVal lpEnumFunc As Long, _
ByVal lParam As Long _
) _
As Long
Private Types() As Long
Public Function EnumResTypeProc(ByVal hModule As Long, ByVal lpszType As
Long, ByVal lParam As Long) As Long
Form1.List1.AddItem lpszType & " " & modPEStructs.RTToString(lpszType)
EnumResourceNames hModule, lpszType, AddressOf EnumResNameProc, 0
EnumResTypeProc = 1
End Function
Public Function EnumResNameProc(ByVal hModule As Long, ByVal lpszType As
Long, ByVal lpszName As Long, ByVal lParam As Long) As Long
Form1.List1.AddItem " " & lpszName
EnumResourceLanguages hModule, lpszType, lpszName, AddressOf
EnumResLangProc, 0
EnumResNameProc = 1
End Function
Public Function EnumResLangProc(ByVal hModule As Long, ByVal lpszType As
Long, ByVal lpszName As Long, ByVal wIDLanguage As Integer, ByVal lParam
Long) As Long
Form1.List1.AddItem " " & wIDLanguage
End Function
Ceci liste *toutes* les ressources contenues. Ici, comme tu connais le
de la ressources, tu pourrais directement appeler
EnumResourceNames hModule, lpszType, AddressOf EnumResNameProc, 0
Note que lpType et lpName peuvent être déclarée comme Byval As String, en
fonction de ce dont tu as besoin.
Pour les fichiers ressources c'est un peu plus compliqué, mais normalement
le .res n'est pas redistribué avec l'application!
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
"houbahop2003" <houbahop2003@wanadoo.fr> a écrit dans le message de
news:ch82jg$ohs$1@news-reader2.wanadoo.fr
> J'ai compilé un fichier res qui contient des fichiers gif utiles a mon
> appli.
> Je sais extraire les fichiers car je connais leur identifiant.
>
> Ce que j'aimerais faire pour plus de souplesse, c'est de pouvoir
> lister le contenu d'un fichier ressource afin de pouvoir tout
> extraire dans une boucle.
Hello,
Tu peux extraire les ressource à partir du fichier compilé par APIs:
'Sur une Form, Form1, avec un listbox, list1
'Drag & dropper un exe
Option Explicit
Private Declare Function LoadLibrary _
Lib "kernel32" _
Alias "LoadLibraryA" _
( _
ByVal lpLibFileName As String _
) _
As Long
Private Declare Function FreeLibrary _
Lib "kernel32" _
( _
ByVal hLibModule As Long _
) _
As Long
Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As
Integer, Shift As Integer, X As Single, Y As Single)
List1.Clear
If Data.GetFormat(vbCFFiles) Then
Dim hMod As Long
hMod = LoadLibrary(Data.Files(1))
EnumResourceTypes hMod, AddressOf EnumResTypeProc, 0
FreeLibrary hMod
End If
End Sub
'Dans un module standard
Option Explicit
Public Declare Function EnumResourceTypes _
Lib "kernel32" _
Alias "EnumResourceTypesA" _
( _
ByVal hModule As Long, _
ByVal lpEnumFunc As Long, _
ByVal lParam As Long _
) _
As Long
Public Declare Function EnumResourceNames _
Lib "kernel32" _
Alias "EnumResourceNamesA" _
( _
ByVal hModule As Long, _
ByVal lpType As Long, _
ByVal lpEnumFunc As Long, _
ByVal lParam As Long _
) _
As Long
Public Declare Function EnumResourceLanguages _
Lib "kernel32" _
Alias "EnumResourceLanguagesA" _
( _
ByVal hModule As Long, _
ByVal lpType As Long, _
ByVal lpName As Long, _
ByVal lpEnumFunc As Long, _
ByVal lParam As Long _
) _
As Long
Private Types() As Long
Public Function EnumResTypeProc(ByVal hModule As Long, ByVal lpszType As
Long, ByVal lParam As Long) As Long
Form1.List1.AddItem lpszType & " " & modPEStructs.RTToString(lpszType)
EnumResourceNames hModule, lpszType, AddressOf EnumResNameProc, 0
EnumResTypeProc = 1
End Function
Public Function EnumResNameProc(ByVal hModule As Long, ByVal lpszType As
Long, ByVal lpszName As Long, ByVal lParam As Long) As Long
Form1.List1.AddItem " " & lpszName
EnumResourceLanguages hModule, lpszType, lpszName, AddressOf
EnumResLangProc, 0
EnumResNameProc = 1
End Function
Public Function EnumResLangProc(ByVal hModule As Long, ByVal lpszType As
Long, ByVal lpszName As Long, ByVal wIDLanguage As Integer, ByVal lParam
Long) As Long
Form1.List1.AddItem " " & wIDLanguage
End Function
Ceci liste *toutes* les ressources contenues. Ici, comme tu connais le
de la ressources, tu pourrais directement appeler
EnumResourceNames hModule, lpszType, AddressOf EnumResNameProc, 0
Note que lpType et lpName peuvent être déclarée comme Byval As String, en
fonction de ce dont tu as besoin.
Pour les fichiers ressources c'est un peu plus compliqué, mais normalement
le .res n'est pas redistribué avec l'application!
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
"houbahop2003" a écrit dans le message de
news:ch82jg$ohs$
> J'ai compilé un fichier res qui contient des fichiers gif utiles a mon
> appli.
> Je sais extraire les fichiers car je connais leur identifiant.
>
> Ce que j'aimerais faire pour plus de souplesse, c'est de pouvoir
> lister le contenu d'un fichier ressource afin de pouvoir tout
> extraire dans une boucle.