Показать\Скрыть Windows Taskbar

      С помощью Windows API функций «FindWindow» и «ShowWindow» можно реализовать скрытие кнопки Пуск и Панель задач, а так же вернуть их в исходное состояние.
      Функция «FindWindow» разыскивает данные о дескрипторе окна верхнего уровня, чье имя класса и имя окна соответствуют определенным строкам. Эта функция не ищет дочерние окна. А функция «ShowWindow» устанавливает состояние показа определяемого окна. Чтобы получить дескриптор окна, нужно знать имя класса, для панели задач это класс «Shell_TrayWnd», а для кнопки Пуск – «Button».

      Создайте проект «Windows Form» в «Microsoft Visual Studio» и добавьте на главную форму вашего проекта четыре элемента управления «Button», у вас получится приведенный ниже пример.
      Нажмите клавишу «F7», вы перейдете в редактор кода главной формы вашего проекта. Добавьте в код главной формы приведенный ниже листинг, класс «Taskbar», реализующий вызов Windows API функций «FindWindow» и «ShowWindow».
public class Taskbar
{
    //Функция FindWindow разыскивает данные о дескрипторе окна верхнего уровня, 
    //чье имя класса и имя окна соответствуют определенным строкам.
    //Эта функция не ищет дочерние окна.
    [System.Runtime.InteropServices.DllImport("user32.dll")]
    private static extern int FindWindow(string className, string windowText);

    //Функция ShowWindow устанавливает состояние показа определяемого окна.
    [System.Runtime.InteropServices.DllImport("user32.dll")]
    private static extern int ShowWindow(int hwnd, int command);

    //Скрывает окно и активизирует другое окно.
    private const int SW_HIDE = 0;
    //Активизирует окно и отображает его текущие размеры и позицию.
    private const int SW_SHOW = 1;

    protected static int Handle
    {
        get
        {
            //Получаем дескриптор панели задач.    
            return FindWindow("Shell_TrayWnd", "");               
        }
    }
    protected static int StartHandle
    {
        get
        {
            // Получаем дескриптор кнопки Пуск.

            //Для Windows на Русском.
            return FindWindow("Button", "Пуск"); 
            //Для Windows на Английском.
            //return FindWindow("Button", "Start");
        }
    }
    private Taskbar()
    {
        
    }

    public static void Show_Taskbar()
    {
        //Показываем панель задач.
        ShowWindow(Handle, SW_SHOW);            
    }

    public static void Show_StartButton()
    {
        //Показываем кнопку Пуск
        ShowWindow(StartHandle, SW_SHOW);
    }

    public static void Hide_Taskbar()
    {
        //Скрываем панель задач.
        ShowWindow(Handle, SW_HIDE);            
    }

    public static void Hide_StartButton()
    {           
        //Скрываем кнопку Пуск.
        ShowWindow(StartHandle, SW_HIDE);
    }
}
      Перейдите в конструктор главной формы и сделайте двойной клик левой клавишей мыши по элементу управления «button1». Вы перейдете в редактор кода с автоматической установкой курсора в созданном методе «button1_Click», события «Click», возникающего при нажатии на кнопку. Выполните эти действия для каждого элемента управления «button» и добавьте приведенные ниже методы в соответствии с элементами управления.
private void button1_Click(object sender, EventArgs e)
{
    Taskbar.Hide_Taskbar();            
}

private void button2_Click(object sender, EventArgs e)
{
    Taskbar.Hide_StartButton();
}

private void button3_Click(object sender, EventArgs e)
{
    Taskbar.Show_Taskbar();
}

private void button4_Click(object sender, EventArgs e)
{
    Taskbar.Show_StartButton();
}
      Запустите проект, нажав на клавишу «F5». После успешной компиляции и запуска вашего проекта у вас откроется главная форма вашего проекта, нажмите поочередно кнопки «Скрыть панель задач» и «Скрыть кнопку Пуск». У вас скроется панель задач и кнопка «Пуск», как показано на скриншоте ниже.
Если вы нажмете кнопки «Показать…», все вернется на свои места.
      Стоит отметить, что при скрытии панели задач, кнопка «Пуск» остается видимой. Раньше в Windows 98/XP кнопка «Пуск» была частью панели задач и скрывалась вместе с ней. Соответственно, можно прятать только кнопку «панель задач», не трогая саму кнопку пуск, смотрите приведенный ниже пример.

Комментариев нет:

Отправить комментарий

Большая просьба, не писать в комментариях всякую ерунду не по теме!