2009-06-16 8 views
6

¿Hay alguna forma de obtener un icono asociado en C# sin usar ninguna DllImports?Obtener icono asociado desde el archivo, carpeta o unidad sin WinAPI

Cuando uso Icon.ExtractAssociatedIcon no parece obtener el icono para unidades, carpetas, SpecialFolder en el entorno o cualquier archivo en las carpetas de red adjuntas. Entonces, ¿hay alguna otra manera de obtener un ícono usando .NET?

Respuesta

4

.Net tiene sólo un método para extraer iconos asociados, y que ya se ha mencionado al respecto. Cada lib que puedes encontrar utiliza pinvokes, ya que obtienen iconos de windows. Por lo tanto, si necesita un motor de extracción de íconos totalmente portátil, debe escribirlo usted mismo, lamentablemente, pero esta es la única forma (y ocultar todos los códigos específicos del sistema).

+0

Hm, bueno eso es desafortunado. Gracias por tu ayuda. – Patrick

0

No es una respuesta a tu pregunta, pero puede ser de utilidad.

Usted puede obtener la mayoría de los ms iconos de Windows desde este archivo

$ VisualStudiosInstallationDirectory \ Common7 \ VS2008ImageLibrary \ VS2008ImageLibrary.zip

Sustituto de 2008 para el año 2005 si todavía utiliza VS2005

0

Este artículo con código en CodeProject podría ser de ayuda.

Extract icons from EXE or DLL files

+0

Si descarga su código fuente, está usando DllImport ("kernel32" ...). También quiero poder usar mi código en sistemas que no sean de Windows (sin tener que cambiar una gran cantidad de código con # if-statements). – Patrick

+0

Dudo que haya una forma portátil de extraer íconos a través de os'es – Nifle

+0

Java es portátil, y por lo que sé, Java puede extraer todo tipo de iconos, ¿o estoy equivocado? – Patrick

Cuestiones relacionadas