如何获得象ctrl+c之类的扫描码 我在PreTranslateMessage函数中能够得到单个按键的扫描码,但是如何得到这些组合键了? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 利用hook中的键盘hook:先在程序初始化时设一个hookSetWindowsHookEx(WH_KEYBOARD_LL, // hootype HOOKPROC LowLevelKeyboardProc, // hook procedure回调函数 HINSTANCE hMod, // handle to application instance DWORD dwThreadId ) // thread identifier在回调函数中CALLBACK LowLevelKeyboardProc( int nCode, // hook code WPARAM wParam, // message identifier LPARAM lParam // message data){ if(nCode == HC_ACTION) { ... lParam->scanCode;大概就是这个样子。lparam指向的tagKBDLLHOOKSTRUCT 可以在msdn中查到 ... } CallNextHookEx(....); 在你的资源中增加Accelerator:IDR_MYHOTKEY,里面加入ctrl-c热键。在程序初始化的地方:m_hHotKey =LoadAccelerators( AfxGetInstanceHandle(), IDR_MYHOTKEY); 在PreTranslateMessage中:if(m_hHotKey != NULL){ if(!TranslateAccelerator(m_hWnd,m_hHotKey,pMsg)) return CDialog::PreTranslateMessage(pMsg); else return TRUE;}在OnCommand中响应ctrl-cif( LOWORD(wParam) == IDC_CTRLC )... sqlite 的问题 查询语句 初始化套接字的问题 动态链接库找不到的问题,请教大家 OnSetCursor函数中,为什么光标没有改变符号? 哪位可以详细的介绍一下Debug调试和Release调试有什么不同? 大虾们知道有没有傻瓜的Help制作软件? 怎么查看DLL里的输出函数,据说95下面有一个QuickView,ME和2000下用什么? Richedit中插入Bitmap,如何释放内存 IOCP的问题 求购<<windows程序设计》中文版和《windows核心编程》 简单的字符转换 在listbox中显示乱码是为什么?
先在程序初始化时设一个hook
SetWindowsHookEx(WH_KEYBOARD_LL, // hootype
HOOKPROC LowLevelKeyboardProc, // hook procedure回调函数
HINSTANCE hMod, // handle to application instance
DWORD dwThreadId ) // thread identifier
在回调函数中
CALLBACK LowLevelKeyboardProc(
int nCode, // hook code
WPARAM wParam, // message identifier
LPARAM lParam // message data)
{
if(nCode == HC_ACTION)
{
...
lParam->scanCode;大概就是这个样子。lparam指向的tagKBDLLHOOKSTRUCT 可以在msdn中查到
...
}
CallNextHookEx(....);
在程序初始化的地方:
m_hHotKey =LoadAccelerators( AfxGetInstanceHandle(), IDR_MYHOTKEY);
在PreTranslateMessage中:
if(m_hHotKey != NULL)
{
if(!TranslateAccelerator(m_hWnd,m_hHotKey,pMsg))
return CDialog::PreTranslateMessage(pMsg);
else
return TRUE;
}在OnCommand中响应ctrl-c
if( LOWORD(wParam) == IDC_CTRLC )
...