내 응용 프로그램 사용자가 alt-tab을 사용하지 못하게하고 싶습니다. 낮은 수준의 키보드 후크를 사용하여이 문제를 해결하려고합니다.alt-tab 키보드가 이상한 동작을 일으키고 있습니까?
설정이 완벽하게 작동하면 키 조합 등을 누르면 콜백 절차가 시작됩니다. 이상한 일은 내가 응용 프로그램에서 alt-tab을 사용할 수 있지만 alt-tabbing이 완전히 비활성화되어 있다는 것입니다. 마우스로 응용 프로그램을 전환하고 alt-tabbing을 시도하지만 아무 일도 일어나지 않습니다. 다시 내 응용 프로그램과 alt-tab으로 전환하고 응용 프로그램을 전환하지만 한 단계 만 전환합니다. 내 응용 프로그램에서 alt-tab이 더 이상 작동하지 않을 때.
다른 시나리오를 시도해 보았습니다. 먼저 VS2010의 디버거와 관련이 있다고 생각했지만 디버거를 사용하지 않고 실행하면 동일한 결과가 나타납니다.
이 후크 절차를 완전히 오해 한 적이 있습니까? 응용 프로그램이 초점이 맞지 않을 때 일어나는 일만 잡으려고합니까?
osman.hpp :
static HHOOK m_hhook;
static LRESULT CALLBACK lowLevelKeyboardProc(int key, WPARAM wParam, LPARAM lParam);
osman.cpp :
HHOOK OSMan::m_hhook;
/*
* pseudo init code
*/
void OSMan::init()
{
m_hHook = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)lowLevelKeyboardProc, 0, 0);
}
LRESULT CALLBACK OSMan::lowLevelKeyboardProc(int key, WPARAM wParam, LPARAM lParam)
{
KBDLLHOOKSTRUCT *pkbhs = (KBDLLHOOKSTRUCT *) lParam;
switch (key)
{
case HC_ACTION:
{
if (pkbhs->vkCode == VK_TAB && pkbhs->flags & LLKHF_ALTDOWN)
return 1;
}
default:
break;
}
return CallNextHookEx(m_hHook, key, wParam, lParam);
}
편집 :
- 코드를 추가했습니다. 당신은 시스템 와이드 훅을 설치하는
후크를 어떻게 설정하고 있는지 보여주는 몇 가지 코드가 도움이 될 것입니다. –
@InS : 누군가가 제한적인 것을 원할 때마다, 사용자가 책이 재고가 있는지 또는 상점에서 고무줄이 재고가 있는지를 알기 원할 때 종종 키오스크 애플리케이션을 구축합니다. – sarnold
@sarnold : 키오스크와 같은 것을 만드는 적절한 방법은 [그룹 정책] (http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=19735)과 같은 운영 체제 기능을 사용하는 것입니다. 별도의 관리자 및 "키오스크"사용자 계정 기본적으로 운영 체제를 손상시키는 소프트웨어 해킹을 개발하는 것보다 적절한 권한으로 컴퓨터 계정을 설정하는 데 시간이 덜 소요됩니다. –