マルチモニタで他の画面にもタスクバーを表示している場合はShell_SecondaryTrayWndも消さないと全部消えないっぽい
public static void Show(bool show) { int flag = show ? NativeMethods.SW_SHOW : NativeMethods.SW_HIDE; var taskBar = NativeMethods.FindWindow("Shell_TrayWnd", null); var startButton = NativeMethods.FindWindow("Button", "スタート"); NativeMethods.ShowWindow(taskBar, flag); NativeMethods.ShowWindow(startButton, flag); IntPtr hWnd = IntPtr.Zero; while ((hWnd = NativeMethods.FindWindowEx(IntPtr.Zero, hWnd, "Shell_SecondaryTrayWnd", null)) != IntPtr.Zero) { NativeMethods.ShowWindow(hWnd, flag); } }