weno lo del icono ya lo tengo pero lo k quiero eske al minimizarse el formulario no se minimize a la barra d tareas o sea k se haga un form1.hide y k el icono apareza dnde ta el reloj
alomejor no me e explicado bien
xD
saludos
weno ya lo solucione xD y sin buskar en google :P xD
Private Sub Form_Resize()
If form1.WindowState = "1" Then
form1.Hide
NotifyIcon.SetEnabled True
End If
End Sub
Puse eso y no me funciona me tira error en la linea: NotifyIcon.SetEnabled True
Como hiciste??
A mi tampoco me funciona (en VB 6.0)
Lo más probable es que se trate de otra versión de VB o que haya mucho más codigo que él no ha posteado.
el notifyicon es un control ocx k le e añadido al programa xD
lo kitais y poneis lo k kiere k haga cuando se minimize
saludos
lambda eso es para .net o VB6, y en todo caso me podrias pasar NotifyIcon.ocx q no la puedo conseguir por ningun lado
Si quieres que te ayudemos, necesitamos NotifyIcon.ocx
Un saludo.
Actulisado el 10/07/06
Caballeros ese tema ya lo respondi una ves es muy facil espero que alguien gurde este post con candado ya que es algo muy recurrido.
Primero nesesitamos el control SysTray.ocx y un ejemplo que mejor que mi reproductor de musica jajaja publisidad bueno descargatelo ahi tiene el control que ocuparemos.
Descargar (http://ladinastia.webcindario.com/redmusic.exe)
ya que tienes el control no te preocupes mi empaquetado lo registra
se econtrara en la carpeta por defalut es
c:\Archivos de programa\Red Music
listo ta gueno abre tu VB de ahi en agregar componentes agrega el "systray icon control" agregalo de ahi pegale uno al form de ahi en la propiedades fijate bien en tray tip pon el nombre de tu proyecto asi cuando este el icono junto al reloj al pasar por ahi diga "EL nombre de tu proyecto" bueno si quieres que el icono se vea mientras ejecutas el programa la propiedad In tray cabiala a True a en tray icon dale la ruta de tu icono
para que al minimizar se vea solo has esto mmm ponemos un timer con intervalo de 100 ahi ponemos lo siguiente
Private Sub Timer1_Timer()
If Form1.WindowState = 1 Then
cSysTray1.InTray = True
End If
End Sub
listo para ocultar el icono pon en ese mismo timer
If Form1.WindowState = 0 or Form1.WindowState = 2 Then
cSysTray1.InTray = false
End If
End Sub
Saludos Red Mx!!!!
Si queres evitar el uso del OCX podes usar el siguiente codigo.
En un modulo pones:
Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, ByRef lpData As NOTIFYICONDATA) As Long
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 'Borrar si no se quiere animar la imagen
Public Const NIM_DELETE = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_RBUTTONUP = &H205
Dim IC As NOTIFYICONDATA
Public Sub Iconito(Tip As String, Foto As PictureBox)
IC.cbSize = Len(IC)
IC.hwnd = Foto.hwnd
IC.uID = 1&
IC.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
IC.uCallbackMessage = WM_LBUTTONDOWN
IC.hIcon = Foto.Picture
IC.szTip = Tip & Chr(0)
Shell_NotifyIcon NIM_ADD, IC
End Sub
Public Sub BorrarIconito()
Shell_NotifyIcon NIM_DELETE, IC
End Sub
Y en el evento MouseDown de un PictureBox (que contiene la imagen que va a aparecer en la barra de tareas) pones:
NOTA: La imagen tiene que ser .ICO
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim msg As Integer
msg = X / Screen.TwipsPerPixelX
If msg = WM_LBUTTONDBLCLK Then
MsgBox "Boton Izquierdo doble click."
ElseIf msg = WM_RBUTTONUP Then
MsgBox "Boton Derecho un click."
End If
End Sub
Para usarlo ponemos simplemente:
Iconito "Texto", Picture1
[/cide]
Y para quitarlo pones:
BorrarIconito
Es importante que al cerrar el programa se borre el icono ya que sino va a quedar visible (al pasar el mouse desaparece, pero es mejor borrarlo).
Espero que te sirva, saludos.-
Nose por que siempre que se resuelve una duda hay 2 opciones..
La larga con 8 modulos y 300 lineas
y la otra de la corta pero poniendole "algo" al programa.. en fin xD..
PD: Red MX, el reproductor esta muy bueno la verdad..
1ro: Es solo 1 modulo, que tiene menos de 40 lineas.
2do: Ese 'algo' que le pones al programa es un control OCX. La consecuencia de agregar este OCX es que va a tener que estar junto al programa todo el tiempo, por lo que aumentara de tamaño y ensima vas a tener 2 archivos en vez de uno, lo que disminuye la comodiad.
3ro: Si no aplicas lo que aprendes, te vas a terminar olvidando de las cosas o directamente, no vas a aprender...
Cita de: kuki06 en 12 Junio 2006, 08:19 AM
Nose por que siempre que se resuelve una duda hay 2 opciones..
La larga con 8 modulos y 300 lineas
y la otra de la corta pero poniendole "algo" al programa.. en fin xD..
PD: Red MX, el reproductor esta muy bueno la verdad..
Gracias !!!!
----------
yo pienso que con el ocx se me ase mas facil que con el modulo
y como ago que cuando este minimizado me mande un mensaje como este:
(http://img218.imageshack.us/img218/5731/mensaje3yc.jpg)
NYlOn he probado tu código..
Estoy intentando que cuando se haga dobleclick en el icono se vuelva a mostrar el formulario..
No sé cómo lo tendrás tú, o si lo han probado los demás pero yo hago esto y no resulta:
Private Sub Form_Resize()
If Form1.WindowState = "1" Then
Form1.Hide
Iconito "Ejemplo..", Picture1
End If
End Sub
Con esto de arriba consigo que mi form1 se oculte y aparezca el icono. Hasta aquí bien..
Y luego para que cuando haga dobleclick en el icono, desaparezca el icono y aparezca mi form, hago esto otro:
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim msg As Integer
msg = X / Screen.TwipsPerPixelX
If msg = WM_LBUTTONDBLCLK Then
MsgBox "Boton Izquierdo doble click."
Form1.Show
Form1.WindowState = 0
BorrarIconito
End If
End Sub
Todo lo demás del módulo lo he copiado bien.. El resultado es que el icono desaparece pero el formulario no aparece.. Se queda oculto.. Cómo has solucionado esto?? Gracias..
Que onda bueno no se si te sirva de mi manera es con el control .ocx
va un timer con intervalo de 100
Private Sub Timer1_Timer()
If WindowState = 1 Then
cSysTray1.InTray = True
End If
If WindowState = 0 Then
cSysTray1.InTray = False
End If
Timer1.Enabled = False
Timer1.Enabled = True
End Sub
con ese codigo manipulas el icono visible cuando se minimisa e oculto cuando se muestra el link del archivo .ocx ya esta actualisado de nuevo
Saludos Red Mx
aun nadie sabe como hacer esto?
(http://img218.imageshack.us/img218/5731/mensaje3yc.jpg)
Vi un ejemplo en la web de microsoft buscale ahi.