A
Hi,
ich möchte folgenden WinApi Code im meine MFC (Dialog) Anwendung einbauen,
aber es klappt nicht.
#define _WIN32_WINNT 0x0400
#include <Windows.h>
LRESULT CALLBACK LowLevelKeyboardProc(int nCode,
WPARAM wParam, LPARAM lParam)
{
BOOL fEatKeystroke = FALSE;
if (nCode == HC_ACTION)
{
switch (wParam)
{
case WM_KEYDOWN:
case WM_SYSKEYDOWN:
case WM_KEYUP:
case WM_SYSKEYUP:
PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT) lParam;
// Alt+Tab
if((p->vkCode == VK_TAB) && ((p->flags & LLKHF_ALTDOWN) != 0))
{
fEatKeystroke = TRUE;
break;
}
// Alt+Esc
if((p->vkCode == VK_ESCAPE) && ((p->flags & LLKHF_ALTDOWN) != 0))
{
fEatKeystroke = TRUE;
break;
}
// Alt+Esc
if(p->vkCode == VK_ESCAPE)
{
fEatKeystroke = TRUE;
break;
}
// Ctrl+Esc
if((p->vkCode == VK_ESCAPE) && ((GetKeyState(VK_CONTROL) & 0x8000) != 0))
{
fEatKeystroke = TRUE;
break;
}
// win key
if( (p->vkCode == VK_LWIN) || (p->vkCode == VK_RWIN) )
{
fEatKeystroke = TRUE;
break;
}
break;
}
}
return(fEatKeystroke ? 1 : CallNextHookEx(NULL, nCode, wParam, lParam));
}
int WINAPI WinMain(HINSTANCE hinstExe, HINSTANCE, PTSTR pszCmdLine, int)
{
// Install the low-level keyboard & mouse hooks
HHOOK hhkLowLevelKybd = SetWindowsHookEx(WH_KEYBOARD_LL,
LowLevelKeyboardProc, hinstExe, 0);
// Keep this app running until we're told to stop
MessageBox(NULL, "Win, Alt+Esc, Ctrl+Esc, and Alt+Tab are now disabled",
"Disable Low-Level Keys", MB_OK);
UnhookWindowsHookEx(hhkLowLevelKybd);
return(0);
}
Da der Code die WINAPI WinMain nutzt und ich in meiner App Klasse ja die
BOOL CTestApp::InitInstance()
habe weis ich nicht so richtig wie ich den Code in meiner App Klasse einbaue.
Ich wäre für jeden Tipp wirklich dankbar.
cu asmodia