shell icon



  • Hi,
    Ich habe einen Dateinamen.

    Wie bekomme ich das icon dazu, was auch der explorer anzeigen würde?
    (Also das, der zugehörigen Anwendung, oder in Falle einer Verknüpfung oder Exe das zugehörige)



  • Hi,

    mal salopp geantwortet:

    Das ist immer die erste Icon-Resource in der Datei. Ist da keine, wird ein default Icon angezeigt.

    Die Resource-Api ist gut dokumentiert.



  • ich bin mir sicher, dass es da eine api oder SHxx-funktion gab, kanns leider nicht finden.

    mir geht es ja darum, das icon zu bekommen, was im explorer dargestellt werden würde.



  • versuch es mal mit...

    für Datei icon

    SHFILEINFO    sfi;
    	UINT uiFlags = SHGFI_ICON | SHGFI_USEFILEATTRIBUTES;
    
    	uiFlags |= (bIconSize ? SHGFI_LARGEICON : SHGFI_SMALLICON);
    
    	SHGetFileInfo(szFileName, FILE_ATTRIBUTE_NORMAL,&sfi, sizeof(SHFILEINFO),uiFlags);
    
    	return sfi.hIcon;
    

    oder

    für ordner

    SHFILEINFO    sfi;
    	UINT uiFlags = SHGFI_ICON |  SHGFI_USEFILEATTRIBUTES;
    
    	uiFlags |= (bIconSize ? SHGFI_LARGEICON : SHGFI_SMALLICON);
    
    	SHGetFileInfo(szFileName, FILE_ATTRIBUTE_DIRECTORY,&sfi, sizeof(SHFILEINFO),uiFlags);
    
        return sfi.hIcon;
    


  • Jau, danke, das hatte ich gesucht.


Anmelden zum Antworten