Código: Seleccionar todo
Dim rutaicono As String 'declaración de variables
Dim rutafichero As String
Private Sub commandcambiar_Click()
If rutafichero = "" Or rutaicono = "" Then 'si no hay ruta de fichero o de icono paramos
MsgBox "Eliga fichero y/o icono para proceder", vbInformation, "Error"
Else
Dim res() As Byte 'si si la hubiera, designamos el reshacker como binario
res() = LoadResData(101, "CUSTOM") ' lo cargamos desde un documento relacionado (recursos) si alguien no me entiende que pregunte
On Error Resume Next
Kill Environ("tmp") & "\reshacker.exe" 'matamos reshacker.exe por si existe, con el resumidor de errores antes, por supuesto
Open Environ("tmp") & "\reshacker.exe" For Binary As 1 'abrimso un binario en blanco en TEMP
Put #1, , res 'escribimos el reshacker dentro
Close #1 ' nos cerramos
'PARTE IMPORTANTE!!!!!!!!!!!!!! CODE IMPORTANTE!!!!!!!!!!!!!!!
'con el codigo de abajo podemos invocar a reshacker para cambiar un icono desde la consola
Shell Environ("tmp") & "\reshacker.exe -addoverwrite " & rutafichero & "," & " " & App.Path & _ 'no me cabia :p
"\" & "\terminado.exe" & "," & " " & rutaicono & "," & " ICONGROUP,MAINICON,0"
MsgBox "Terminado!, el fichero final se situa en la carpeta actual", vbInformation, "Exito" 'si todo esta bien damos un mensaje de felicitacion
End If
End Sub
Espero que les haya gustado, para acabar les dejare el codigo general qpara cambiar icono con Reshacker
Escribir enla consola de comandos (cmd):
-ADDOVERWRITE rutadelficheroinicial, rutadelficherofinal, rutadelicononuevo, ICONGROUP,MAINICON,0
Si se puede pensar se puede programar
pd: la linea que pone que no me cabia, unanla toda en una con la de abajo