Kako mogu u VB6 da preuzmem ikonicu iz nekog programa i da je stavi u npr PictureBox? Da bi bilo jasnije npr treba da otvori prozor za Open (ono preko Common dialog) i kada ga otvori da u neki picturebox ubaci ikonicu tog programa koji sam izabrao.
Preuzimanje ikonice iz programa
Zaključano
Zakačeno
proguglaj za "vb6 extract icon from exe", evo prvog rezultata: http://www.thescarms.com/vbasic/extracticons.aspx
...
...
Dodaj na formu PictureBox i Command Button, i prilepi sledeci kod:
Srecno.
Code:
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
Private Sub Command1_Click()
Dim return1 As Long
Picture1.AutoRedraw = True
return1& = ExtractIcon(Me.hWnd, "c:\windows\explorer.exe", 0) ' 0 (poslednji argument) ti je icon index, tako da mozes extraktovati sve ikone koje se nalaze u datoteci
DrawIcon Picture1.hdc, 0, 0, return1&
Picture1.Refresh
End Sub
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
Private Sub Command1_Click()
Dim return1 As Long
Picture1.AutoRedraw = True
return1& = ExtractIcon(Me.hWnd, "c:\windows\explorer.exe", 0) ' 0 (poslednji argument) ti je icon index, tako da mozes extraktovati sve ikone koje se nalaze u datoteci
DrawIcon Picture1.hdc, 0, 0, return1&
Picture1.Refresh
End Sub
Srecno.
hvala za trud, sad cu probati.
Ej radi, super je!
Stefan ti je odgovorio na pitanje ...
Ja sam napravio varijaciju na ovaj kod. Program pokazuje sve mogucnosti ove dve Win API funkcije tako sto na Formu iscrtava sve ikonice iz Explorera (ili nekog drugog programa).
Nije potrebno nista od kontrola na formi.
poz
Ja sam napravio varijaciju na ovaj kod. Program pokazuje sve mogucnosti ove dve Win API funkcije tako sto na Formu iscrtava sve ikonice iz Explorera (ili nekog drugog programa).
Nije potrebno nista od kontrola na formi.
poz
Code:
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
Private Sub Form_Load()
Dim hIcon As Long, iNo As Long, no As Long
iNo = ExtractIcon(App.hInstance, "c:\windows\explorer.exe", -1) '-1 vraca broj ikonica u fajlu
If Not iNo = 0 Then
Me.AutoRedraw = True: Me.Move 50 * Screen.TwipsPerPixelX, 50 * Screen.TwipsPerPixelY, iNo * 40 * Screen.TwipsPerPixelX, 75 * Screen.TwipsPerPixelY '
For no = 0 To iNo - 1
hIcon = ExtractIcon(App.hInstance, "c:\windows\explorer.exe", no) ' extractuje ikonicu sa indexom no
DrawIcon Me.hdc, 40 * no, 10, hIcon ' iscrtava jednu do druge
Next no
Me.Refresh
End If
End Sub
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
Private Sub Form_Load()
Dim hIcon As Long, iNo As Long, no As Long
iNo = ExtractIcon(App.hInstance, "c:\windows\explorer.exe", -1) '-1 vraca broj ikonica u fajlu
If Not iNo = 0 Then
Me.AutoRedraw = True: Me.Move 50 * Screen.TwipsPerPixelX, 50 * Screen.TwipsPerPixelY, iNo * 40 * Screen.TwipsPerPixelX, 75 * Screen.TwipsPerPixelY '
For no = 0 To iNo - 1
hIcon = ExtractIcon(App.hInstance, "c:\windows\explorer.exe", no) ' extractuje ikonicu sa indexom no
DrawIcon Me.hdc, 40 * no, 10, hIcon ' iscrtava jednu do druge
Next no
Me.Refresh
End If
End Sub
Potpis
HomePage http://www.eurora3d.com