掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VBからタスクバーの「常に手前に表示」を解除もしくは設定するには? (ID:79328)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
SHAppBarMessage APIを使います。VB6であれば、こんな感じですかね。 # 同じ関数で[自動的に隠す]設定も扱えるので、一緒に書いておきますね。 Option Explicit Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Type AppBarData cbSize As Long hWnd As Long uCallbackMessage As Long uEdge As Long rc As RECT lParam As Long End Type Private Const ABM_SETSTATE As Long = &HA& Private Const ABM_GETSTATE As Long = &H4& Private Const ABS_AUTOHIDE As Long = &H1& Private Const ABS_ALWAYSONTOP As Long = &H2& Private Declare Function SHAppBarMessage Lib "shell32.dll" _ (ByVal dwMessage As Long, pData As AppBarData) As Long Public Property Get TaskbarTopMost() As Boolean Dim pabd As AppBarData pabd.cbSize = Len(pabd) TaskbarTopMost = CBool(ABS_ALWAYSONTOP And SHAppBarMessage(ABM_GETSTATE, pabd)) End Property Public Property Let TaskbarTopMost(ByVal fAlwaysTopMost As Boolean) Dim pabd As AppBarData pabd.cbSize = Len(pabd) pabd.hWnd = Me.hWnd 'pabd.lParam = SHAppBarMessage(ABM_GETSTATE, pabd) Xor ABS_ALWAYSONTOP If fAlwaysTopMost Then pabd.lParam = SHAppBarMessage(ABM_GETSTATE, pabd) Or ABS_ALWAYSONTOP Else pabd.lParam = SHAppBarMessage(ABM_GETSTATE, pabd) And Not ABS_ALWAYSONTOP End If SHAppBarMessage ABM_SETSTATE, pabd End Property Public Property Get TaskbarAutoHide() As Boolean Dim pabd As AppBarData pabd.cbSize = Len(pabd) TaskbarAutoHide = CBool(ABS_AUTOHIDE And SHAppBarMessage(ABM_GETSTATE, pabd)) End Property Public Property Let TaskbarAutoHide(ByVal fAutoHide As Boolean) Dim pabd As AppBarData pabd.cbSize = Len(pabd) pabd.hWnd = Me.hWnd 'pabd.lParam = SHAppBarMessage(ABM_GETSTATE, pabd) Xor ABS_AUTOHIDE If fAutoHide Then pabd.lParam = SHAppBarMessage(ABM_GETSTATE, pabd) Or ABS_AUTOHIDE Else pabd.lParam = SHAppBarMessage(ABM_GETSTATE, pabd) And Not ABS_AUTOHIDE End If SHAppBarMessage ABM_SETSTATE, pabd End Property Private Sub Check1_Click() TaskbarTopMost = CBool(Me.Check1.Value = vbChecked) End Sub Private Sub Check2_Click() TaskbarAutoHide = CBool(Me.Check2.Value = vbChecked) End Sub Private Sub Form_Load() Me.Check1.Caption = "タスクバーを常に手前に表示" Me.Check1.Value = IIf(TaskbarTopMost, vbChecked, vbUnchecked) Me.Check2.Caption = "タスクバーを自動的に隠す" Me.Check2.Value = IIf(TaskbarAutoHide, vbChecked, vbUnchecked) End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.