Search code examples
vb.netwindows-10taskbar

How can I hide the taskbar in Windows 10


I am currently making a deployment program in VB.net and I am having trouble hiding the taskbar. My code works in Windows 7, but it does not seem to work after the Windows 10 upgrade.

Here is my code:

Imports system.Runtime.InteropServices
Public Partial Class MainForm
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Integer, ByVal hWndInsertAfter As Integer, ByVal x As Integer, ByVal y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer) As Integer

Public Const SWP_HIDEWINDOW = &H80
Public Const SWP_SHOWWINDOW = &H40

And to hide it, I do:

Dim intReturn As Integer = FindWindow("Shell_traywnd", "")
SetWindowPos(intReturn, 0, 0, 0, 0, 0, SWP_HIDEWINDOW)

Solution

  • The reason your code is not working is that you're using deprecated function declarations. I tested your code with the proper declarations for FindWindow and SetWindowPos and everything is working fine (Windows 10 x64).

    Here's my code for reference:

    Imports System.Runtime.InteropServices
    
    Module Module1
        <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)>
        Private Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
        End Function
    
        <DllImport("user32.dll", SetLastError:=True)>
        Private Function SetWindowPos(ByVal hWnd As IntPtr, ByVal hWndInsertAfter As IntPtr, ByVal X As Integer, ByVal Y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal uFlags As SetWindowPosFlags) As Boolean
        End Function
    
        <Flags>
        Private Enum SetWindowPosFlags As UInteger
            SynchronousWindowPosition = &H4000
            DeferErase = &H2000
            DrawFrame = &H20
            FrameChanged = &H20
            HideWindow = &H80
            DoNotActivate = &H10
            DoNotCopyBits = &H100
            IgnoreMove = &H2
            DoNotChangeOwnerZOrder = &H200
            DoNotRedraw = &H8
            DoNotReposition = &H200
            DoNotSendChangingEvent = &H400
            IgnoreResize = &H1
            IgnoreZOrder = &H4
            ShowWindow = &H40
        End Enum
    
        Sub Main()
            Dim window As IntPtr = FindWindow("Shell_traywnd", "")
            SetWindowPos(window, IntPtr.Zero, 0, 0, 0, 0, SetWindowPosFlags.HideWindow)
        End Sub
    End Module