2009-06-16 4 views
6

Gibt es eine Möglichkeit, ein zugeordnetes Symbol in C# ohne Verwendung von DllImports zu erhalten?Verknüpfte Symbol aus Datei, Ordner oder Laufwerk ohne WinAPI

Wenn ich Icon.ExtractAssociatedIcon verwende, scheint ich nicht das Symbol für Laufwerke, Ordner, SpecialFolder in der Umgebung oder alle Dateien im Netzwerk angehängt Ordner. Gibt es eine andere Möglichkeit, ein Icon mit .NET zu bekommen?

Antwort

4

.Net haben nur eine Methode für assoziierte Symbole zu extrahieren, und Sie schon davon erwähnt. Jede Lib, die Sie finden können, verwendet Pin-Voices, weil sie Icons von Windows bekommen. Also, wenn Sie vollständig portable Icon Extraction-Engine benötigen, müssen Sie es leider selbst schreiben, aber das ist der einzige Weg (und verstecken Sie alle systemspezifischen Code im Inneren).

+0

Hm, nun, das ist bedauerlich. Danke für Ihre Hilfe. – Patrick

0

Keine Antwort auf Ihre Frage, aber könnte von Nutzen sein.

können Sie die meisten MS-Windows-Symbole aus dieser Datei für 2005

$ VisualStudiosInstallationDirectory \ Common7 \ VS2008ImageLibrary \ VS2008ImageLibrary.zip

Ersatz 2008 erhalten, wenn Sie noch VS2005 verwenden

0

Dieser Artikel mit Code auf CodeProject könnte hilfreich sein.

Extract icons from EXE or DLL files

+0

Wenn Sie seinen Quellcode herunterladen, verwendet er DllImport ("kernel32" ...). Ich möchte meinen Code auch auf Nicht-Windows-Systemen verwenden können (ohne eine Menge Code mit # if-Anweisungen ändern zu müssen). – Patrick

+0

Ich bezweifle, dass es eine portable Möglichkeit gibt, Symbole über os'es zu extrahieren – Nifle

+0

Java ist tragbar, und soweit ich weiß kann Java alle Arten von Symbolen extrahieren, oder liege ich falsch? – Patrick