В Windows 7 кнопка запуска с именем класса "Button"
является дочерним элементом окна рабочего стола. В вашем коде предполагается, что кнопка «Пуск» является дочерней по отношению к окну с именем "Shell_TrayWnd"
, который действительно выглядит так, как панель задач и меню «Пуск» были реализованы в XP.
Для Windows 7 вы хотите использовать что-то вроде этого:
hStart = ::FindWindowEx(GetDesktopWindow(), NULL, "Button", NULL);
Хотя я думаю, что было бы лучше найти его по имени, чтобы быть уверенным, что вы получите правильную кнопку.
hStart = ::FindWindowEx(GetDesktopWindow(), NULL, "Button", "Start");
Я не уверен, как Vista реализует свою панель задач и меню «Пуск», но вы можете использовать Spy ++, чтобы выяснить это.
Сказав все это, было бы намного лучше, если бы вы могли найти способ достичь своих целей, не разбираясь в таких деталях реализации.