Tu comunidad de Seguridad Informatica

Creando un Icon Changer en VB6 by Wonderx Info1810 Para ver Todo el contenido del foro es necesario estar Registrado! Creando un Icon Changer en VB6 by Wonderx Info1810
Creando un Icon Changer en VB6 by Wonderx Info1810 Antes de comentar o Aportar es Obligado Leer Las: Reglas | Rules Creando un Icon Changer en VB6 by Wonderx Info1810
Creando un Icon Changer en VB6 by Wonderx Info1810Ya Esta Disponible al publico "LeProject" el Videojuego del Foro Click Aquí Para Ver el Post. Creando un Icon Changer en VB6 by Wonderx Info1810
Creando un Icon Changer en VB6 by Wonderx Info1810Pitbull Security Labs "Extras" Esta Disponible! [ENTRA]Creando un Icon Changer en VB6 by Wonderx Info1810

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1-Slandg- 

-Slandg-
Administrador
Administrador

http://www.pitbullsecurity.org
Vie Nov 12, 2010 9:07 pm
Este tutorial lo creo Wonderx Administrador de MH, asi que gracias a el, aunque es algo muy basico,a muchos que inician en la programacion les servira,

Wonderx escribió:Abren VB6 y crean un form donde pondran 2 textbox, 3 botones y un CommonDialog.

Empecemos!!
El form quedara mas o menos asi.
Creando un Icon Changer en VB6 by Wonderx Imagewraf

Le dan doble click al primer boton que yo lo nombre "Archivo" y pegan el siguiente codigo!

Código:
With CommonDialog1
.DialogTitle = "Select Exe File..."
.Filter = "Executable Files (*.exe)|*.exe"
.ShowOpen
End With

text1.Text = CommonDialog1.FileName



En el segundo boton "Icono" pegan el siguiente codigo.

Código:
With CommonDialog1
.DialogTitle = "Select Icon File..."
.Filter = "Icons (*.ico)|*.ico"
.ShowOpen
End With

text2.Text = CommonDialog1.FileName



En el boton de "Cambiar Icono" pegan el siguiente codigo.
Código:

If ChangeIcon(text1.Text, text2.Text) Then
MsgBox "Icono Cambiado Correctamente!"
Else
MsgBox "Un Error ha Ocurrido!"
End If


Ahora falta el modulo!! Agragan un modulo al proyecto y pegan este codigo.

Código:
Option Explicit

Private Const OPEN_EXISTING As Long = &H3
Private Const INVALID_HANDLE_VALUE As Long = -1
Private Const GENERIC_READ As Long = &H80000000
Private Const FILE_ATTRIBUTE_NORMAL As Long = &H80
Private Const FILE_BEGIN As Long = &H0
Private Const RT_ICON As Long = &H3
Private Const RT_GROUP_ICON As Long = &HE

Private Type ICONDIRENTRY
bWidth As Byte
bHeight As Byte
bColorCount As Byte
bReserved As Byte
wPlanes As Integer
wBitCount As Integer
dwBytesInRes As Long
dwImageOffset As Long
End Type

Private Type ICONDIR
idReserved As Integer
idType As Integer
idCount As Integer
End Type

Private Type GRPICONDIRENTRY
bWidth As Byte
bHeight As Byte
bColorCount As Byte
bReserved As Byte
wPlanes As Integer
wBitCount As Integer
dwBytesInRes As Long
nID As Integer
End Type

Private Type GRPICONDIR
idReserved As Integer
idType As Integer
idCount As Integer
idEntries() As GRPICONDIRENTRY
End Type

Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function ReadFile Lib "kernel32" (ByVal lFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As Any) As Long
Private Declare Function SetFilePointer Lib "kernel32" (ByVal lFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function BeginUpdateResource Lib "kernel32" Alias "BeginUpdateResourceA" (ByVal pFileName As String, ByVal bDeleteExistingResources As Long) As Long
Private Declare Function UpdateResource Lib "kernel32" Alias "UpdateResourceA" (ByVal lUpdate As Long, ByVal lpType As Long, ByVal lpName As Long, ByVal wLanguage As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function EndUpdateResource Lib "kernel32" Alias "EndUpdateResourceA" (ByVal lUpdate As Long, ByVal fDiscard As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Public Function ChangeIcon(ByVal strExePath As String, ByVal strIcoPath As String) As Boolean
Dim lFile As Long
Dim lUpdate As Long
Dim lRet As Long
Dim i As Integer
Dim tICONDIR As ICONDIR
Dim tGRPICONDIR As GRPICONDIR
Dim tICONDIRENTRY() As ICONDIRENTRY

Dim bIconData() As Byte
Dim bGroupIconData() As Byte

lFile = CreateFile(strIcoPath, GENERIC_READ, 0, ByVal 0&, OPEN_EXISTING, 0, ByVal 0&)

If lFile = INVALID_HANDLE_VALUE Then
ChangeIcon = False
CloseHandle (lFile)
Exit Function
End If

Call ReadFile(lFile, tICONDIR, Len(tICONDIR), lRet, ByVal 0&)

ReDim tICONDIRENTRY(tICONDIR.idCount - 1)

For i = 0 To tICONDIR.idCount - 1
Call ReadFile(lFile, tICONDIRENTRY(i), Len(tICONDIRENTRY(i)), lRet, ByVal 0&)
Next i

ReDim tGRPICONDIR.idEntries(tICONDIR.idCount - 1)

tGRPICONDIR.idReserved = tICONDIR.idReserved
tGRPICONDIR.idType = tICONDIR.idType
tGRPICONDIR.idCount = tICONDIR.idCount

For i = 0 To tGRPICONDIR.idCount - 1
tGRPICONDIR.idEntries(i).bWidth = tICONDIRENTRY(i).bWidth
tGRPICONDIR.idEntries(i).bHeight = tICONDIRENTRY(i).bHeight
tGRPICONDIR.idEntries(i).bColorCount = tICONDIRENTRY(i).bColorCount
tGRPICONDIR.idEntries(i).bReserved = tICONDIRENTRY(i).bReserved
tGRPICONDIR.idEntries(i).wPlanes = tICONDIRENTRY(i).wPlanes
tGRPICONDIR.idEntries(i).wBitCount = tICONDIRENTRY(i).wBitCount
tGRPICONDIR.idEntries(i).dwBytesInRes = tICONDIRENTRY(i).dwBytesInRes
tGRPICONDIR.idEntries(i).nID = i + 1
Next i

lUpdate = BeginUpdateResource(strExePath, False)
For i = 0 To tICONDIR.idCount - 1
ReDim bIconData(tICONDIRENTRY(i).dwBytesInRes)
SetFilePointer lFile, tICONDIRENTRY(i).dwImageOffset, ByVal 0&, FILE_BEGIN
Call ReadFile(lFile, bIconData(0), tICONDIRENTRY(i).dwBytesInRes, lRet, ByVal 0&)

If UpdateResource(lUpdate, RT_ICON, tGRPICONDIR.idEntries(i).nID, 0, bIconData(0), tICONDIRENTRY(i).dwBytesInRes) = False Then
ChangeIcon = False
CloseHandle (lFile)
Exit Function
End If

Next i

ReDim bGroupIconData(6 + 14 * tGRPICONDIR.idCount)
CopyMemory ByVal VarPtr(bGroupIconData(0)), ByVal VarPtr(tICONDIR), 6

For i = 0 To tGRPICONDIR.idCount - 1
CopyMemory ByVal VarPtr(bGroupIconData(6 + 14 * i)), ByVal VarPtr(tGRPICONDIR.idEntries(i).bWidth), 14&
Next

If UpdateResource(lUpdate, RT_GROUP_ICON, 1, 0, ByVal VarPtr(bGroupIconData(0)), UBound(bGroupIconData)) = False Then
ChangeIcon = False
CloseHandle (lFile)
Exit Function
End If

If EndUpdateResource(lUpdate, False) = False Then
ChangeIcon = False
CloseHandle (lFile)
End If

Call CloseHandle(lFile)
ChangeIcon = True
End Function
Public Function ExtractIcon(ByVal strExePath As String, ByVal strIcoPath As String) As Boolean
'In Progress
End Function


wonderx escribió:Es todo!! Compilan y ya tiene su propio icon change, Bien sencillo pero a veces es necesario..

Saludos, Comentar es Agradecer!

2oriol414 

oriol414
Usuario
Usuario

Sáb Nov 13, 2010 11:59 am
Si es un tutorial mejor en Tutoriales no? te lo muevo

3david.jose.961 

david.jose.961
Usuario
Usuario

Miér Ago 15, 2012 3:49 am
Carga los iconos solo en 16 bits ..... como podriamos modificarlo para que los cargue a 32bits? c2

4DooNHacker 

DooNHacker
Usuario
Usuario

Dom Ene 12, 2014 6:29 pm
Excelente, gracias por compartir

5Contenido patrocinado 



Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.