2009-06-16 15 views
6

Czy istnieje sposób na uzyskanie skojarzonej ikony w języku C# bez używania DllImport?Uzyskaj powiązaną ikonę z pliku, folderu lub dysku bez WinAPI

Gdy używam Icon.ExtractAssociatedIcon, nie wydaje mi się, aby ikona napędów, folderów, folderów specjalnych w środowisku lub jakichkolwiek plików w folderach sieciowych. Czy istnieje inny sposób na uzyskanie ikony przy użyciu .NET?

Odpowiedz

4

Net ma tylko jedną metodę ekstrakcji towarzyszących ikony, a ty już o tym wspomniano. Każda dostępna biblioteka używa pinvokes, ponieważ pobiera ikony z okien. Więc jeśli potrzebujesz w pełni przenośnego mechanizmu wyodrębniania ikon, musisz napisać to sam, niestety, ale to jedyny sposób (i ukryć cały kod specyficzny dla systemu w środku).

+0

Hm, cóż, to niefortunne. Dzięki za pomoc. – Patrick

0

Nie jest to odpowiedź na Twoje pytanie, ale może być przydatna.

można dostać najwięcej z MS Windows ikony z tego pliku

$ VisualStudiosInstallationDirectory Common7 \ \ \ VS2008ImageLibrary VS2008ImageLibrary.zip

Zastępstwo 2008 do 2005 roku, jeśli nadal używać VS2005

0

Ten artykuł z kodem na CodeProject może być pomocny.

Extract icons from EXE or DLL files

+0

Jeśli pobierzesz jego kod źródłowy, używa on DllImport ("kernel32" ...). Chcę móc używać mojego kodu również w systemach innych niż Windows (bez konieczności zmieniania całego kodu za pomocą instrukcji # if). – Patrick

+0

Wątpię, czy istnieje przenośny sposób na wyodrębnianie ikon na os. – Nifle

+0

Java jest przenośna i o ile wiem, Java może wyodrębnić wszystkie ikony, czy też się mylę? – Patrick

Powiązane problemy