Как определить, нажал ли пользователь Ctrl-Alt-Del или Alt-Tab, чтобы я мог свернуть программу?

Я пишу программу на C++ с использованием DirectX 11, и мне бы хотелось, чтобы она была минимизирована, когда пользователь нажимает Ctrl-Alt-Del или Alt-Tab.

Добиться минимизации самого окна - это простая часть, так как все, что мне нужно сделать, это вызвать эту функцию:

ShowWindow(hWnd, SW_MINIMIZE);

Часть, на которой я застрял, заставляет его обнаруживать, когда вводится любое из этих двух нажатий клавиш, так что я могу вызывать эту функцию, когда происходит одно из этих событий.

Буду признателен за любую помощь, и если вам нужно, чтобы я кое-что прояснил, пожалуйста, дайте мне знать.

1 ответ

Кто-то, кто гораздо лучше разбирается в Ядре Windows, может сгорбиться здесь с тяжелыми ботинками и исправить меня, но, насколько я знаю, Ctrl-Alt-Delete настолько системный, это "мега-система". Причина в том, что если программы могут зацепиться за него, вы получите мертвый рабочий стол в тот момент, когда какой-то идиот решит, что это была отличная идея - вывести "Вы уверены?" окно сообщения, когда пользователь понял, что его компьютер попал в ад.

Есть рекомендации, которым мы должны следовать как разработчикам программного обеспечения, и попытка изменить поведение операционной системы (как бы это ни было хорошо), всегда будет заканчиваться слезами.

Я предлагаю вам не пытаться делать это (если это действительно возможно, я никогда не пытался быть откровенным), и начать думать о более важных вещах, которые вы можете делать. Если память используется, и пользователь нажимает Ctrl-Alt-Delete при запуске приложения DirectX, вы потеряете контекст поверхности / устройства (при условии, что вы работаете в полноэкранном режиме).

Выйдите изящно, или, если вы можете выздороветь - сделайте это.

Другие вопросы по тегам