Task Bar

17/07/2003 - 06:51 por Miguel E. Muñoz | Informe spam
Hola a todos,

Tengo la siguiente inquietud y espero me puedan colaborar
informandome: ¿ Como puedo hacer en Visual Basic para que
un programa al ser ejecutado, aparezca mediante su ícono
en la barra de tareas (especifico, en la esquina inferior
derecha, al lado del reloj) ?

Doy todas esas precisiones, ya que trato de hacerme
comprender mejor y me puedan colaborar.

Agradeciendo de antemano.

Miguel E. Muñoz

Preguntas similare

Leer las respuestas

#1 Softjaen
17/07/2003 - 08:02 | Informe spam
"Miguel E. Muñoz" escribió:

¿ Como puedo hacer en Visual Basic para que
un programa al ser ejecutado, aparezca mediante su ícono
en la barra de tareas (especifico, en la esquina inferior
derecha, al lado del reloj) ?



Hola, Miguel:

Me imagino que lo que deseas es que aparezca el icono de tu programa en el
área del «Systray», al lado del reloj.

Si es así, inserta un «PictureBox» en el formulario con el icono que deseas
que aparezca. Pega el siguiente código en la sección «Declaraciones» y pulsa
F5.

Option Explicit

' estructura para la funcion Shell_NotifyIcon
Private 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 NotIcon As NOTIFYICONDATA

Private Declare Sub Shell_NotifyIcon Lib "shell32.dll" Alias
"Shell_NotifyIconA" _
(ByVal dwMessage As Long, lpData As NOTIFYICONDATA)

Private Declare Sub lstrcpy Lib "kernel32" Alias "lstrcpyA" _
(ByVal lpString1 As String, ByVal lpString2 As String)

Private Sub IconAdd(hwnd As Long, ico As Long, tip As String)

' comando para Shell_NotifyIcon
Const NIM_ADD = &H0

' Flags para NOTIFYICONDATA
Const NIF_MESSAGE = &H1
Const NIF_ICON = &H2
Const NIF_TIP = &H4

' Eventos del Mouse
Const WM_MOUSEMOVE = &H200

With NotIcon
.cbSize = 88
.hwnd = hwnd
.uID = 1
.uFlags = NIF_ICON + NIF_MESSAGE + NIF_TIP
.uCallbackMessage = WM_MOUSEMOVE
.hIcon = ico
lstrcpy .szTip, tip
End With

Shell_NotifyIcon NIM_ADD, NotIcon

End Sub

Private Sub Form_Load()
IconAdd Picture1.hwnd, Picture1.Picture, App.Title
End Sub

Un saludo.

Enrique Martínez
[MS MVP - VB]
Respuesta Responder a este mensaje
#2 Softjaen
17/07/2003 - 08:39 | Informe spam
Como ampliación a mi mensaje, me he dado cuenta que es mejor que asignes un
icono al formulario (propiedad «Icon»), en lugar de utilizar un control
«PictureBox». Por tanto, el código se quedaría así:

Private Sub Form_Load()
IconAdd Form1.hwnd, Form1.Icon, App.Title
End Sub

Si deseas que desaparezca el icono cuando cierres la aplicación, inserta el
siguiente código:

Private Sub IconDelete()
' comandos para Shell_NotifyIcon
Const NIM_DELETE = &H2

Shell_NotifyIcon NIM_DELETE, NotIcon
End Sub

Private Sub Form_Unload(Cancel As Integer)
' Destruimos el icono
IconDelete
End Sub

Si por casualidad deseas añadir un menú para que éste aparezca cuando pulsas
el botón derecho del ratón, crea un menú normal con el «Editor de menús» y
establece su propiedad «Visible = False». Escribe el código necesario en los
distintos eventos «Click» del menú e inserta el siguiente código:

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, _
X As Single, Y As Single)

' Si se ha pulsado el botón derecho...
If Button = 2 Then
' ... mostramos el menú
Me.PopupMenu Mi_Menu
End If

End Sub

Creo que con éste código añadido, la aplicación se quedará más vistosa. :-)

Enrique Martínez
[MS MVP - VB]
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida