Icona Salva Il File Sul Disco Rigido

So che questo deve essere incredibilmente facile – e ‘ incredibile quanto tempo ho cercato una risposta a questa domanda sulla base di come è semplice farlo in VB6. Voglio semplicemente estrarre un’Icona da un File EXE con l’Icona.ExtractAssociatedIcon, e quindi salvare il file di icona per il mio disco rigido.

Così, qui è che cosa ho, e ho anche mostrarvi che cosa ho provato quindi non credo di essere pigri.

OpenFileDialog ofd = new OpenFileDialog();
ofd.ShowDialog();

string s = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\IconData.ico";

Icon ico = Icon.ExtractAssociatedIcon(ofd.FileName);
Bitmap bmp = ico.ToBitmap();

bmp.Save(s, System.Drawing.Imaging.ImageFormat.Icon);

Il codice di cui sopra, fa solo un file chiamato “IconData.ico” sul mio desktop, che è di 0 byte di lunghezza. Di nuovo, sono sicuro che questo deve essere incredibilmente facile da fare, ma per la vita di mio non riesco a capire.

Grazie!

  • Si dovrebbe condividere il file eseguibile o l’icona che si sta tentando di aprire, perché qui si tratta di lavorare senza problemi.
  • Ho cambiato l’icona originale nome del file da 9665.ico di FileIcon.ico. Il nuovo file “IconData.ico” è un bianco icona sul desktop, ma quando l’ho aperto in vernice riesco a vedere l’immagine. È normale questo?
  • Questo COSÌ thread ha un link a questo CodeProject biblioteca, che sembra essere molto promettente. Potrebbe desiderare di controllare che fuori.
  • ‘Così abbiamo non cosa siete pigri?’ Un programmatore pigro è in realtà una buona cosa. E ‘ una grande motivazione per ottenere il modo più semplice per fare le cose che è tutto il nostro commercio è tutto.
  • Ci deve essere qualcosa di sbagliato con il vostro setup. Il tuo codice funziona senza problemi.
InformationsquelleAutor | 2011-05-08



One Reply
  1. 13

    Si ottengono risultati migliori se si salva l’icona senza prima la conversione di un’immagine bitmap. Questo perché un ‘ “Icona” può contenere più dimensioni, mentre una bitmap è un singolo formato scelto durante la conversione.

    L’Icona di classe non avere un salvataggio di file di metodo, ma di avere un salvataggio di FileStream metodo, in modo che è possibile salvarlo come questo:

            string s = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\IconData.ico";
            using (FileStream fs = new FileStream(s, FileMode.Create))
                ico.Save(fs);
    • Che è stato il mio primo istinto, ma quando l’ho provato salvato icona non è venuto fuori “di destra”. Ecco il risultato. ho usato excel.exe come assieme di destinazione.
    • Grazie, questo è quello che ho usato io. Ho dimenticato di aggiornare questo post in quanto non era stata di 8 ore dal momento in cui ho trovato la soluzione, quindi non ero ad alta voce a postare la mia risposta. Ma, mi segna questo come corretto.
    • Utilizzando lync.exe (skype) come un esempio, mi sento molto a blocchi e si vedono i pixel risultati con questo. È che, per essere previsto, o ho sbagliato da qualche parte?

Lascia un commento