Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

EnumResourceNames

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Nitroxis



Anmeldungsdatum: 27.02.2008
Beiträge: 300
Wohnort: Irgendwo...

BeitragVerfasst am: 24.04.2009, 15:25    Titel: EnumResourceNames Antworten mit Zitat

Hallo.
Ich möchte die Resourcen eines Modules auflisten. Leider funktioniert das irgendwie nicht. Hier der Code:
Code:
#Include Once "windows.bi"

Declare Function EnumProc(ByVal hModule As HMODULE, ByVal lpszType As LPCTSTR, ByVal lpszName As LPTSTR, ByVal lParam As LONG_PTR) As BOOL

Dim ModuleName As String
Dim hModule As HMODULE

Input "Module: ", ModuleName
Print "Loading Module..."

hModule = LoadLibraryEx(ModuleName, 0, LOAD_LIBRARY_AS_DATAFILE)

If hModule = 0 Then
   Print "Can't load Module!"
   GetKey()
   End(1)
Else
   Print "Module loaded!"
   Print "Address: " & Hex(hModule)
   Print "Press any key to enumerate resources..."
   GetKey()
   Print "Enumerating..."
   
   EnumResourceNames(hModule, RT_CURSOR, Cast(Any Ptr, @EnumProc), 0)
   EnumResourceNames(hModule, RT_FONT, Cast(Any Ptr, @EnumProc), 0)
   EnumResourceNames(hModule, RT_BITMAP, Cast(Any Ptr, @EnumProc), 0)
   EnumResourceNames(hModule, RT_ICON, Cast(Any Ptr, @EnumProc), 0)
   EnumResourceNames(hModule, RT_MENU, Cast(Any Ptr, @EnumProc), 0)
   EnumResourceNames(hModule, RT_DIALOG, Cast(Any Ptr, @EnumProc), 0)
   EnumResourceNames(hModule, RT_STRING, Cast(Any Ptr, @EnumProc), 0)
   EnumResourceNames(hModule, RT_FONTDIR, Cast(Any Ptr, @EnumProc), 0)
   EnumResourceNames(hModule, RT_ACCELERATOR, Cast(Any Ptr, @EnumProc), 0)
   EnumResourceNames(hModule, RT_RCDATA, Cast(Any Ptr, @EnumProc), 0)
   EnumResourceNames(hModule, RT_MESSAGETABLE, Cast(Any Ptr, @EnumProc), 0)
   EnumResourceNames(hModule, RT_GROUP_CURSOR, Cast(Any Ptr, @EnumProc), 0)
   EnumResourceNames(hModule, RT_GROUP_ICON, Cast(Any Ptr, @EnumProc), 0)
   EnumResourceNames(hModule, RT_VERSION, Cast(Any Ptr, @EnumProc), 0)
   EnumResourceNames(hModule, RT_DLGINCLUDE, Cast(Any Ptr, @EnumProc), 0)
   EnumResourceNames(hModule, RT_PLUGPLAY, Cast(Any Ptr, @EnumProc), 0)
   EnumResourceNames(hModule, RT_VXD, Cast(Any Ptr, @EnumProc), 0)
   EnumResourceNames(hModule, RT_ANICURSOR, Cast(Any Ptr, @EnumProc), 0)
   EnumResourceNames(hModule, RT_ANIICON, Cast(Any Ptr, @EnumProc), 0)
   EnumResourceNames(hModule, RT_HTML, Cast(Any Ptr, @EnumProc), 0)
   
   FreeLibrary(hModule)
   Print "Finished!"
   GetKey()
EndIf

Function EnumProc(ByVal hModule As HMODULE, ByVal lpszType As LPCTSTR, ByVal lpszName As LPTSTR, ByVal lParam As LONG_PTR) As BOOL
   Print "Name: " & *lpszName & " Type: ";
   Select Case lpszType
      Case RT_CURSOR
         Print "Cursor"
      Case RT_FONT
         Print "Font"
      Case RT_BITMAP
         Print "Bitmap"
      Case RT_ICON
         Print "Icon"
      Case RT_MENU
         Print "Menu"
      Case RT_DIALOG
         Print "Dialog"
      Case RT_STRING
         Print "String"
      Case RT_FONTDIR
         Print "FontDir"
      Case RT_ACCELERATOR
         Print "Accelerator"
      Case RT_RCDATA
         Print "RC Data"
      Case RT_MESSAGETABLE
         Print "Message table"
      Case RT_GROUP_CURSOR
         Print "Group Cursor"
      Case RT_GROUP_ICON
         Print "Group Icon"
      Case RT_VERSION
         Print "Version"
      Case RT_DLGINCLUDE
         Print "Dialog Include"
      Case RT_PLUGPLAY
         Print "Plug Play"
      Case RT_VXD
         Print "VXD"
      Case RT_ANICURSOR
         Print "Animated Cursor"
      Case RT_ANIICON
         Print "Animated Icon"
      Case RT_HTML
         Print "HTML"
      Case Else
         Print "Unknown"
   End Select
   Return TRUE
End Function
Findet jemand den Fehler?
Ich habe mal als Module "shell32.dll" eingegeben, da das sehr viele Resourcen hat. Das einzigste was er jedoch auflisten ist eine HTML-Datei namens "WEBSERVICEERROR.HTM".
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 24.04.2009, 15:35    Titel: Antworten mit Zitat

BYVAL lpszType AS LPCTSTR
lpszType ist ein String (Pointer), du Selectest jedoch mit Konstanten zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Nitroxis



Anmeldungsdatum: 27.02.2008
Beiträge: 300
Wohnort: Irgendwo...

BeitragVerfasst am: 24.04.2009, 15:37    Titel: Antworten mit Zitat

Danke!
Aber das ist nicht das Hauptproblem.
Er listet trozdem nichts auf missbilligen
Edit:
Aber das geht doch mit den Konstanten, denn bei kernel32.dll liefert er eine Resource zurück. Er sagt
Code hat Folgendes geschrieben:
Name: WEBSERVICEERROR.HTM Type: HTML
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 24.04.2009, 15:43    Titel: Antworten mit Zitat

Einfach alle Parameter ausgeben lassen!?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz