戻る



実行時にタスクバーアイコンの表示・非表示を切り替える方法
動作環境 Windows2000 / WindowsXP 開発環境 Visual Basic 6.0 (+SP5)
説明 実行時にタスクバーアイコンの表示・非表示を切り替えます。
用意するもの:標準フォーム(Form1)、コマンドボタン(Command1)


'変数の明示的な宣言を強制

Option Explicit

'指定されたウィンドウに関する情報を取得
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

'拡張ウィンドウスタイルを取得
Private Const GWL_EXSTYLE = (-20)

'指定されたウィンドウの属性を変更
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

'ウィンドウが最小化時に、トップレベルウィンドウをタスクバー上に置く
Private Const WS_EX_APPWINDOW = &H40000

'指定されたウィンドウの表示状態を設定
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

'ウィンドウをアクティブにして、現在の位置とサイズで表示
Private Const SW_SHOW = 5

'ウィンドウを非表示にし、他のウィンドウをアクティブにする
Private Const SW_HIDE = 0

Sub Show_In_TaskBar(ByVal hwnd As Long)

Dim WinExStyle As Long

'現在の拡張ウィンドウスタイルを取得
WinExStyle = GetWindowLong(hwnd, GWL_EXSTYLE)

Call ShowWindow(hwnd, SW_HIDE)

'現在の拡張ウィンドウスタイルに WS_EX_APPWINDOW を付加
'または現在の拡張ウィンドウスタイルから WS_EX_APPWINDOW を削除

SetWindowLong hwnd, GWL_EXSTYLE, WinExStyle Xor WS_EX_APPWINDOW

Call ShowWindow(hwnd, SW_SHOW)

End Sub

Private Sub Command1_Click()

Call Show_In_TaskBar(Me.hwnd)

End Sub

Private Sub Form_Load()

Me.Caption = "実行時にタスクバーアイコンの表示・非表示を切り替える方法"
Command1.Caption = "表示切替"

End Sub