Skrytí desktopu

Postup:
Založte nový projekt a v modulu deklarujte:

Option Explicit
DefLng A-Z

Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd As Long, ByVal hWndChild As Long, ByVal lpszClassName As String, ByVal lpszWindow As String) As Long
Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long

'konstanty pro ShowWindow()
Public Const SW_HIDE = 0
Public Const SW_NORMAL = 1
Public Const SW_SHOWMINIMIZED = 2
Public Const SW_SHOWMAXIMIZED = 3
Public Const SW_SHOWNOACTIVATE = 4
Public Const SW_SHOW = 5
Public Const SW_MINIMIZE = 6
Public Const SW_SHOWMINNOACTIVE = 7
Public Const SW_SHOWNA = 8
Public Const SW_RESTORE = 9
Public Const SW_SHOWDEFAULT = 10

'Jméno okna shellu, které hledáme
Public Const g_cstrShellViewWnd As String = "Progman"
*každá deklarace musí být na samostatném řádku

Založte formulář (frmMain) a na něj umístěte dvě tlačítka cmdHideDesktop and cmdShowDesktop. Zapište následující procedury do deklarační části formuláře:

Private Function FindShellWindow() As Long
    Dim hWnd As Long
    On Error Resume Next
    hWnd = FindWindowEx(0&, 0&, g_cstrShellViewWnd, vbNullString)
    If hWnd <> 0 Then
  &nbs 85c p;     FindShellWindow = hWnd
    End If
End Function

Private Sub HideShowWindow(ByVal hWnd As Long, Optional ByVal Hide As Boolean = False)
    Dim lngShowCmd As Long
    On Error Resume Next
    If Hide = True Then
        lngShowCmd = SW_HIDE
    Else
        lngShowCmd = SW_SHOW
    End If
    Call ShowWindow(hWnd, lngShowCmd)
End Sub

A na tlačítka:

Private Sub cmdShowDesktop_Click()
    Dim hWnd As Long
    On Error Resume Next
    'Najdeme okno a schováme
    hWnd = FindShellWindow()
    If hWnd <> 0 Then
        Call HideShowWindow(hWnd)
    End If
End Sub

Private Sub cmdHideDesktop_Click()
    Dim hWnd As Long
    On Error Resume Next
    hWnd = FindShellWindow()
    If hWnd <> 0 Then
        Call HideShowWindow(hWnd, True)
    End If
End Sub

Pusťte projekt a vyzkoušejte tlačítka.

Zpět

Autor: The Bozena