elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Notificacion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Notificacion  (Leído 1,479 veces)
under!!!

Desconectado Desconectado

Mensajes: 44


Ver Perfil
Notificacion
« en: 17 Febrero 2008, 09:10 am »

Hola a todos:

Tengo una enorme pregunta estoy haciendo un pequeño sistema pero necesito que sea visible en la barra de tareas (sysTray creo se llama), hasta ahi todo bien

El problema es que quiero que aparezca un menu contextual al dar clic derecho sobre el icono de notificacion.... alguien podria asesorarme.

De antemano muchas gracias

este es mi codigo:
Código
  1. Option Explicit
  2. 'Estructura NOTIFYICONDATA para usar con Shell_NotifyIcon
  3. Private Type NOTIFYICONDATA
  4.   cbSize As Long
  5.   hWnd As Long
  6.   uID As Long
  7.   uFlags As Long
  8.   uCallbackMessage As Long
  9.   hIcon As Long
  10.   szTip As String * 128
  11.   dwState As Long
  12.   dwStateMask As Long
  13.   szInfo As String * 256
  14.   uTimeout As Long
  15.   szInfoTitle As String * 64
  16.   dwInfoFlags As Long
  17. End Type
  18.  
  19. 'Variable para la estructura anterior
  20. Private sysTray As NOTIFYICONDATA
  21.  
  22.  
  23. 'Constantes
  24. Private Const NOTIFYICON_VERSION = 3
  25. Private Const NOTIFYICON_OLDVERSION = 0
  26.  
  27. Private Const NIM_ADD = &H0
  28. Private Const NIM_MODIFY = &H1
  29. Private Const NIM_DELETE = &H2
  30.  
  31. Private Const NIM_SETFOCUS = &H3
  32. Private Const NIM_SETVERSION = &H4
  33.  
  34. Private Const NIF_MESSAGE = &H1
  35. Private Const NIF_ICON = &H2
  36. Private Const NIF_TIP = &H4
  37.  
  38. Private Const NIF_STATE = &H8
  39. Private Const NIF_INFO = &H10
  40.  
  41. Private Const NIS_HIDDEN = &H1
  42. Private Const NIS_SHAREDICON = &H2
  43.  
  44. Private Const NIIF_NONE = &H0
  45. Private Const NIIF_WARNING = &H2
  46. Private Const NIIF_ERROR = &H3
  47. Private Const NIIF_INFO = &H1
  48. Private Const NIIF_GUID = &H4
  49.  
  50. Private Const WM_MOUSEMOVE = &H200
  51. Private Const WM_LBUTTONDOWN = &H201
  52. Private Const WM_LBUTTONUP = &H202
  53. Private Const WM_LBUTTONDBLCLK = &H203
  54. Private Const WM_RBUTTONDOWN = &H204
  55. Private Const WM_RBUTTONUP = &H205
  56. Private Const WM_RBUTTONDBLCLK = &H206
  57.  
  58. Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" _
  59. (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
  60. Private Sub Form_Activate()
  61. Dim msj_txt As String
  62. Dim msj_titulo As String
  63. msj_txt = "Bienvenido a KeepMe. La aplicación está ahora en ejecución"
  64. msj_titulo = "Sistema KeepMe"
  65.  
  66. With sysTray
  67.        .cbSize = Len(sysTray)
  68.        .hWnd = Me.Picture1.hWnd
  69.        .uID = vbNull
  70.        .uFlags = NIF_ICON Or NIF_INFO Or NIF_MESSAGE Or NIF_TIP
  71.        .uCallbackMessage = WM_MOUSEMOVE
  72.        .hIcon = Me.Picture1.Picture
  73.        .szTip = " Acá colocar el toolTip " & vbNullChar
  74.        .dwState = 0
  75.        .dwStateMask = 0
  76.   End With
  77.  
  78.   'Notifica en el systray
  79.   Shell_NotifyIcon NIM_ADD, sysTray
  80.  
  81.  
  82. With sysTray
  83.        .cbSize = Len(sysTray)
  84.        .hWnd = Picture1.hWnd
  85.        .uID = vbNull
  86.        .uFlags = NIF_ICON Or NIF_INFO Or NIF_MESSAGE Or NIF_TIP
  87.        .uCallbackMessage = WM_MOUSEMOVE
  88.        .hIcon = Me.Picture1
  89.        .szTip = "KeepMe Activado" & vbNullChar
  90.        .dwState = 0
  91.        .dwStateMask = 0
  92.        .szInfo = msj_txt & Chr(0)
  93.        .szInfoTitle = msj_titulo & Chr(0)
  94.        .dwInfoFlags = NIIF_INFO
  95.        .uTimeout = 100
  96.   End With
  97.   'Modifica el ícono con la información
  98.   Shell_NotifyIcon NIM_MODIFY, sysTray
  99.  
  100. End Sub
  101.  
  102. Private Sub Form_Unload(Cancel As Integer)
  103. Shell_NotifyIcon NIM_DELETE, sysTray
  104. End Sub
  105.  



En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: Notificacion
« Respuesta #1 en: 17 Febrero 2008, 16:01 pm »

Yo siempre uso un modulo que hizo Sancho Mazorca un user de este foro, que está bastante bien, te pego el code, por q no encuentro el enlace:

Código:
'*****************************************************************************************************************
'*
'*  Autor: Sancho.Mazorka
'*  Fecha: 8/03/07
'*
'*  Funcion 1: Agrega un icono al SysTray
'*  Funcion 2: Crea un ToolTipText o un BalloonToolTipText
'*
'*  Mail: rhcp_269@hotmail.com
'*  Web: www.aldeamix.com/ocio/harryx  (en construccion)
'*  NOTA: Cualquier cambio echo en este modulo agregando o arreglandolo aviseme y lo pondre
'*  en la web con su nombre, como ayudante.
'*  Parametros:
'*      + AgregarIcono(Me.hWnd, Me.Icon,"Esto es un ToolTipText")
'*      + MostrarGlobo("Titulo del globo", "Texto del globo", "ToolTipText del icono", Informacion)
'*      + CambiarIcono(Me.Icon)
'*      + QuitarIcono()
'*      + TipText("Nuevo ToolTipText")
'*      + EventTray
'*          Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'*          if EventTray(X) = "LEFTDOWN" then MsgBox "Click derecho apretado"
'*          End Sub
'*
'*  NOTA MIA --> Para usar las funciones no poner parentesis ej:
'*          Private Sub Form_Load()
'*          AgregarIcono Me.hWnd, Me.Icon, "Esto es un ToolTipText"
'*          End Sub
'*****************************************************************************************************************

' + + + + + | API | + + + + + '
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean

' + + + + + | TIPO | + + + + + '
Private Type NOTIFYICONDATA
   cbSize As Long
   hWnd As Long
   uID As Long
   uFlags As Long
   uCallbackMessage As Long
   hIcon As Long
   szTip As String * 128
   dwState As Long
   dwStateMask As Long
   szInfo As String * 256
   uTimeout As Long
   szInfoTitle As String * 64
   dwInfoFlags As Long
End Type

'nf_IconData guarda todos los parametros de NITIFYICONDATA
Dim nf_IconData As NOTIFYICONDATA

' + + + + + | CONSTANTES | + + + + + '
'Version
Const NOTIFYICON_VERSION = 3
Const NOTIFYICON_OLDVERSION = 0
'Acciones para el API
Const NIM_ADD = &H0
Const NIM_MODIFY = &H1
Const NIM_DELETE = &H2
'Informacion
Const NIM_SETFOCUS = &H3
Const NIM_SETVERSION = &H4
'Parametros
Const NIF_MESSAGE = &H1
Const NIF_ICON = &H2
Const NIF_TIP = &H4
Const NIF_STATE = &H8
Const NIF_INFO = &H10
Const NIS_HIDDEN = &H1
Const NIS_SHAREDICON = &H2
'Tipos de iconos
Const NIIF_NONE = &H0
Const NIIF_WARNING = &H2
Const NIIF_ERROR = &H3
Const NIIF_INFO = &H1
Const NIIF_GUID = &H4
'Eventos en el icono
Const WM_MOUSEMOVE = &H200
Const WM_LBUTTONDOWN = &H201
Const WM_LBUTTONUP = &H202
Const WM_LBUTTONDBLCLK = &H203
Const WM_RBUTTONDOWN = &H204
Const WM_RBUTTONUP = &H205
Const WM_RBUTTONDBLCLK = &H206

' + + + + + | ENUMERACIONES | + + + + + '
Public Enum IconType
    Ninguno = NIIF_NONE
    Advertencia = NIIF_WARNING
    Error = NIIF_ERROR
    Informacion = NIIF_INFO
    IconoEXE = NIIF_GUID
End Enum

' + + + + + | FUNCIONES | + + + + + '
Sub AgregarIcono(UhWnd As Long, Icono As Long, Optional TipText As String)
'Agregamos un icono al Systray
With nf_IconData
    .cbSize = Len(nf_IconData) 'Tamaño del nf_IconData
    .hWnd = UhWnd 'hWnd del usuario
    .uID = vbNull '?
    .uFlags = NIF_ICON Or NIF_INFO Or NIF_MESSAGE Or NIF_TIP 'Parametros
    .uCallbackMessage = WM_MOUSEMOVE 'Parametros de respuesta al mouse
    .hIcon = Icono 'Icono a poner en el SysTray
    .szTip = TipText & vbNullChar 'ToolTipText del Icono
    .dwState = 0 '?
    .dwStateMask = 0 '?
End With

'Agregamos al SysTray
Shell_NotifyIcon NIM_ADD, nf_IconData
End Sub

Sub MostrarGlobo(Titulo As String, Texto As String, TipText As String, Optional Icono As IconType = IconoEXE)
'Establecemos un texto en el globo
With nf_IconData
    .cbSize = Len(nf_IconData) 'Tamaño del nf_IconData
    .uID = vbNull '?
    .uFlags = NIF_ICON Or NIF_INFO Or NIF_MESSAGE Or NIF_TIP 'Parametros
    .uCallbackMessage = WM_MOUSEMOVE 'Parametros de respuesta al mouse
    .szTip = TipText & vbNullChar 'ToolTipText del globo
    .dwState = 0 '?
    .dwStateMask = 0 '?
    .szInfo = Texto & Chr(0) 'Texto del globo
    .szInfoTitle = Titulo & Chr(0) 'Titulo del globo
    .dwInfoFlags = Icono 'Selecionamos el tipo globo, de informacion en este caso (NIIF_NONE, NIIF_INFO, NIIF_WARNING, NIIF_ERROR)
    .uTimeout = 3000 'Tiempo de espera  (millisec.)
End With
 
'Mostramos el mensaje del globo
Shell_NotifyIcon NIM_MODIFY, nf_IconData
End Sub

Sub CambiarIcono(Icono As Long)
'Establecemos el nuevo icono
nf_IconData.hIcon = Icono
'Establecemos el icono
Shell_NotifyIcon NIM_MODIFY, nf_IconData
End Sub

Sub QuitarIcono()
'Quitamos el icono
Shell_NotifyIcon NIM_DELETE, nf_IconData
End Sub

Public Sub TipText(Mensaje As String)
'Establecemos el nuevo ToolTipText del icono
nf_IconData.szTip = Mensaje & vbNullChar
'Establecemos el nuevo ToolTipText
Shell_NotifyIcon NIM_MODIFY, nf_IconData
End Sub

Function EventTray(mouseX As Single) As String
'Devolvemos el evento echo en el SysTray
Select Case mouseX / Screen.TwipsPerPixelX 'Tomamos las "coordenadas" de lo que hicimos
   Case WM_LBUTTONDOWN
      EventTray = "LEFTDOWN" 'Devolvemos que se apreto el click izquierdo
   Case WM_LBUTTONUP
      EventTray = "LEFTUP" 'Devolvemos que se solto el click izquierdo
   Case WM_LBUTTONDBLCLK
      EventTray = "LEFTDOUBLE" ''Devolvemos que se apreto 2 veces el click izquierdo
   Case WM_RBUTTONDOWN
      EventTray = "RIGHTDOWN" 'Devolvemos que se apreto el click derecho
   Case WM_RBUTTONUP
      EventTray = "RIGHTUP" 'Devolvemos que se solto el click derecho
   Case WM_RBUTTONDBLCLK
      EventTray = "RIGHTDOUBLE" ''Devolvemos que se apreto 2 veces el click derecho
End Select
End Function

Salu2


En línea

under!!!

Desconectado Desconectado

Mensajes: 44


Ver Perfil
Re: Notificacion
« Respuesta #2 en: 18 Febrero 2008, 16:55 pm »

Vale muchas gracias me a ayudado demasiado
En línea

cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: Notificacion
« Respuesta #3 en: 18 Febrero 2008, 17:20 pm »

Si queres podes ver esta clase, esta todo encapsulado el code y es IDE safe, creo que tiene todo o casi todos los comandos funciones y eventos disponibles.

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=68948&lngWId=1
En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ocultar micrófono notificación android
Android
Eiyou 0 2,287 Último mensaje 21 Febrero 2021, 01:11 am
por Eiyou
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines