Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Lambda en 9 Junio 2006, 20:06 pm



Título: Al minimizar k se convierta en un notyicon
Publicado por: Lambda en 9 Junio 2006, 20:06 pm
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


Título: Re: Al minimizar k se convierta en un notyicon
Publicado por: Lambda en 9 Junio 2006, 20:12 pm
weno ya lo solucione xD y sin buskar en google :P xD


Código:
Private Sub Form_Resize()
If form1.WindowState = "1" Then
form1.Hide
NotifyIcon.SetEnabled True
End If
End Sub


Título: Re: Al minimizar k se convierta en un notyicon
Publicado por: renga73 en 10 Junio 2006, 03:41 am
Puse eso y no me funciona me tira error en la linea: NotifyIcon.SetEnabled True
Como hiciste??


Título: Re: Al minimizar k se convierta en un notyicon
Publicado por: _Sergi_ en 10 Junio 2006, 03:48 am
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.


Título: Re: Al minimizar k se convierta en un notyicon
Publicado por: Lambda en 10 Junio 2006, 13:31 pm
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


Título: Re: Al minimizar k se convierta en un notyicon
Publicado por: renga73 en 10 Junio 2006, 17:54 pm
lambda eso es para .net o VB6, y en todo caso me podrias pasar NotifyIcon.ocx q no la puedo conseguir por ningun lado


Título: Re: Al minimizar k se convierta en un notyicon
Publicado por: _Sergi_ en 10 Junio 2006, 21:28 pm
Si quieres que te ayudemos, necesitamos NotifyIcon.ocx

Un saludo.


Título: Al minimizar k se convierta en un icono
Publicado por: Red Mx en 11 Junio 2006, 00:46 am
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


Código:
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

Código:
If Form1.WindowState = 0 or Form1.WindowState = 2 Then
cSysTray1.InTray = false
End If
End Sub
Saludos Red Mx!!!!


Título: Re: Al minimizar k se convierta en un notyicon
Publicado por: NYlOn en 11 Junio 2006, 01:45 am
Si queres evitar el uso del OCX podes usar el siguiente codigo.
En un modulo pones:
Código:
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
Código:
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:
Código:
Iconito "Texto", Picture1
[/cide]

Y para quitarlo pones:
BorrarIconito
Código:

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.-


Título: Re: Al minimizar k se convierta en un notyicon
Publicado por: 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..


Título: Re: Al minimizar k se convierta en un notyicon
Publicado por: NYlOn en 12 Junio 2006, 17:45 pm
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...


Título: Re: Al minimizar k se convierta en un notyicon
Publicado por: Red Mx en 12 Junio 2006, 23:43 pm
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


Título: Re: Al minimizar k se convierta en un notyicon
Publicado por: sircid en 10 Julio 2006, 15:19 pm
y como ago que cuando este minimizado me mande un mensaje como este:

(http://img218.imageshack.us/img218/5731/mensaje3yc.jpg)


Título: Re: Al minimizar k se convierta en un notyicon
Publicado por: karmany en 10 Julio 2006, 21:12 pm
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:
Código:
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:
Código:
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..


Título: Re: Al minimizar k se convierta en un notyicon
Publicado por: Red Mx en 10 Julio 2006, 23:01 pm
Que onda bueno no se si te sirva de mi manera es con el control .ocx

va un timer con intervalo de 100

Código:
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


Título: Re: Al minimizar k se convierta en un notyicon
Publicado por: sircid en 11 Julio 2006, 13:09 pm
aun nadie sabe como hacer esto?

(http://img218.imageshack.us/img218/5731/mensaje3yc.jpg)


Título: Re: Al minimizar k se convierta en un notyicon
Publicado por: Red Mx en 11 Julio 2006, 16:59 pm
Vi un ejemplo en la web de microsoft buscale ahi.