<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Datei Infos- und Symbol auslesen]]></title><description><![CDATA[<p>Hallo ich hab folgendes Problem:</p>
<p>Ich würde gern die Datei Informationen wie &quot;Erstellungsdatum&quot;... auslesen.<br />
Außerdem würde ich gern auch noch das Symbol auslesen.<br />
(Die Symbolnummer und die Standardsymbole kann ich auslesen aber Nummer und Symbol passten nicht zusammen!)<br />
Kann mir jemand hlefen?<br />
Gruß KY</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/169749/datei-infos-und-symbol-auslesen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 13:03:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/169749.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 08 Jan 2007 15:53:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datei Infos- und Symbol auslesen on Mon, 08 Jan 2007 15:53:57 GMT]]></title><description><![CDATA[<p>Hallo ich hab folgendes Problem:</p>
<p>Ich würde gern die Datei Informationen wie &quot;Erstellungsdatum&quot;... auslesen.<br />
Außerdem würde ich gern auch noch das Symbol auslesen.<br />
(Die Symbolnummer und die Standardsymbole kann ich auslesen aber Nummer und Symbol passten nicht zusammen!)<br />
Kann mir jemand hlefen?<br />
Gruß KY</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1205769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205769</guid><dc:creator><![CDATA[ky_fr34k]]></dc:creator><pubDate>Mon, 08 Jan 2007 15:53:57 GMT</pubDate></item><item><title><![CDATA[Reply to Datei Infos- und Symbol auslesen on Mon, 08 Jan 2007 16:11:46 GMT]]></title><description><![CDATA[<p>zu Datei-Infos:<br />
entweder mit den VCL-Funktionen &quot;FileGetDate&quot; bzw &quot;FileAge&quot;<br />
oder mit der C-Funktion &quot;_stat&quot; (&lt;sys/types.h&gt; und &lt;sys/stat.h&gt; einbinden)<br />
oder mit der WinAPI-Funktion &quot;GetFileTime&quot;.</p>
<p>Weitere Dateiinfos (Datei-Attribute) können entsprechend mit den verwandten Funktionen &quot;FileGetAttr&quot; bzw &quot;GetFileAttr&quot; ermittelt werden.</p>
<p>zu Symbol:<br />
wie liest du denn diese Infos aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1205783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205783</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Mon, 08 Jan 2007 16:11:46 GMT</pubDate></item><item><title><![CDATA[Reply to Datei Infos- und Symbol auslesen on Mon, 08 Jan 2007 17:22:58 GMT]]></title><description><![CDATA[<p>des mit den datei infos ist schon mal cool!</p>
<pre><code class="language-cpp">SHFILEINFO sfi;
SHGetFileInfo(Suche.Name.c_str(), FILE_ATTRIBUTE_NORMAL, &amp;sfi, sizeof(SHFILEINFO), SHGFI_ICON | SHGFI_SMALLICON | SHGFI_USEFILEATTRIBUTES);
files-&gt;Items-&gt;Item[files-&gt;Items-&gt;Count-1]-&gt;ImageIndex=sfi.iIcon;
</code></pre>
<p>So bekomme ich die Nr.</p>
<pre><code class="language-cpp">void TfmMain::FillImageList(const String &amp; FileName, TImageList *il)
{
  int AnzahlIcons = int(ExtractIcon(fmMain-&gt;Handle, FileName.c_str(), -1) );
  if (AnzahlIcons != NULL)
  {
    TIcon *MyIcon = new TIcon();
    for (int i=0;i&lt;AnzahlIcons;i++)
    {
      MyIcon-&gt;Handle = ExtractIcon(fmMain-&gt;Handle,FileName.c_str(),i);
      il-&gt;AddIcon(MyIcon);
    }
  }
}
</code></pre>
<p>und so fülle ich meine image list mit bildern!</p>
<p>Nur leider passen die Icons nicht zu den Nr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1205869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205869</guid><dc:creator><![CDATA[ky_fr34k]]></dc:creator><pubDate>Mon, 08 Jan 2007 17:22:58 GMT</pubDate></item><item><title><![CDATA[Reply to Datei Infos- und Symbol auslesen on Wed, 10 Jan 2007 12:41:37 GMT]]></title><description><![CDATA[<p>Ich glaube, die zwei Funktionen 'SHGetFileInfo' und 'ExtractIcon' passen nicht zueinander.<br />
Wenn du das Standard-Icon einer Anwendung haben willst, nimm einfach das Icon mit der Nummer 0 (Null), also</p>
<pre><code class="language-cpp">MyIcon-&gt;Handle = ExtractIcon(fmMain-&gt;Handle,FileName.c_str(), 0);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1207056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207056</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Wed, 10 Jan 2007 12:41:37 GMT</pubDate></item><item><title><![CDATA[Reply to Datei Infos- und Symbol auslesen on Mon, 15 Jan 2007 17:16:58 GMT]]></title><description><![CDATA[<p>ok des funktioniert schon richtig gut!<br />
jetzt hab ich aber folgendes problem:<br />
Ich lese zum beispiel das icon fürs notepad aus.<br />
Das funktioniert da das Icon für die notepad.exe in der exe gespeichert ist.<br />
aber zb bei einer txt datei wird dann auch des icon aus der notepad.exe genommen statt des standart icon aus der shell32.dll<br />
woher weiß ich welches icon aus der shell32.dll ich für ne txt datei nehmen muss?<br />
Gruß KY</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210385</guid><dc:creator><![CDATA[ky_fr34k]]></dc:creator><pubDate>Mon, 15 Jan 2007 17:16:58 GMT</pubDate></item><item><title><![CDATA[Reply to Datei Infos- und Symbol auslesen on Mon, 15 Jan 2007 17:27:05 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ich vermute du brauchst die Funktion <a href="http://msdn2.microsoft.com/en-us/library/ms648067.aspx" rel="nofollow">ExtractAssociatesIcon</a>.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210391</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 15 Jan 2007 17:27:05 GMT</pubDate></item><item><title><![CDATA[Reply to Datei Infos- und Symbol auslesen on Mon, 15 Jan 2007 19:45:15 GMT]]></title><description><![CDATA[<p>cool genau des richtige!!!<br />
danke akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210448</guid><dc:creator><![CDATA[ky_fr34k]]></dc:creator><pubDate>Mon, 15 Jan 2007 19:45:15 GMT</pubDate></item><item><title><![CDATA[Reply to Datei Infos- und Symbol auslesen on Thu, 23 Aug 2007 09:10:07 GMT]]></title><description><![CDATA[<p>Damit hab ich mich auch beschäftigt, als ich ein ZIP Programm geschrieben hab.<br />
Hab da mal eine kleine Hilfsfunktion geschrieben die genau dies macht.<br />
Sie liest das Icon einer Datei ein, schreibt es in eine Imagelist und liefert den Index zurück. Sollte eine datei nicht existieren legt sie sie einfach an, holt sich dann das Icon und löscht sie wieder.</p>
<p>Evtl ist diese Funktion ja eine kleine Hilfe für manche, darum Poste ich einfach mal den Code.</p>
<pre><code class="language-cpp">/*Die Funktion ermittelt das Icon einer Datei

Input-Parameter:
    const AnsiString &amp; sFileName_i:
                Referenz auf den Dateiname der Datei,
                von welcher man das Icon möchte
                ( Optional mit oder ohne Pfad )

    vector&lt; AnsiString &gt; &amp; oExtensionList_i:
                Referenz auf den Vector, welcher bereits
                benutzte Dateiendungen ( doc, exe, ... )speichert
                    -&gt; Wird wärend der Funktion befüllt

    TImageList &amp; oImageList_i :
                Referenz auf die ImageList, welche die Icons abspeichert
                    -&gt; Wird wärend der Funktion befüllt

    const AnsiString &amp; sExeDir_i: (Optional, wenn der Pfad in sFileName_i steht)
                Referenz auf den Pfad, in dem die Datei liegt,
                bzw wo sie temporär angelegt wird
                ( z.B. bei ZIP Archiven, bei denen die Dateien noch nicht
                  existieren, müssen sie temporär angelegt werden)

    HINWEIS:    Bitte darauf achten, dass oExtensionList_i und oImageList_i
                AUSSCHLIESSLICH von dieser Funktion gefüllt werden, da
                sie Synchron arbeiten müssen!

Rückgabewert:
    Index des Icons in oImageList_i bzw. -1 bei einem Fehler
*/

int getIcon( const AnsiString &amp; sFileName_i,
            vector&lt; AnsiString &gt; &amp; oExtensionList_i,
            TImageList &amp; oImageList_i,
            const AnsiString &amp; sExeDir_i = &quot;&quot; )
{
    //sFileName_i muss einen Wert haben
    assert( !sFileName_i.IsEmpty() );

    //Wenn sFileName_i nur den Dateinamen+Dateiendung enthält
    //wird als Datei-Pfad sExeDir_i genommen
    AnsiString sTempFile;
    if( sFileName_i.LastDelimiter(&quot;\\&quot;) &gt; 0 ){
        sTempFile = sFileName_i;
    }
    else{
        assert( !sExeDir_i.IsEmpty() );
        sTempFile = sExeDir_i + &quot;\\&quot; + sFileName_i;
    }

    //Die Dateiendung ( z.B. doc, exe ) wird sExtension zugewiesen
    AnsiString sExtension = sFileName_i.SubString( sFileName_i.LastDelimiter(&quot;.&quot;)+1,
                             sFileName_i.Length() - sFileName_i.LastDelimiter(&quot;.&quot;));

    //Es wird geprüft ob in oExtensionList_i die Dateiendung sExtension existiert
    //Wenn sie existiert, wird der Index zurückgegeben
    for( unsigned int i = 0; i &lt; oExtensionList_i.size(); i++ ){
        if( oExtensionList_i[i] == sExtension ){
            return i;
        }
    }

    //Überprüfung ob die Datei existiert
    bool bFileExists = FileExists( sTempFile );

    //sollte die datei nicht existieren, wird eine Temporäre Datei mit der
    //selben Endung angelegt
    if( !bFileExists ){
        ofstream oFile( sTempFile.c_str() );
        oFile.close();
    }

    //das Handle des Icons wir ermittelt
    TIcon *MyIcon = new TIcon();
    WORD wTemp;
    HICON h = ExtractAssociatedIcon(Application-&gt;Handle,sTempFile.c_str(),&amp;wTemp);

    //Sollte das Handle ungültig sein wird -1 zurückgegeben
    if( !h ) return -1;

    //Sonst wird das Icon in oImageList_i aufgenommen
    MyIcon-&gt;Handle = h;
    oImageList_i.AddIcon(MyIcon);
    //und die Dateiendung in oExtensionList_i
    oExtensionList_i.push_back( sExtension );

    //sollte die Datei nur Temporär angelegt worden sein, wird sie gelöscht
    if( !bFileExists ){
        remove( sTempFile.c_str() );
    }

    //der Index des Icons wird zurückgeliefert
    return oImageList_i.Count - 1;
}
</code></pre>
<p>Gruß FightingWolf</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1350266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1350266</guid><dc:creator><![CDATA[FightingWolf]]></dc:creator><pubDate>Thu, 23 Aug 2007 09:10:07 GMT</pubDate></item></channel></rss>