Search
Write a publication
Pull to refresh

Прячем кнопку Пуск в Windows 7 (да помогут нам шпионы)

Попросил меня заказчик адаптировать мою старую программу под Windows 7. Ибо что для 2000/XP — хорошо, то для Windows 7 ни в какую.

Самые большие проблемы возникли с кнопкой Пуск, ведь как отключается панель задач чуть ли на заборах не написано. Естественно первым делом был задействован Google, который показал, что проблема кнопки Пуск в Windows 7 волнует многих.

Перепробовав кучу примеров включительно с размещенными на Хабре рабочих примеров так и не было найдено.
Зато я вспомнил о вещи которая мне пригодилась при создании прошлой версии программы — Spy++. Со Spy я обнаружил довольно любопытную штуку — окно с надписью «Пуск» не одно, а их — два. Собственно это — окно класса DV2ControlHost с надписью Меню «Пуск» и окно класса Button с надписью Пуск.

image

Попытки скрыть только одну из кнопок не приводили ровным счетом ни к чему и я совсем отчаялся но на всякий случай врубил сразу скрытие обоих (панель задач я скрывал постоянно).
Чудо таки произошло и кнопка была низвергнута к моей великой радости (в 4-е часа утра).

image

А вот и код на Delphi которым я воспользовался (на других языках будет практически идентично):

procedure hide;
begin
ShowWindow( FindWindow( 'Shell_TrayWnd', nil ), SW_HIDE); //прячем панель задач
ShowWindow( FindWindow( 'Button', 'Пуск' ), SW_HIDE); //прячем кнопку пуск аналогично как и в ХР
ShowWindow( FindWindow( 'DV2ControlHost', 'Меню "Пуск"' ), SW_HIDE); //... и еще раз прячем Пуск
end;


P.S.
Надеюсь собратьям по извращениям над интерфейсом Windows будет полезно.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.