Отключение кнопки "Свернуть все окна" в Windows 7

Захотелось поэкспериментировать с новым интерфейсом Windows 7, а конкретно решил убрать кнопку "Свернуть все окна" из трея. Зачем мне это надо - вопрос другой, здесь важна сама реализация. Кнопка "Свернуть все окна", как в сказке про Кащея, находится внутри нескольких других окон. Вложенность и иерархию классов можно определить, например, при помощи программы WinDowzer или любой другой, показывающей дерево всех окон системы. Для поиска родительского окна системного трея с названием класса Shell_TrayWnd я использовал функцию FindWindow, а для определения хэндлов вложенных дочерних окон с классами TrayNotifyWnd (область уведомлений) и TrayShowDesktopButtonWClass (сама кнопка "Свернуть все окна") - функцию FindWindowEx.
        ...
        ; Найти окно трея
        invoke  FindWindow,stw,NULL
        or      eax,eax
        jz      no_button
 
        ; Найти окно уведомлений в трее
        invoke  FindWindowEx,eax,NULL,tnw,NULL
        or      eax,eax
        jz      no_button
 
        ; Найти кнопку "Свернуть все окна"
        invoke  FindWindowEx,eax,NULL,tsc,NULL
        or      eax,eax
        jz      no_button
 
        ; Спрятать кнопку "Свернуть все окна"
        ; Если надо показать кнопку, то замените флаг на SW_SHOW
        invoke  ShowWindow,eax,SW_HIDE
 
        ; Кнопка не найдена
no_button:
        ...
 
; Названия классов окон для поиска
stw     db      'Shell_TrayWnd',0  ; Название класса окна трея
tnw     db      'TrayNotifyWnd',0  ; Название класса окна области уведомлений
tsc     db      'TrayShowDesktopButtonWClass',0  ; Название окна кнопки

К сожалению, мне не удалось полностью убрать кнопку из трея, даже когда она скрыта, на ее месте остается пустое пространство. Попытки изменить ширину кнопки перед ее скрытием при помощи функции SetWindowPos успеха тоже не принесли.

В приложении примеры двух программ, реализующих описанный алгоритм. Одна скрывает кнопку "Свернуть все окна", другая возвращает ее на место. Программы работают, естественно, только под Windows 7.
Теги:
Windows, Свернуть все окна
Добавлено: 10 Апреля 2018 20:26:34 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...