Underc0de

Programación General => Visual Basic => Códigos Fuentes => Mensaje iniciado por: Karcrack en Junio 16, 2013, 06:30:45 PM

Título: [VB][Undocumented] LoadUserTile() - Obtener la imagen del usuario
Publicado por: Karcrack en Junio 16, 2013, 06:30:45 PM
Código (vb) [Seleccionar]
Option Explicit
'KERNEL32
Private Declare Function GetVersion Lib "KERNEL32" () As Long
'SHELL32
Private Declare Function SHGetUserPicturePath Lib "SHELL32" Alias "#261" (ByVal pUserOrPicName As Long, ByVal sguppFlags As Long, ByVal pwszPicPath As Long, ByVal picPathLen As Long) As Long
Private Declare Function xp_SHGetUserPicturePath Lib "SHELL32" Alias "#233" (ByVal pUserOrPicName As Long, ByVal sguppFlags As Long, ByVal pwszPicPath As Long) As Long

Private Const SGUPP_CREATEPICTURESDIR = &H80000000

Public Function LoadUserTile() As IPictureDisp
    Dim sPath   As String
   
    sPath = String$(256, vbNullChar)
   
    Select Case (GetVersion() And &HFF)
        Case 5
            Call xp_SHGetUserPicturePath(0, SGUPP_CREATEPICTURESDIR, StrPtr(sPath))
        Case 6
            Call SHGetUserPicturePath(0, SGUPP_CREATEPICTURESDIR, StrPtr(sPath), 256)
    End Select
   
    sPath = Left$(sPath, InStr(1, sPath, vbNullChar) - 1)
   
    Set LoadUserTile = LoadPicture(sPath)
End Function


Para probarlo añade un PictureBox en un form:
Código (vb) [Seleccionar]
Private Sub Form_Load()
    Picture1.Picture = LoadUserTile()
End Sub


Usa un export no documentado de SHELL32.. que varía según el SO en el que estamos... por eso el GetVersion().

saludos
Título: Re:[VB][Undocumented] LoadUserTile() - Obtener la imagen del usuario
Publicado por: Danyfirex en Junio 20, 2013, 11:08:00 AM
@Karcrack este código es tuyo?


lastima que ya te alejaste del vb6 :(

saludos
Título: Re:[VB][Undocumented] LoadUserTile() - Obtener la imagen del usuario
Publicado por: Karcrack en Junio 20, 2013, 12:35:01 PM
Sí que lo es, sí. En realidad no me he alejado tanto, ahora estoy en asuntos más internos de VB6 jugueteando con el compilador y las librerías.

Aunque veréis poco de esas investigaciones ya que las suelo vender :-\ Seguramente durante el verano suelte alguna cosita ::)

Saludos :)
Título: Re:[VB][Undocumented] LoadUserTile() - Obtener la imagen del usuario
Publicado por: Danyfirex en Junio 20, 2013, 03:26:03 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Sí que lo es, sí. En realidad no me he alejado tanto, ahora estoy en asuntos más internos de VB6 jugueteando con el compilador y las librerías.

Aunque veréis poco de esas investigaciones ya que las suelo vender :-\ Seguramente durante el verano suelte alguna cosita ::)

Saludos :)

para mi lo externo por ahora es demasiado  :(

que bien que andes todavía en el vb y que le saques provecho.  ;D


Todavía ando esperando el paper del que hablaste una vez que comenzaste y nunca terminaste.


saludos  Karcrack
Título: Re:[VB][Undocumented] LoadUserTile() - Obtener la imagen del usuario
Publicado por: Karcrack en Junio 20, 2013, 03:44:47 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Todavía ando esperando el paper del que hablaste una vez que comenzaste y nunca terminaste.
Tenía un índice y todo... Ha pasado muchísimo tiempo, he aprendido mucho desde entonces. Ahora me quedaría un paper muy largo jaja

A ver si alguna calurosa noche de verano me viene la inspiración  :P
Título: Re:[VB][Undocumented] LoadUserTile() - Obtener la imagen del usuario
Publicado por: Danyfirex en Junio 20, 2013, 04:06:26 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Todavía ando esperando el paper del que hablaste una vez que comenzaste y nunca terminaste.
Tenía un índice y todo... Ha pasado muchísimo tiempo, he aprendido mucho desde entonces. Ahora me quedaría un paper muy largo jaja

A ver si alguna calurosa noche de verano me viene la inspiración  :P


Ojala haya mucho calor jajajaajajaja. a ver si lo terminas.

el vb6 es viejo pero varios lo han mágico. ¬¬ a ver que magia negra sacas ahorita.


saludos compa.



PD: hace falta un chat room.