Vertoon icoontje in .exe file

Alles over het toepassen van API en DLL's in Liberty BASIC

Moderator: anthonio

Vertoon icoontje in .exe file

Berichtdoor FrederikPot » ma aug 25, 2008 4:08 am

In sommige executables zitten icoontjes meegeleverd, de volgende code laat zo'n icoontje
zien van 'C:\WINDOWS\regedit.exe':
Code: Selecteer alles
nomainwin
button #main, "Icoon", [Icon], UL, 10, 50
open "test" for window as #main
#main, "trapclose [Quit]"
wait

[Icon]
CallDLL #shell32, "ExtractIconA",0 as long,"C:\WINDOWS\regedit.exe" as Ptr,-1 as long,r as long
r=r-1
CallDLL #shell32, "ExtractIconA",0 as long,"C:\WINDOWS\regedit.exe" as Ptr,r as long,res as long
hwnd=hwnd(#main)
CallDLL #user32, "GetWindowDC",hwnd as long,resdc as long
CallDLL #user32, "DrawIcon",resdc as long,20 as long,30 as long,res as long,res2 as long
wait

[Quit]
close #main
end



Wel is het zo dat het icoontje weer verdwijnt na minmaliseren/maximaliseren van het programmaatje.

Note: Bericht gewijzigd door anthonio, Code tags geplaatst en de DLL in een programmatje gegoten.
FrederikPot
 
Berichten: 14
Geregistreerd: vr aug 15, 2008 11:31 pm

Re: Vertoon icoontje in .exe file

Berichtdoor anthonio » wo aug 27, 2008 11:46 am

Hoi Frederik,

Zeer mooi gevonden.
Waar blijf je ze toch vandaan halen.
Heb wat zitten experimenteren met je programma en dit kan inderdaad op verschillende .exe bestanden uitgevoerd worden.
Heel handig.
Nu heb ik wel gemerkt dat je blijkbaar het icoontje niet kan scalen (groter/kleiner maken).
Hier een ander voorbeeld met dezelfde code van Frederik en wat uitleg.

Code: Selecteer alles
nomainwin
button #main, "Icoon", [Icon], UL, 10, 50
open "test" for window as #main
#main, "trapclose [Quit]"
wait

[Icon]
CallDLL #shell32, "ExtractIconA",0 as long,"C:\WINDOWS\explorer.exe" as Ptr,-1 as long,r as long
r=r-1
CallDLL #shell32, "ExtractIconA",0 as long,"C:\WINDOWS\explorer.exe" as Ptr,r as long,res as long
hwnd=hwnd(#main)
CallDLL #user32, "GetWindowDC",hwnd as long,resdc as long
'De 20 en 30 zijn respectievelijk de X en Y as waar je het icoontje wil laten komen
CallDLL #user32, "DrawIcon",resdc as long,20 as long,30 as long,res as long,res2 as long
wait

[Quit]
close #main
end
Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm


Keer terug naar API/DLL

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast

cron