Код, который вы предоставили, написан на Delphi и использует Windows API для управления видимостью окон. Он предназначен для скрытия или отображения иконок на рабочем столе.
Вот разбивка функций каждого процедуры:
Процедура Button1Click: эта процедура скрывает иконки на рабочем столе, установив окно в скрытое состояние с помощью константы SW_ HIDE из Windows API.
FindWindow(nil, 'Программный менеджер'): это функция поиска окна с заголовком "Программный менеджер". Если не находит окно, возвращает nil. В этом случае мы ищем окно, которое соответствует заголовку "Программный менеджер", что может быть окном Эксплорера на вашем рабочем столе.
ShowWindow(..., SW_ HIDE): эта функция устанавливает видимость окна в скрытое состояние.
Процедура Button2Click: эта процедура отображает иконки на рабочем столе, установив окно в показанное состояние с помощью константы SW_ SHOW из Windows API.
То же поиск окна с заголовком "Программный менеджер", как в предыдущей процедуре.
ShowWindow(..., SW_ SHOW): эта функция устанавливает видимость окна в показанное состояние.
Вот альтернативное решение, которое может работать лучше, в зависимости от вашего конкретного требования:
Вместо поиска окна с конкретным заголовком и затем скрытия или отображения его, вы можете использовать функцию Windows API ShowWindow для управления видимостью всех иконок на рабочем столе. Вам нужно будет получить handle к окну Эксплорера (обычно процесс ID "explorer.exe") и затем вызвать ShowWindow с константой SW_ HIDE или SW_ SHOW.
В этом примере функция FindWindowEx используется для поиска окна с классом "Прогман" (обычно окно Эксплорера) и затем вызывается ShowWindow с желаемой видимостью.
Обратите внимание, что эти примеры являются специфичными для Delphi и Windows API. Поведение может варьироваться в зависимости от среды, в которой вы запускаете ваш код.
В статье описывается способ программного скрытия или отображения иконок на рабочем столе с помощью процедуры TForm1.
Комментарии и вопросы
:: 2015-12-12 20:43:23 :: re:Как скрыть или показать иконки на рабочем столе
Этим вы находите хэнл 'Program Manager' и скрываете
окно вместе с иконками при этом неработает выпадающее по правой кнопке мыши менюшка, чтоб поставить\снять галку в меню надо:
var
nwnd:HWND;
IDMenu :WORD = 29698;
Begin
nwnd:=FindWindowEx( FindWindow
('Progman', nil), HWND(0), 'ShellDll_DefView', nil);
SendMessage(nwnd, WM_COMMAND, MAKEWPARAM(29698, 0), 0);
End;
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.