Intereting Posts
Почему printf с единственным аргументом (без спецификаторов преобразования) устарел? Вопрос о типах данных C и константах nptl SIGCONT и планирование streamов подсчитать количество смежных прямоугольников gcc -o stdlib.h Синтаксическая ошибка c Взлом искусства эксплуатации Количество бит в типе данных Генерирование случайного числа между в C? В C, почему переменная const не может использоваться как инициализатор размера массива? Как получить имя активного windows? Как удалить файл из режима ядра? d2i_RSA_PUBKEY, d2i_RSAPrivateKey и d2i_RSAPublicKey возвращает NULL Как создать матрицу в C с помощью malloc и избежать проблем с памятью? Как я могу использовать синтаксис C99 для передачи матрицы в функцию? Избегание повторного генерации семян с использованием srand () Модули тестирования модhive для кода микроcontrollerа C предупреждение: неявное объявление функции ‘getresuid’ (и ‘seteuid’)

Как отключить кнопку «Пуск» (но не панель задач) в Windows 7?

В Windows XP можно было отключить кнопку «Пуск» со следующим кодом:

hTray = FindWindow (TEXT("Shell_TrayWnd"), NULL); if (hTray) { hStartButton = FindWindowEx(hTray, NULL, TEXT("Button"), NULL); if (hStartButton) ShowWindow(hStartButton, FALSE); } 

Для конфигурации компьютера с открытым доступом мне нужно сделать это в Windows 7. Кнопка «Пуск» должна быть отключена (а не просто скрыта), а остальная часть панели задач должна быть видимой и пригодной для использования. Скрытие панели задач вместе с кнопкой «Пуск» не является вариантом. Выполнение полноэкранного режима не является вариантом. Использование «Start Killer» не будет работать, потому что оно фактически не отключает кнопку «Пуск», просто скрывает его (пользователи могут по-прежнему использовать горячие клавиши, чтобы вытащить меню «Пуск»).

Я уже пробовал метод, который использует FindWindowEx с 0xC017 в качестве третьего параметра, а затем пытается отключить это окно. Это не работает. Этот метод работает, только если вся панель задач отключена. Мне нужен метод, который отключает только меню «Пуск», как и код, который я воспроизвел выше, в XP.

Любая помощь приветствуется.

«Правильная» версия для Windows 7 выглядит так:

 HWND hStartBtn = FindWindowEx(NULL, NULL, MAKEINTATOM(0xC017), TEXT("Start")); if (hStartBtn != NULL) { ShowWindow(hStartBtn, FALSE); } 

Однако это только отключает кнопку , то есть вы не получите свечение или другие эффекты, наведя курсор мыши на него. Вы можете нажать кнопку на панели задач, чтобы открыть меню. По-видимому, обработчик кликов теперь реализован в самом окне панели задач, а не как часть отдельной кнопки «Пуск». Вот почему вы должны сначала отключить всю панель задач, и поэтому большинство решений, которые вы нашли в Интернете, делают именно это.

Однако похоже, что приложение «Начать убийство» теперь имеет функции для отключения наиболее распространенных горячих клавиш, запускающих меню «Пуск», а именно Ctrl + Esc и Windows ключ. Вы найдете эти параметры, запустив программное обеспечение, щелкнув правой кнопкой мыши его значок на панели задач и выбрав «Настройки» в меню. Вы также можете отредактировать реестр, чтобы отключить ключ Windows, как описано в этой статье базы знаний . Если вы хотите реализовать эту же функциональность самостоятельно с помощью кода, единственным решением будет низкоуровневая клавиатура, которая захватывает события нажатия клавиш, которые отвечают и отбрасывают их.

Недокументированные хаки, подобные этой, даются разрыву с новыми версиями Windows. Я полагаю, что Рэймонд Чен посмеивался и говорил что-то вроде «Я так сказал» . Взлом интерфейса Windows – это безумное поручение. Или, как вы говорите несколько раз в вопросе, «это не вариант».

Есть ли что-нибудь в частности о стартовом меню, которое нужно отключить? Вы можете сделать то же самое с помощью параметров политики или других разрешений на доступ к файлам.

Используйте одну из доступных групповых политик, перечисленных здесь .

Вы не указали, почему вы хотите отключить кнопку запуска. Если вы думаете о том, что именно вы не хотите, чтобы ваши пользователи делали вместо того, чтобы сообщать нам о решении, которое вы выбрали для него (т. Е. «Отключить кнопку запуска»), вы можете найти гораздо лучшее решение.

Например, если вы хотите запретить пользователям изменять определенные настройки, заблокируйте это , а не кнопку запуска! Или если вы не хотите, чтобы они видели все установленные приложения, скройте эти приложения, а не кнопку запуска! Или же…

(Надеюсь, вы видите мою мысль здесь).