Externe Ressourcen



  • Hi,
    wenn man das Icon zu einer bestimmten Dateierweiterung sucht und über die Registry geht bekommt man irgendwann einen Pfad a la "somedll.dll,-12".
    Wie extrahiere ich diese Ressource aus der DLL bzw. öffne einen Stream dieser Ressource?

    Danke

    M.T.



  • Den Antworten ( 😉 ) nach zu urteilen scheint es in .net keine Lösung für mein Problem zu geben, also hab ich mir auch der Win32 APi was zusammengebaut:

    [DllImport("kernel32.dll", CharSet = CharSet.Auto)]public static extern int LoadLibrary([MarshalAs(UnmanagedType.LPTStr)]string fileName);
    [DllImport("kernel32.dll", CharSet = CharSet.Auto)]public static extern bool FreeLibrary(int module);
    [DllImport("user32.dll", CharSet = CharSet.Ansi)]public static extern int LoadIcon(int instance, IntPtr iconName);
    
    //...
    
    //Icon-Ladefunktion
    static public Icon LoadIconFromResourceFile(string resourceFile, IntPtr resourceID)
    {
    Icon icon;
    int fileInstance = LoadLibrary(resourceFile);
    int iconHandle = LoadIcon(fileInstance, resourceID);
    icon = Icon.FromHandle((IntPtr)iconHandle);
    FreeLibrary(fileInstance);
    return icon;
    }
    //-----------------
    

    Nur leider funktioniert diese Lösung nur bei bestimmten Dateien (z.B. .jpg) nicht aber bei Icons aus .exe Dateien (z.B. .html und .php) und einigen .dlls.

    Wisst ihr, woran das liegt?

    Thx

    M.T.



  • huh ? Die Funktion heisst LoadIcon, lädt aber keine Icons, sondern Jpegs und dergleichen ??? 😕

    Manuel schrieb:

    ...exe Dateien (z.B. .html und .php) und einigen .dlls.

    Was bedeutet das, was in den Klammern steht ? Was haben html und php mit Icons zu tun ?

    mfg h4xX0r



  • Sorry, hab mich vielleicht n bisschen unverständlich ausgedrückt 🙂
    mit den Sachen in Klammern meine ich die Dateiendungen, für die ich das Icon ausgeben lasse.

    z.B. ich suche das Icon für .jpg
    -> HKEY_CLASSES_ROOT -> .jpg (Name des Eintrages zur Endung suchen)
    -> HKEY_CLASSES_ROOT -> jpegfile -> DefaultIcon (Pfad des Icon holen)

    M.T.


Anmelden zum Antworten