Red de conocimientos turísticos - Información de alquiler - ¿Cómo minimizar el siguiente código vb en la bandeja? ¿Y se puede restaurar?

¿Cómo minimizar el siguiente código vb en la bandeja? ¿Y se puede restaurar?

Poner?Module1.bas

Opción?Explícito

'Icono de bandeja'

Tipo?NOTIFYICONDATA

cbSize?As?Long

hwnd?As?Long

uId?As?Long

uFlags?As?Long

ucallbackMessage ?As?Long

hIcon?As?Long

szTip?As?String?*?64

Fin?Tipo

Público ?=? &H0

¿Público?Const?NIM_MODIFY?=? &H1

¿Público?Const?NIM_DELETE?= &H2

¿Público?Const?WM_MOUSEMOVE?= ? &H200

¿Público?Const?NIF_MESSAGE?=? &H1

¿Público?Const?NIF_ICON?=?&H2

¿Público?Const?NIF_TIP?=?

¿Público?¿Declarar?Función?Shell_NotifyIcon?Lib?"shell32"? "Shell_NotifyIconA"?_

(ByVal?dwMessage?As?Long,?pnid?As?NOTIFYICONDATA)?As?Boolean

Público?Declarar?Función?EnviarMensaje?Lib?" usuario32"? ¿"SendMessageA"?_

(ByVal?hwnd?As?Long,?ByVal?wMsg?As?Long,?ByVal?wParam?As?Long,?lParam?As?Any)?As?Long

Public?Const?LB_ SETHORIZONTALEXTENT?=?&H194

Public?Const?LB_ITEMFROMPOINT?=?&H1A9

'Reconstruir ventana

¿Público?Declarar?Función?GetWindowLong?Lib?"user32"?"GetWindowLongA"?(ByVal?hwnd?As?Long,?ByVal?nIndex?As?Long)?As?Long?'//////// //, obtienes la estructura especificada del formulario especificado

Public?Declare?Function?SetWindowLong?Lib?"user32" ?Alias?"SetWindowLongA"?(ByVal?hwnd?As?Long,?ByVal? nIndex ?As?Long,?ByVal?dwNewLong?As?Long)?As?Long?'//////////, similar al anterior, pero se usa para establecer

Público ?Declarar ?Función?RegisterWindowMessage?Lib? "usuario32"? ¿"RegisterWindowMessageA"?(ByVal?lpString?As?String)?As?Long?'////////// RegisterSystemMessage

Público?Declarar?F

¿unción?CallWindowProc?Lib?"usuario32"? CallWindowProcA"?(ByVal?lpPrevWndFunc?As?Long,?ByVal?hwnd?As?Long,?ByVal?msg?As?Long,?ByVal?wParam?As?Long,?ByVal?lParam?As?Long)?As ?Long?'//////// // Procesar mensajes

'Public?p>

'Public?Function?wwndproc(ByVal?hwnd?As?Long, ?ByVal?msg?As?Long,?ByVal?wParam?As?Long,?ByVal?lParam?As?Long)?As?Long

'Público?Const?GWL_WNDPROC?=?(-4 )?'////////// Obtener la dirección de la función de ventana de esta ventana

Public?lngProOld?As?Long

Public?lngMsgBarRester?As?Long

p>

¿Pública?WM_TASKBARCREATED?As?Long

Pública?t?As?NOTIFYICONDATA

Pública?Función?wndproc(ByVal?hwnd?As?Long, ?ByVal?msg?As?Long,?ByVal?wParam?As?Long,?ByVal?lParam?As?Long)?/////////// Nuevo icono de bandeja

Fin ?if

wndproc?=?CallWindowProc(lngProOld,?hwnd,?msg,?wParam,?lParam)?'//////////, si el formulario no puede manejar otros mensajes

¿Fin?Función

Colocarlo en Private?Sub?Form_Load() de Form1

'Establecer propiedades del icono de bandeja

Utilice ?t

.cbSize?=?Len(t)

.hwnd?=?pic.hwnd

.uId?=?1&

uFlags?=?NIF_ICON?o NIF_TIP?o NIF_MESSAGE

.ucallbackMessage?=?WM_ MOUSEMOVE

.hIcon?=?pic.Picture

.szTip? =?"----O(∩_∩)O Abrir rápidamente la carpetaO(∩_∩)O----" &?Chr$(0)

Fin ?Con

Shell_NotifyIcon?NIM_ADD,?t

lngProOld?=?GetWindowLong(Me.hwnd,?GWL_WNDPROC)?//////////Obtener la dirección de la función de formulario y guárdelo

Llame a SetWindowLong(Me.hwnd,?GWL_WNDPROC,?AddressOf?wndproc)?/////////// para ubicar el mensaje en la función wndproc (proceso )

lngMsgBarRester?=?RegisterWindowMessage("TaskBarCreated")?'/////////// Registre el mensaje TaskBarCreated.

Coloque el siguiente código en Private?Sub?Form_Unload(Cancel?As?Integer) en Form

With?t

.cbSize?=?Len ( t)

.hwnd?=?pic.hwnd

.uId?=?1&

¿Fin?Con

Shell_NotifyIcon? ,?

El código muestra más, agregue "..." ícono de reconstrucción de código. Efecto: cuando finaliza el proceso explorer.exe, el icono de la barra de tareas no se mostrará, pero el programa aún se está ejecutando. Muchos programas tienen este problema. Entonces, el código para reconstruir el ícono se agrega al código. Cuando explorer.exe finalice y se cree nuevamente, ¿se reconstruirá el ícono de la barra de tareas y aún se mostrará? Captura de pantalla