araschic Skrivet 11 Augusti 2013 Rapport Dela Skrivet 11 Augusti 2013 (redigerat) Väldigt enkelt program som extrahera ikon ifrån vald fil, funkar på det mesta.Till exempel musik filer,bilder,program osv. Nedladdning (källkod endast även bifogat i tråden):https://mega.co.nz/#!AoZkEIJQ!ABRqgx24XUihoxvAwjatKnos_jRC0e1dvOKtnKNZPh8 Besök gärna min blogg om ni har intresse av dethttp://araschic.myshowroom.seHär har ni ett snippet för dom som har intresse av det, lite stökig stil hoppas det duger ändå. //The might .dll shell32 behold ! [DllImport("Shell32.dll")] public static extern IntPtr SHGetFileInfo(string pszPath, uint dwFileAttributes, ref SHFILEINFO psfi, int cbFileInfo, uint uFlags); // Constants that we need in the function call private const int SHGFI_ICON = 0x100; private const int SHGFI_SMALLICON = 0x1; private const int SHGFI_LARGEICON = 0x0; // This structure will contain information about the file public struct SHFILEINFO { // Handle to the icon representing the file public IntPtr hIcon; // Index of the icon within the image list public int iIcon; // Various attributes of the file public uint dwAttributes; // Path to the file [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] public string szDisplayName; // File type [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)] public string szTypeName; }; //Sample Usage, not (to) advanced ? =) private void DrawIcon(string strFilePath) { //Store the 'Icon' Icon myIcon; //Large icon IntPtr hImgLarge; //;) fancy shit SHFILEINFO shinfo = new SHFILEINFO(); /////////////////////////////// //DRAW THE LARGE ICON /////////////////////////////// //Get handle hImgLarge = SHGetFileInfo(txtFilePath.Text, 0, ref shinfo, Marshal.SizeOf(shinfo), SHGFI_ICON | SHGFI_LARGEICON); //myIcon equal icon from file myIcon = Icon.FromHandle(shinfo.hIcon); //Draw icon inside picture box picLarge.Image = myIcon.ToBitmap(); //Clean up and jump out GC.Collect(); } ExtractIconFromPE.zip Redigerat 11 Augusti 2013 av araschic Citera Länk till kommentar Dela på andra sajter More sharing options...
WASD Skrivet 11 Augusti 2013 Rapport Dela Skrivet 11 Augusti 2013 Stödjer inte Linux. Citera Länk till kommentar Dela på andra sajter More sharing options...
araschic Skrivet 11 Augusti 2013 Författare Rapport Dela Skrivet 11 Augusti 2013 (redigerat) Stödjer inte Linux.Jo bör funka har du Mono ? så skall det inte vara några problem :$ hoppas jag... *Eventuellt att det inte funkar efter som jag använder Windows API, lite osäker på mono ibland funkar pinvoke ibland inte liksom :P. Redigerat 11 Augusti 2013 av araschic Citera Länk till kommentar Dela på andra sajter More sharing options...
WASD Skrivet 11 Augusti 2013 Rapport Dela Skrivet 11 Augusti 2013 Har inte riktigt koll på Linux. Men Linuxprogram använder sig inte av ikoner på det sättet vad jag vet utan för att få en ikon använder man sig utav .desktop-filer som innehåller text med info såsom just sökväg till ikonen och vilket kommando som ska köras. Så ett program som extraherar ikoner från ett program kan liksom inte finnas till Linux. Citera Länk till kommentar Dela på andra sajter More sharing options...
araschic Skrivet 11 Augusti 2013 Författare Rapport Dela Skrivet 11 Augusti 2013 (redigerat) Har inte riktigt koll på Linux. Men Linuxprogram använder sig inte av ikoner på det sättet vad jag vet utan för att få en ikon använder man sig utav .desktop-filer som innehåller text med info såsom just sökväg till ikonen och vilket kommando som ska köras. Så ett program som extraherar ikoner från ett program kan liksom inte finnas till Linux.Okej mycket möjligt inte så inne på Linux, håller mig till Windows. Men tack för din synpunkt Teoretiskt sätt så borde det funka ändå... då även till exempel en java applet innehåller en ikon,som ligger som resource ... men ej säker Redigerat 11 Augusti 2013 av araschic Citera Länk till kommentar Dela på andra sajter More sharing options...
WASD Skrivet 11 Augusti 2013 Rapport Dela Skrivet 11 Augusti 2013 Ja det är klart att program kan innehåller bilder som ikoner, men det finns ingen standard i hur de visas på skrivbordet eller i filbläddrare vad jag vet. Detta programmet går säkert att köra i Linux med wine/mono och då få ut ikoner från körbara windowsfiler. Citera Länk till kommentar Dela på andra sajter More sharing options...
araschic Skrivet 12 Augusti 2013 Författare Rapport Dela Skrivet 12 Augusti 2013 Ja det är klart att program kan innehåller bilder som ikoner, men det finns ingen standard i hur de visas på skrivbordet eller i filbläddrare vad jag vet. Detta programmet går säkert att köra i Linux med wine/mono och då få ut ikoner från körbara windowsfiler.Jag menar att i Windows så ligger Ikonen till ett program sparat som en resurs, och det är en gemensam standard.Det samma borde finnas på Linux, Any way :D stay tuned for more releases... Citera Länk till kommentar Dela på andra sajter More sharing options...
WASD Skrivet 12 Augusti 2013 Rapport Dela Skrivet 12 Augusti 2013 Nej, det finns ingen sån standard i Linux. Motsvarande "genvägar" till program har en standard för ikoner men inte den körbara filen själv. Citera Länk till kommentar Dela på andra sajter More sharing options...
araschic Skrivet 12 Augusti 2013 Författare Rapport Dela Skrivet 12 Augusti 2013 Nej, det finns ingen sån standard i Linux. Motsvarande "genvägar" till program har en standard för ikoner men inte den körbara filen själv.That's it nu går du mig på nerverna, jag menade att det var gemensam standard för windows (där av att jag kan använda en win api via pinvoke). Linux har visst ikoner för program etc http://qt-project.org/doc/qt-4.8/appicon.html.Gäller även en java applet på till exempel linux, eller ett program eller varför i helvete skulle du annars till exempel se firefox ikonen på desktop i kunbuntu till exempel.. /0ver and out Citera Länk till kommentar Dela på andra sajter More sharing options...
WASD Skrivet 12 Augusti 2013 Rapport Dela Skrivet 12 Augusti 2013 Firefoxikonen på skrivbordet är en genväg, den finns inte i programmet. Länken du skickade var för ikonen som visas per fönster för startade program. "The application icon, typically displayed in the top-left corner of an application's top-level windows" Citera Länk till kommentar Dela på andra sajter More sharing options...
Epixa Skrivet 14 Augusti 2013 Rapport Dela Skrivet 14 Augusti 2013 Varför är det kommentarer på engelska i koden? Har du kopierat allt från en tut? Citera Länk till kommentar Dela på andra sajter More sharing options...
WASD Skrivet 14 Augusti 2013 Rapport Dela Skrivet 14 Augusti 2013 Varför är det kommentarer på engelska i koden? Har du kopierat allt från en tut?Jag brukar kommentera min kod på engelska. Jag har svårt att avgöra utifrån kommentarerna ifall det är som du säger. Citera Länk till kommentar Dela på andra sajter More sharing options...
Rekommendera inlägg
Gå med i konversationen
Du kan skriva nu och registrera dig senare. Om du har ett konto, logga in nu för att posta med ditt konto.