Mainframe-Icon zur Laufzeit ändern
-
Hallo Forenspezis,
ich möchte das Haupticon meiner Anwendung gerne variabel halten.
Soll bedeuten das Icon im Windowsexplorer, dass zu meiner Exe
gehört soll aus dem Programm raus frei wählbar sein.Muss ich dazu selbst die Icons mitliefern, bzw. kann ich dem
Nutzer die Freiheit lassen selbst Bilddateien wählen zu lassen?Noch viel wichtiger - und die eigentliche Frage:
Wie mache ich das? Innerhalb der Anwendung bekomme ich das hin,
aber eben nicht für die Anzeige im Windowsexplorer (z.B. für die
Miniaturansicht etc.).Grüßle aus Stuttgart
Eddy
-
Hilfe
Ich google mir den Wolf und hab keine Idee
wie ich jetzt auch nur einen Schritt weiter komme.
-
Ich vermute, das ist ein Registryeintrag.

-
Habe mal in diese Richtung gesucht, bin aber leider nicht fündig geworden.
-
Hmm... also mit mehreren Icons als Resource solltest de zumindest hinbekommen das der User mehrer Icons zur Auswahl hat... dann würde ich mir am ehesten mal kurz ne kleine App schreiben die mehrere Icons zur Auswahl hat... dann das Icon im Explorer ändern. So... [Win]+[r] => regedit => Suche: "ProgrammName..." und sehen was kommt

-
Wo soll da in der Registry ein Eintrag für das zu verwendende Programmicon
sein? Afaik soll das doch durch die Anwendung bereitgestellt werden und nicht
durch irgendeinen Registrykey??! Wenn ich meine Exe irgendwo auf nem PC ablege
wird auch nicht von Zauberhand ein Verweis auf ein urplötzlich anderes Icon
gesetzt!Das muss schon programmtechnisch passieren. Soviel ist sicher. Aber hier war
ja auch genau die Frage des "Wie?"
-
void C...Dlg::OnButton1() { m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON1); // Neues Icon //m_hIcon = AfxGetApp()->LoadStandardIcon(IDI_ERROR); // Neues Standard-Icon SetIcon(m_hIcon, TRUE); // Großes Symbol verwenden SetIcon(m_hIcon, FALSE); // Kleines Symbol verwenden }Damit sollte man das IDR_MAINFRAME zumindest zur Laufzeit ändern können.
Ansonsten zu:
::SHGetFileInfo("C:\\WINDOWS\\NOTEPAD.EXE", 0UL, &FileInfo,sizeof(FileInfo),SHGFI_ICON);