|
以下代码来自可爱猪(lovelypig43@163.com ),为了使代码更好用,下面的代码在源代码中有删改!
- 'Module1 中
- 'Explorer 崩溃重启后的任务栏图标重建
- '作者 可爱猪
- 'Email:lovelypig43@163.com
- Option Explicit
- Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
- Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
- Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
- Public Const GWL_WNDPROC = (-4)
- Private Const WM_USER = &H400
- Private Const WM_NOTIFYICON = WM_USER + &H100
- Private Const NIF_ICON = &H2
- Private Const NIF_TIP = &H4
- Private Const NIF_MESSAGE = &H1
- Private Const NIM_ADD = &H0
- 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 MsgTaskbarRestart As Long
- Public OldWndProc As Long
- Public ano As NOTIFYICONDATA
- Function WndProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
- If uMsg <> MsgTaskbarRestart Then
- WndProc = CallWindowProc(OldWndProc, hwnd, uMsg, wParam, lParam)
- Else
- MsgBox "请在这里填写添加拖盘图标的代码"
- WndProc = True
- End If
- End Function
复制代码
- 'Form1 中
- 'Explorer 崩溃重启后的任务栏图标重建
- '作者 可爱猪
- 'Email:lovelypig43@163.com
- Option Explicit
- Private Declare Function RegisterWindowMessage Lib "user32" Alias "RegisterWindowMessageA" (ByVal lpString As String) As Long
- Private Const NIM_DELETE = &H2
- Private Sub Form_Load()
- MsgTaskbarRestart = RegisterWindowMessage("TaskbarCreated")
- OldWndProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WndProc)
- End Sub
- Private Sub Form_Unload(Cancel As Integer)
- Call SetWindowLong(hwnd, GWL_WNDPROC, OldWndProc)
- End Sub
复制代码
|
|