Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Cambiar icono del systray?

Estas en el tema de Cambiar icono del systray? en el foro de Visual Basic clásico en Foros del Web. Hola, tengo una aplicacion casi terminada, salvo por una cosa. Esta pone un icono en el systray como me lo explicaron aca: http://www.forosdelweb.com/showthread.php?t=349547 El problema ...
  #1 (permalink)  
Antiguo 08/01/2006, 23:32
Avatar de (Pato)²  
Fecha de Ingreso: noviembre-2005
Mensajes: 130
Antigüedad: 18 años, 5 meses
Puntos: 1
Pregunta Cambiar icono del systray?

Hola, tengo una aplicacion casi terminada, salvo por una cosa.
Esta pone un icono en el systray como me lo explicaron aca: http://www.forosdelweb.com/f69/2-preguntitas-349547/
El problema es que el icono sea algo intermitente, osea que cambie de uno a otro.
Alguien sabe como hace eso?

Muchas Gracias!
  #2 (permalink)  
Antiguo 09/01/2006, 07:01
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Cita:
Iniciado por (Pato)²
Hola, tengo una aplicacion casi terminada, salvo por una cosa.
Esta pone un icono en el systray como me lo explicaron aca: http://www.forosdelweb.com/showthread.php?t=349547
El problema es que el icono sea algo intermitente, osea que cambie de uno a otro.
Alguien sabe como hace eso?

Muchas Gracias!
Bueno, modifiqué el código pa' q' pudiera modificarse el Ícono, lo único q' necesitas es poner 2 Pictures, Picture1 y Picture2 en los cuales pondrás los Iconos q' hayan de Intercambiarse y otro Picture: sysTrayImage con todas las propiedades por Defecto... Además de un Timer cuya propiedad Interval será la frecuencia con la q' quieres q' se intercambien los Íconos (y los Menús claro, el Emergente, para Salir, Ocultar y Mostrar ).
En un Módulo:
Código:
Public Const SHOW_ICON As Long = &H0&
Public Const MODIFY_ICON As Long = &H1&
Public Const HIDE_ICON As Long = &H2&
Public Const RCLICK As Long = &H205
Public Const DBLCLICK = &H203
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
Private Declare Function Shell_NotifyIconA Lib "SHELL32" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Public Function SysTrayIcon(Picture As PictureBox, ByVal ShowMode As Long, ByVal Name As String)
Dim SysIcon As NOTIFYICONDATA
SysIcon.cbSize = Len(config)
SysIcon.hwnd = Picture.hwnd
SysIcon.uId = 1
SysIcon.uFlags = &H1 Or &H2 Or &H4
SysIcon.uCallBackMessage = &H200
SysIcon.hIcon = Picture.Picture
SysIcon.szTip = Name & String(64, Chr(0))
SysTrayIcon = Shell_NotifyIconA(ShowMode, SysIcon)
End Function
En el Form:
Código:
Private CancelUnload As Integer
Private Sub Form_Load()
CancelUnload = -1
Set sysTrayImage.Picture = Picture1.Picture
SysTrayIcon sysTrayImage, SHOW_ICON, "Proyecto 1"
cancelar = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
Cancel = CancelUnload
Visible = False
If Cancel = 0 Then
    SysTrayIcon sysTrayImage, HIDE_ICON, "Proyecto 1"
End If
End Sub
Private Sub sysTrayImage_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Select Case (X / Screen.TwipsPerPixelX)
Case DBLCLICK
    Visible = True
    SetFocus
Case RCLICK
    PopupMenu mnuMerge
End Select
End Sub
Private Sub mnuShow_Click()
Visible = True
SetFocus
End Sub
Private Sub mnuHide_Click()
Visible = False
End Sub
Private Sub mnuExit_Click()
CancelUnload = False
Unload Me
End Sub
Private Sub Timer1_Timer()
If sysTrayImage.Picture.Handle = Picture1.Picture.Handle Then
    Set sysTrayImage.Picture = Picture2.Picture
Else
    Set sysTrayImage.Picture = Picture1.Picture
End If
SysTrayIcon sysTrayImage, MODIFY_ICON, "Proyecto 1"
End Sub
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 09/01/2006, 14:12
Avatar de (Pato)²  
Fecha de Ingreso: noviembre-2005
Mensajes: 130
Antigüedad: 18 años, 5 meses
Puntos: 1
Muchas gracias, me funciono todo, salvo que aqui: SysIcon.cbSize = Len(config)
Tube que remplazar Config por NOTIFYICONDATA


Adios!
  #4 (permalink)  
Antiguo 09/01/2006, 14:34
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Cita:
Iniciado por (Pato)²
Muchas gracias, me funciono todo, salvo que aqui: SysIcon.cbSize = Len(config)
Tube que remplazar Config por NOTIFYICONDATA


Adios!
Sí, se me olvidó...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:18.