● [スタート]ボタンを消す ●

おなじみの[スタート]ボタンを消しましょう。実用性はまったく無し。

'指定したウインドウのハンドルを取得する
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

'ウインドウを移動する
Private Declare Function MoveWindow lib "user32" (ByVal hWnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long

フォームにコントロール配列でコマンドボタンを2つ配置し、次のコードを書けば良し。

Private Sub Command1_Click(Index As Integer)
    Dim hWndTaskBar As Long
    Dim hWndStButton As Long

    hWndTaskBar = FindWindow("Shell_TrayWnd", vbNullString)
    hWndStButton = FindWindowEx(hWndTaskBar, 0, "Button", vbNullString)

    Select Case Index
        Case 0  ' 消す
            Call MoveWindow(hWndStButton, 9999, 9999, 59, 22, True)
        Case 1  ' 戻す
            Call MoveWindow(hWndStButton, 0, 0, 59, 22, True)
    End Select
End Sub

[備考]
上記の例は[スタート]ボタンを消しているのではなく、移動して見えなくしているだけ。
Windows95 での話だが、以下の通りにすれば[スタート]ボタンを消すことが出来た。
ちなみに復活させるためには再起動が必要であった。

(1)Ctrl+Esc
(2)Esc
(3)Alt+"-"
(4)Alt+C

Windows XP では残念ながら消すことはできなかった。


戻る