请教编写.vxd文件屏蔽键盘和F4,F5,F8的问题 如何编写.vxd文件,用那种工具最好,屏蔽键盘和F4,F5,F8如何做,请给一段代码,谢谢![email protected] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以去这里看一看,有完整的解决方案,绝对实用: http://www.aslike.net //键盘钩子函数LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam){ if(nCode == HC_ACTION) { switch(wParam) { case WM_KEYDOWN: case WM_KEYUP: case WM_SYSKEYDOWN: case WM_SYSKEYUP: PKBDLLHOOKSTRUCT pHook = (PKBDLLHOOKSTRUCT)lParam; for(UINT i = 0; i < 17; i++) { switch(uHookKeyType & (DWORD)pow(2, i)) { case KEY_ESC: if((pHook->vkCode == VK_ESCAPE) && (!(::GetKeyState(VK_CONTROL) & 0x8000))) { if(pMainWnd && !bFlagEsc) { if(CWnd::GetActiveWindow() == pMainWnd) { return 1; } } else { return 1; } } break; case KEY_ALTESC: if((pHook->vkCode == VK_ESCAPE) && (pHook->flags & LLKHF_ALTDOWN)) { return 1; } break; case KEY_ALTTAB: if((pHook->vkCode == VK_TAB) && (pHook->flags & LLKHF_ALTDOWN)) { return 1; } break; case KEY_CTRLESC: if((pHook->vkCode == VK_ESCAPE) && (::GetKeyState(VK_CONTROL) & 0x8000)) { return 1; } break; case KEY_LWIN: if(pHook->vkCode == VK_LWIN) { return 1; } break; case KEY_RWIN: if(pHook->vkCode == VK_RWIN) { return 1; } break; case KEY_TAB: if(pHook->vkCode == VK_TAB) { return 1; } break; case KEY_APPS: if(pHook->vkCode == VK_APPS) { if(pMainWnd && !bFlagApps) { if(CWnd::GetActiveWindow() == pMainWnd) { if(wParam == WM_KEYUP) { if((iMenuPos > -1) || (pShortMenu)) { //消除菜单渐出现象 ::Sleep(250); //隐性地调用Bonus.dll的CWndOP::ShortMenu //显示快捷菜单 CWndOP *pWndOP = (CWndOP*)pMainWnd; pWndOP->ShortMenu(iMenuPos, pShortMenu); } else { return 1; } } else { return 1; } } } else { return 1; } } break; case KEY_PRINT: if(pHook->vkCode == VK_PRINT) { return 1; } break; case KEY_SNAPSHOT: if(pHook->vkCode == VK_SNAPSHOT) { return 1; } break; case KEY_PAUSE: if(pHook->vkCode == VK_PAUSE) { return 1; } break; case KEY_ALL: return 1; break; case KEY_ALTF4: if((pHook->vkCode == VK_F4) && (pHook->flags == LLKHF_ALTDOWN)) { return 1; } break; } } break; } } return ::CallNextHookEx(hhKey, nCode, wParam, lParam);} 写.VXD的问题,最好到“硬件/系统”版块问一下 不触发Receive事件,帮小菜看看什么原因啊,在线等? 关于键盘模拟鼠标出现的问题!! 谁有C++(MFC)2005 ActiveX控件开发及在网页中应用的的资料或电子书呀 关于IE风格地址栏的问题(有代码) 如何生成应用程序的可执行文件?高分!来着有分。 怎样隐藏或显示索引窗口? 怎样改变最大化最小化按钮的样子? 辞职了,散分!!! 请问有这样的函数吗? 用VC开发一个实际的项目至少要掌握那些知识? 急!急如何编写.vxd文件屏蔽键盘和F4,F5,F8 如何释放虚拟内存
http://www.aslike.net
LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if(nCode == HC_ACTION)
{
switch(wParam)
{
case WM_KEYDOWN:
case WM_KEYUP:
case WM_SYSKEYDOWN:
case WM_SYSKEYUP:
PKBDLLHOOKSTRUCT pHook = (PKBDLLHOOKSTRUCT)lParam;
for(UINT i = 0; i < 17; i++)
{
switch(uHookKeyType & (DWORD)pow(2, i))
{
case KEY_ESC:
if((pHook->vkCode == VK_ESCAPE) &&
(!(::GetKeyState(VK_CONTROL) & 0x8000)))
{
if(pMainWnd && !bFlagEsc)
{
if(CWnd::GetActiveWindow() == pMainWnd)
{
return 1;
}
}
else
{
return 1;
}
}
break;
case KEY_ALTESC:
if((pHook->vkCode == VK_ESCAPE) && (pHook->flags & LLKHF_ALTDOWN))
{
return 1;
}
break;
case KEY_ALTTAB:
if((pHook->vkCode == VK_TAB) && (pHook->flags & LLKHF_ALTDOWN))
{
return 1;
}
break;
case KEY_CTRLESC:
if((pHook->vkCode == VK_ESCAPE) &&
(::GetKeyState(VK_CONTROL) & 0x8000))
{
return 1;
}
break;
case KEY_LWIN:
if(pHook->vkCode == VK_LWIN)
{
return 1;
}
break;
case KEY_RWIN:
if(pHook->vkCode == VK_RWIN)
{
return 1;
}
break;
case KEY_TAB:
if(pHook->vkCode == VK_TAB)
{
return 1;
}
break;
case KEY_APPS:
if(pHook->vkCode == VK_APPS)
{
if(pMainWnd && !bFlagApps)
{
if(CWnd::GetActiveWindow() == pMainWnd)
{
if(wParam == WM_KEYUP)
{
if((iMenuPos > -1) || (pShortMenu))
{
//消除菜单渐出现象
::Sleep(250);
//隐性地调用Bonus.dll的CWndOP::ShortMenu
//显示快捷菜单
CWndOP *pWndOP = (CWndOP*)pMainWnd;
pWndOP->ShortMenu(iMenuPos, pShortMenu);
}
else
{
return 1;
}
}
else
{
return 1;
}
}
}
else
{
return 1;
}
}
break;
case KEY_PRINT:
if(pHook->vkCode == VK_PRINT)
{
return 1;
}
break;
case KEY_SNAPSHOT:
if(pHook->vkCode == VK_SNAPSHOT)
{
return 1;
}
break;
case KEY_PAUSE:
if(pHook->vkCode == VK_PAUSE)
{
return 1;
}
break;
case KEY_ALL:
return 1;
break;
case KEY_ALTF4:
if((pHook->vkCode == VK_F4) && (pHook->flags == LLKHF_ALTDOWN))
{
return 1;
}
break;
}
}
break;
}
} return ::CallNextHookEx(hhKey, nCode, wParam, lParam);
}