📄 setclose.bas
字号:
Attribute VB_Name = "SetClose"
Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Public Declare Function LoadBitmap Lib "user32" Alias "LoadBitmapA" (ByVal hInstance As Long, ByVal lpBitmapName As String) As Long
Const NIM_ADD = 0
Const NIM_MODIFY = 1
Const NIM_DELETE = 2
Private Type NOTIFYICONDATA
cbSize As Long 'NOTIFYICONDATA类型的大小,用Len(变量名)获得即可
hwnd As Long '窗体的名柄
uId As Long '图标资源的ID号,通常使用 vbNull
uFlags As Long '使哪些参数有效它是以下枚举类型中的 NIF_INFO Or NIF_ICON Or NIF_TIP Or NIF_MESSAGE 四个常数的组合
uCallBackMessage As Long '接受消息的事件
hIcon As Long '图标名柄
szTip As String * 128 '当鼠标停留在图标上时显示的Tip文本
dwState As Long '通常为 0
dwStateMask As Long '通常为 0
szInfo As String * 256 'Tip文本正文
uTimeoutOrVersion As Long '由于VB中没有Union类型,只能用Long型代替
szInfoTitle As String * 64 'Tip文本的标题
dwInfoFlags As Long
End Type
Private Const NIF_ICON = &H2
Private Const NIF_INFO = &H10
Private Const NIF_MESSAGE = &H1
Private Const NIF_STATE = &H8
Private Const NIF_TIP = &H4
Private Const NIS_SHAREDICON = &H2
Private Const NIS_HIDDEN = &H1
Private Const NIIF_NONE = &H0 '没有图标
Private Const NIIF_WARNING = &H2 '“警告”图标(黄色的“!”)
Private Const NIIF_ERROR = &H3 '“错误”图标(红色的“X”)
Private Const NIIF_INFO = &H1 '“消息”图标(蓝色的“i”)
Dim tb As NOTIFYICONDATA
Public Function Sp(ph As Long, pA As Boolean)
With tb
.cbSize = Len(tb)
.hwnd = Form1.hwnd
.uId = vbNull
.uFlags = NIF_INFO Or NIF_ICON Or NIF_TIP Or NIF_MESSAGE Or NIIF_INFO
.hIcon = Form1.Icon
.szTip = "葡萄守护者" & vbNullChar
.dwState = 0
.dwStateMask = 0
.szInfo = "您已经启动葡萄守护者" & vbNullChar
.uTimeoutOrVersion = 3000
.szInfoTitle = "葡萄守护者" & vbNullChar
.dwInfoFlags = NIIF_INFO
.uCallBackMessage = &H400 + 100
End With
If pA = 0 Then jk = 0 Else jk = &H2
If Shell_NotifyIcon(jk, tb) <> 1 Then Form1.Show
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -