|
|||||
<このサンプルの概要> このサンプルの仕様は、タイトルそのままです。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 |