Al programar en VB, minimice el programa en la bandeja y actívelo automáticamente en el escritorio después de un período de tiempo. ¿Cómo convertirlo en la capa superior del escritorio?
Función de declaración privada Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage siempre, lpData como NOTIFYICONDATA) Siempre
Función de declaración privada SetWindowPos Lib " user32 " (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const NIM_ADD = &H0 'Agregar un ícono a la barra de tareas
Private Const NIM_DELETE = &H2 'Eliminar el ícono de la barra de tareas
Private Const NIM_MODIFY = &H1 'Modificar la información del ícono en la barra de tareas
Private Const WM_MOUSEMOVE = &H200 'Mueva el mouse al ícono. H40
Tipo privado NOTIFYICONDATA
cbSize As Long 'El tamaño de esta estructura de datos
hwnd As Long 'El identificador de ventana para procesar el icono en la barra de tareas
uId As Long 'Identificador del icono definido en la barra de tareas
uFlags As Long 'control de función del icono de la barra de tareas, puede ser una combinación de los siguientes valores (normalmente incluye todos valores)
ucallbackMessage As Long 'El valor del mensaje intercambiado entre el icono de la barra de tareas y la ventana que procesa el mensaje está determinado por hWnd
hIcon As Long 'El identificador de control del icono en la barra de tareas
szTip As String * 64 'Mensaje de solicitud de icono
Tipo de finalización
Private Const NIF_MESSAGE = & H1 'NIF_MESSAGE significa enviar un mensaje de control ;
Const Privada NIF_ICON = &H2 'NIF_ICON Indica que el ícono se muestra en la barra de control;
Const Privada NIF_TIP = &H4 'NIF_TIP indica que el ícono en la barra de tareas tiene una dinámica inmediato.
Hora de restauración privada como fecha
Atenuar myData1 como NOTIFYICONDATA
Sub Form_Load() privado
Con myData1
.cbSize = Len( myData1)
.hwnd = Yo.hwnd
.uId = 0
.uFlags = NIF_ICON O NIF_MESSAGE O NIF_TIP
.ucallbackMessage = WM_MOUSEMOVE
.hIcon = Me.Icon.Handle
.szTip = "¡Prueba del programa de bandeja!" & vbNullChar
Terminar con
Shell_NotifyIcon NIM_ADD, myData1
End Sub
Sub privado Form_MouseMove(Botón como entero, x como entero, Mayús como entero, x como entero, x como entero, x como entero, x como entero, x como entero). Desplazar como entero, x como único, y como único)
Atenuar mensaje como largo
Mensaje = x / Screen.Hide
Finalizar si
End Sub
Private Sub Timer1_Timer()
Si DateDiff("n", recoveryTime, Now) = 0 Entonces
Me.WindowState = vbNormal
Me.Show
Me.ScaleMode = 3
SetWindowPos Me.hwnd, HWND_TOPMOST, Me .ScaleLeft, Me.ScaleTop, Me.ScaleLeft, Me.ScaleTop.ScaleTop, Me.ScaleWidth, Me.ScaleHeight, SWP_SHOWWINDOW
Finalizar si
End Sub
'Agregue un control de temporizador y minimícelo para ver el efecto.
'Agrega un control de temporizador y minimízalo.