NonSoft

タスクトレイにアイコンを追加するサンプル(VB6)


 サンプル(ソース/コード)
<このサンプルの概要>
このサンプルの仕様は、タイトルそのままです。VB6でタスクトレイにアイコンを表示
方法のサンプルです。
タスクトレイでアイコンをクリックした時のイベントはForm_MouseMoveで取得出来ます。

その他のタスクトレイ関連情報を紹介します。
既存プログラムをタスクトレイで実行するサンプル(VB.NET)
タスクトレイ実行ツールはいろんなプログラムをタスクトレイで実行するツール。

' タスクトレイ用のAPI-----------------------------------------------------
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const NIF_ICON = &H2
Private Const NIF_MESSAGE = &H1
Private Const NIF_TIP = &H4
Private Const WM_MOUSEMOVE = &H200
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_RBUTTONUP = &H205
Private Const WM_RBUTTONDBLCLK = &H206
Private 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
Private Declare Function Shell_NotifyIcon Lib _
  "shell32.dll" Alias "Shell_NotifyIconA" _
  (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
' ------------------------------------------------------------------------
'
' 関数名    : AddTaskTray
' 返り値    : 無し
' 引き数    : myForm(i)    :親フォーム(meを指定する)
'           : strToolTip(i):ツールチップ
' 機能説明  : タスクトレイにアイコン追加
'
Public Sub AddTaskTray(myForm As Form, strToolTip As String)
    Dim NID As NOTIFYICONDATA
    NID.cbSize = Len(NID)
    NID.hIcon = Me.Icon.Handle
    NID.hWnd = myForm.hWnd
    NID.szTip = strToolTip & Chr(0)
    NID.uCallbackMessage = WM_MOUSEMOVE
    NID.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
    NID.uid = 1
    Shell_NotifyIcon NIM_ADD, NID
End Sub
'
' 関数名    : ModTaskTray
' 返り値    : 無し
' 引き数    : myForm(i)    :親フォーム(meを指定する)
'           : strToolTip(i):ツールチップ
' 機能説明  : タスクトレイにアイコン追加
'
Public Sub ModTaskTray(myForm As Form, strToolTip As String)
    Dim NID As NOTIFYICONDATA
    NID.cbSize = Len(NID)
    NID.hIcon = Me.Icon.Handle
    NID.hWnd = myForm.hWnd
    NID.szTip = strToolTip & Chr(0)
    NID.uCallbackMessage = WM_MOUSEMOVE
    NID.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
    NID.uid = 1
    Shell_NotifyIcon NIM_MODIFY, NID
End Sub
'
' 関数名    : DelTaskTray
' 返り値    : 無し
' 引き数    : myForm(i):親フォーム(meを指定する)
' 機能説明  : タスクトレイからアイコン削除
'
Public Sub DelTaskTray(myForm As Form)
    Dim NID As NOTIFYICONDATA
    NID.cbSize = Len(NID)
    NID.hIcon = 0
    NID.hWnd = myForm.hWnd
    NID.szTip = ""
    NID.uCallbackMessage = WM_MOUSEMOVE
    NID.uFlags = 0
    NID.uid = 1
    Shell_NotifyIcon NIM_DELETE, NID
End Sub