Нерегистрация горячей клавиши Alt-Tab в Windows 7

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

Мой код написан в C# и если просто по записи горячая клавиша Alt-Tab. Эта строка работы в XP, но возвращает false в 7:

RegisterHotKey(handle, ID__ALT_TAB, MOD_ALT, VK_TAB)); 

Я знаю, что Windows 7 теперь требует, чтобы я не зарегистрировал горячую клавишу, прежде чем я смогу зарегистрировать свой новый, и это - то, где проблема заключается. Когда я проверяю последний код ошибки, я получаю код 1409, подразумевая, что горячая клавиша уже существует. Однако, если я называю эту строку перед той выше:

UnregisterHotKey(handle, ID__ALT_TAB)); 

Та строка сбои и последний код ошибки установлены на 1419, не означая такой горячей клавиши, существует. Эти строки действительно работают в XP, и я могу зарегистрировать горячую клавишу и затем не зарегистрировать ее. Я полагаю, что это - потому что я пытаюсь не зарегистрировать горячую клавишу в неправильном идентификаторе, поскольку ID_ALT_TAB сам определен. Я не смог найти корректный идентификатор уровня Alt-Tab HotKey Windows. Любая справка или общие указатели значительно ценились бы.

7
задан Ward 20 July 2010 в 12:22
поделиться

3 ответа

Я не думаю, что есть способ сделать это. Не говоря уже о том, что даже если вам удастся каким-то образом зарегистрировать горячую клавишу поверх существующей, что произойдет, когда ваше приложение завершится? Вдруг вообще нет Alt-Tab.

Я бы предпочел другой ярлык, чтобы вызвать вашу замену. Может быть, Ctrl-Alt-Tab?

1
ответ дан 7 December 2019 в 18:39
поделиться

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

0
ответ дан 7 December 2019 в 18:39
поделиться

Не уверены, видели ли вы это ? Возможно, здесь придется немного поработать с C. Я бы подумал, что вы сможете перехватить нажатие Alt + Tab с помощью этого кода, а затем сделать на нем все, что захотите, но я не уверен.

РЕДАКТИРОВАТЬ: Также см. this для некоторых старых работ VB, которые вам, возможно, придется перевести на C #.

1
ответ дан 7 December 2019 в 18:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: