2009-06-16 16 views
6

Herhangi bir DllImports kullanmadan C# ile ilişkilendirilmiş bir simge elde etmenin bir yolu var mı?WinAPI olmadan dosya, klasör veya sürücüden ilişkili simge alın

Icon.ExtractAssociatedIcon öğesini kullandığımda, Ortamdaki sürücüler, klasörler, Özel Klasörler veya ağdaki bağlı klasörlerdeki dosyalar için simge almıyorum. Yani .NET kullanarak bir simge almak için başka bir yolu var mı?

cevap

4

Net ilişkili simgeleri ayıklanması için tek yöntem var ve zaten bu konuda bahsetti. Bulduğunuz her lib, pinvokes kullanıyor, çünkü pencerelerden ikonlar alıyorlar. Yani tamamen taşınabilir ikon çıkarma motoru gerekiyorsa, kendiniz yazmalısınız, ne yazık ki, ama bu tek yoldur (ve içerdeki tüm sisteme özel kodları gizler).

+0

Hm, bu talihsiz bir şey. Yardım ettiğin için teşekkür ederim. – Patrick

0

Sorunuza bir cevap değil, kullanımda olabilir. Hala VS2005

kullanırsanız

Sen 2005 yılı için 2008

Yedek Common7 \ VS2008ImageLibrary \ VS2008ImageLibrary.zip \ bu dosya

$ VisualStudiosInstallationDirectory gelen ms çoğu pencereleri simgeleri alabilirsiniz

0

CodeProject kodlu bu makalede yardımcı olabilir.

Extract icons from EXE or DLL files

+0

Kaynak kodunu indirirseniz, DllImport ("kernel32" ...) kullanıyor demektir. Kodumu Windows olmayan sistemlerde de kullanabilmeyi istiyorum (# if-statement ile bir çok kodu değiştirmek zorunda kalmadan). – Patrick

+0

Ben os'es – Nifle

+0

arasında simgeler ayıklamak için taşınabilir bir yolu olduğundan şüpheliyim Java taşınabilir ve bildiğim kadarıyla Java her türlü simgeleri ayıklayabilir, ya da yanlış mıyım? – Patrick

İlgili konular