Resultados 1 al 10 de 10

Tema: Minimiza tu programa como MSN

  1. #1
    Dragonauta con Privilegios
    Fecha de ingreso
    Mar 2009
    Ubicación
    Lima - Perú
    Mensajes
    291
    Gracias
    18
    Agradecido 83 veces en 51 Mensajes

    Predeterminado Minimiza tu programa como MSN

    Bueno pues hace como dos meses alguien me pidio este codigo y ahora lo quise hacer =) es para minimizar asi al estilo msn en la barra de tareas...

    Creen la funcion Form_Resize()

    Código PHP:
    If WindowState vbMinimized Then
    Me
    .Hide
    Me
    .Refresh
    With nid
    .cbSize Len(nid)
    .
    hwnd Me.hwnd
    .uId vbNull
    .uFlags NIF_ICON Or NIF_TIP Or NIF_MESSAGE
    .uCallBackMessage WM_MOUSEMOVE
    .hIcon Me.Icon
    .szTip Me.Caption vbNullChar
    End With
    Shell_NotifyIcon NIM_ADD
    nid
    Else
    Shell_NotifyIcon NIM_DELETEnid
    End 
    If 
    Creen un Modulo llamado Modsystray

    Escriban esto en el modulo:

    Código PHP:
    Option Explicit

    Public Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Longpnid As NOTIFYICONDATA) As Boolean

    Public Const NIM_ADD = &H0
    Public Const NIM_MODIFY = &H1
    Public Const NIM_DELETE = &H2
    Public Const NIF_MESSAGE = &H1
    Public Const NIF_ICON = &H2
    Public Const NIF_TIP = &H4
    Public Const WM_MOUSEMOVE = &H200
    Public Const WM_LBUTTONDOWN = &H201
    Public Const WM_LBUTTONUP = &H202
    Public Const WM_LBUTTONDBLCLK = &H203
    Public Const WM_RBUTTONDOWN = &H204
    Public Const WM_RBUTTONUP = &H205
    Public Const WM_RBUTTONDBLCLK = &H206
    Public Const HWND_TOPMOST = -1

    Public nid As NOTIFYICONDATA

    Public Type NOTIFYICONDATA
    cbSize 
    As Long
    hwnd 
    As Long
    uId 
    As Long
    uFlags 
    As Long
    uCallBackMessage 
    As Long
    hIcon 
    As Long
    szTip 
    As String 64
    End Type 

    Ahora solo esto:

    Código PHP:
    Private Sub Form_Unload(Cancel As Integer)
    Shell_NotifyIcon NIM_DELETEnid
    End
    End Sub

    Private Sub mnuexit_Click()
    Unload Me
    End Sub

    Private Sub mnuRestore_Click()
    WindowState vbNormal
    Me
    .Show
    End Sub 
    Ahora si ya tienen su codigo listo solo pongan un lindo ICON y yap =)


    Saludos
    Dedalo(Dédalo)

    Yo soy Miembro del movimiento software libre...



  2. #2
    Dragonauta con Privilegios
    Fecha de ingreso
    Aug 2008
    Ubicación
    Chihuahua, México
    Mensajes
    210
    Gracias
    2
    Agradecido 38 veces en 12 Mensajes

    Predeterminado

    Como complemento, pueden sustituir Me.Caption por lo que quieran que aparezca al poner el ratón sobre el ícono en la barra de tareas

    Código:
    .szTip = Me.Caption & vbNullChar
    También pueden usar la propiedad Me.Hide para ocultar el formulario de la barra de tareas y que solo aparezca como ícono.

    ...
    Si quieren hacerlo más visual aún, pueden configurarlo para que también aparezca un globo informativo agregando lo siguiente al modulo principal

    Unas constantes:
    Código:
    Public Const WM_USER = &H400
    Public Const NIN_BALLOONSHOW = (WM_USER + 2)
    Public Const NIN_BALLOONHIDE = (WM_USER + 3)
    Public Const NIN_BALLOONTIMEOUT = (WM_USER + 4)
    Public Const NIN_BALLOONUSERCLICK = (WM_USER + 5)
    Estas declaraciones:
    Código:
    Public Declare Function Shell_NotifyIcon Lib "shell32.dll" _
       Alias "Shell_NotifyIconA" _
      (ByVal dwMessage As Long, _
       lpData As NOTIFYICONDATA) As Long
    
    Public Declare Function GetFileVersionInfoSize Lib "version.dll" _
       Alias "GetFileVersionInfoSizeA" _
      (ByVal lptstrFilename As String, _
       lpdwHandle As Long) As Long
    
    Public Declare Function GetFileVersionInfo Lib "version.dll" _
       Alias "GetFileVersionInfoA" _
      (ByVal lptstrFilename As String, _
       ByVal dwHandle As Long, _
       ByVal dwLen As Long, _
       lpData As Any) As Long
       
    Public Declare Function VerQueryValue Lib "version.dll" _
       Alias "VerQueryValueA" _
      (pBlock As Any, _
       ByVal lpSubBlock As String, _
       lpBuffer As Any, _
       nVerSize As Long) As Long
    
    Public Declare Sub CopyMemory Lib "kernel32" _
       Alias "RtlMoveMemory" _
      (Destination As Any, _
       Source As Any, _
       ByVal Length As Long)
    Y en el formulario principal:
    Código:
    '---------------------------------------------------'
    '---- RUTINA PARA CONFIGURAR GLOBO INFORMATIVO -----'
    '---------------------------------------------------'
    Private Sub ShellTrayModifyTip(nIconIndex As Long)
    
        If NOTIFYICONDATA_SIZE = 0 Then SetShellVersion
        With nid
          .cbSize = NOTIFYICONDATA_SIZE
          .hWnd = Me.hWnd
          .uID = APP_SYSTRAY_ID
          .uFlags = NIF_INFO
          .dwInfoFlags = nIconIndex
          .szInfoTitle = "Este es un globo informativo" & vbNullChar
          .szInfo = "Descripción globo informativo" & vbNullChar
       End With
    
       'Mostramos el globo informativo
       Call Shell_NotifyIcon(NIM_MODIFY, nid)
    End Sub
    Y con esto tenemos listo nuestro globo informativo
    ballontip

    Slds

  3. Los siguientes 2 Usuarios dicen Gracias a Skorpyo por este util aporte:

    Epsilon (04-15-2009), sm4c (08-10-2009)

  4. #3
    Dragonauta con Privilegios
    Fecha de ingreso
    Mar 2009
    Ubicación
    Lima - Perú
    Mensajes
    291
    Gracias
    18
    Agradecido 83 veces en 51 Mensajes

    Predeterminado

    mm gracias por complementar mi post =) estan buenos tus codes =)


    Saludos y Gracias
    Dedalo(Dédalo)

  5. #4
    Dragonauta en Proceso
    Fecha de ingreso
    Aug 2008
    Ubicación
    Al infinito y mas alla...XD
    Mensajes
    64
    Gracias
    14
    Agradecido 7 veces en 5 Mensajes

    Predeterminado

    bueno muchachos me parece muy buena la informacion pero me podrian eexplicar si no fuera mucha molestia por donde empezar para aprender visual basic, y si es posible tambien aqui en win vista se puede utilizar algun programa para poder comenzar con visual basic?
    Última edición por vitaepe; 04-18-2009 a las 08:53 PM Razón: mas comentarios....

  6. #5
    Dragonauta con Privilegios
    Fecha de ingreso
    Mar 2009
    Ubicación
    Lima - Perú
    Mensajes
    291
    Gracias
    18
    Agradecido 83 veces en 51 Mensajes

    Predeterminado

    mmm la verdad te recomiendo vayas con frameworks nomas ya todo está mirando para haya tienes que aprender visual basic.net y comiensa no se mirando tutos en google o en youtube a mi lo que me enseño un gran brother que le dicen "prometeo" es que google te muestra todo...

    Saludos
    Dedalo(Dèdalo)

  7. #6
    Recien Nacido
    Fecha de ingreso
    Mar 2009
    Mensajes
    7
    Gracias
    5
    Agradecido 0 veces en 0 Mensajes

    Predeterminado

    grasias .....por los codgos pero podrian cologarlos en otra forma q no entiendo muy bien pero grascias.....estan bien..................aunque no entienda mucho la estructura de contrucion de cada uno o si son el mismo.................
    http://badware.netii.net/ - Security Consulting
    proyecto sin sentido y sin orientacion..........

  8. #7
    Dragonauta con Privilegios
    Fecha de ingreso
    Aug 2008
    Ubicación
    Chihuahua, México
    Mensajes
    210
    Gracias
    2
    Agradecido 38 veces en 12 Mensajes

    Predeterminado

    no son el mismo código, ambos son para efectos distintos .. son más bien complementos.

    en que forma te servirían más? .. a fin de cuentas son códigos para hacer un copy/paste ... la escencia de esto es que lo tomen como base e investiguen para que sirve cada rutina .. a mi manera de pensar no se debe reinventar la rueda .. pero si se debe conocer al menos como se fabrico.. en otras palabras, no puse un programa 100% funcional porque así no se enfocarían en comprender el concepto ni la idea...

    ... es mi punto de vista personal


  9. #8
    Dragonauta con Privilegios
    Fecha de ingreso
    Mar 2009
    Ubicación
    Lima - Perú
    Mensajes
    291
    Gracias
    18
    Agradecido 83 veces en 51 Mensajes

    Predeterminado

    tienes toda la razon estos son solo codigos para hacer copy/paste y quiero compartir la mayoria de codigos que pueda por que me gusta que la gente comparta sus codigos que un usuario pueda modificar su code a su gusto =) por eso yo pongo todo tipo de codigos y skorpyo te agradesco por apoyarme con este topic =)

  10. #9
    Recien Nacido
    Fecha de ingreso
    May 2009
    Mensajes
    1
    Gracias
    1
    Agradecido 0 veces en 0 Mensajes

    Predeterminado

    Muy bueno el código... Me será útil para mis aplicaciones...

  11. #10
    Dragonauta con Privilegios
    Fecha de ingreso
    Mar 2009
    Ubicación
    Lima - Perú
    Mensajes
    291
    Gracias
    18
    Agradecido 83 veces en 51 Mensajes

    Predeterminado

    muchas gracias para eso está y si necesitas ayuda en otra cosa no dudes en pedirla...

    saludos
    Dedalo(Dédalo)

Visitantes encuentran esta página buscando por:

notifyicondata_size = visual studio 2008

Etiquetas para este tema

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •