Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Thaorius en 16 Julio 2005, 20:11 pm



Título: Barra de tareas
Publicado por: Thaorius en 16 Julio 2005, 20:11 pm
Hola gente!.

Bueno, les cuento que estoy haciendo un hardware pra automatizar mi casa con pics y su respectivo software. Este software tiene que tener opciones de resident shield(se como) y de mostrar un icono en la barra de tareas y a l hacerle doble click, que se abre. Y que al apretarle el boton derecho, muestre un menu contextual.

Tienen idea de como se hace?

Saludos y gracias.


Título: Re: Barra de tareas
Publicado por: {_The_Alwar_} en 16 Julio 2005, 20:38 pm
Claro que se como se hace xaval!!

Pon esto en un modulo
Código:
Public nid As NOTIFYICONDATA
Public Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Public Const WM_CHAR = &H102
Public Const WM_SETTEXT = &HC
Public Const WM_USER = &H400
Public Const WM_KEYDOWN = &H100
Public Const WM_KEYUP = &H101
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_CLOSE = &H10
Public Const WM_COMMAND = &H111
Public Const WM_CLEAR = &H303
Public Const WM_DESTROY = &H2
Public Const WM_GETTEXT = &HD
Public Const WM_GETTEXTLENGTH = &HE
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
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 Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long

Sub InitializeTrayIcon()
With nid
.cbSize = Len(nid)
.hwnd = frmMain.hwnd 'nombre del form que estara minimizado
.uId = vbNull
.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
.uCallBackMessage = WM_MOUSEMOVE
.hIcon = frmMain.Icon 'nombre del formulario que contiene el icono
End With
Shell_NotifyIcon NIM_ADD, nid
End Sub

Y en el formulario que as puesto antes (frmMain)
Código:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim Result As Long
Dim msg As Long
If Me.ScaleMode = vbPixels Then
msg = X
Else
msg = X / Screen.TwipsPerPixelX
End If
Select Case msg
Case 517
Me.PopupMenu MNU 'menu que quieres que se habra
Case 514
Result = SetForegroundWindow(Me.hwnd)
Me.Show
End Select
End Sub

y asi se hace un systray Icon, osea el icono al lado del reloj que es lo que tu quieres nop?


Título: Re: Barra de tareas
Publicado por: Thaorius en 16 Julio 2005, 20:47 pm
Gracias, ahora lo pruebo.

Saludos


Título: Re: Barra de tareas
Publicado por: Thaorius en 16 Julio 2005, 20:52 pm
Te adoro.
Justamente lo que buscaba y como lo buscaba.

Saludos y muchas gracias.


Título: Re: Barra de tareas
Publicado por: {_The_Alwar_} en 17 Julio 2005, 01:16 am
De nada tio! Pa eso estamos