如何屏蔽ctrl + v 粘贴事件,鼠标右键粘贴事件
2014-09-22 12:11
211 查看
通常在自己的APP里的密码框,验证码框需要屏蔽复制,粘贴,怎么办呢?
有三种方法:
1 hook 此方法是最完全的,但由于hook是全局的,容易影响到其它代码。
2 子类化文本框, 重写OnPaste函数,拦截WM_Paste消息
3 在PreTranslateMessage里判断键盘扫描码和虚拟码
前两种方法都不能在一个函数里搞定,比较麻烦。这里就介绍第三个方法,具体代码如下:
以上只是大体的流程,还有考虑不周的地方,欢迎补充。
有三种方法:
1 hook 此方法是最完全的,但由于hook是全局的,容易影响到其它代码。
2 子类化文本框, 重写OnPaste函数,拦截WM_Paste消息
3 在PreTranslateMessage里判断键盘扫描码和虚拟码
前两种方法都不能在一个函数里搞定,比较麻烦。这里就介绍第三个方法,具体代码如下:
BOOL CMyDlg::PreTranslateMessage(MSG* pMsg) { if (pMsg->message == WM_APPCOMMAND) return TRUE; // win 2000 以上api, 多媒体键盘, 如 Fn + F1, f2, ... if (pMsg->message == WM_RBUTTONDOWN) return TRUE; if (pMsg->message == WM_KEYDOWN) { while (pMsg->wParam >= VK_F1 && pMsg->wParam <= VK_F24) return TRUE; switch (pMsg->wParam) { case VK_CAPITAL: //0x8000 是键有否按下 //0x0001 是键的翻转状态 if (GetKeyState(VK_CAPITAL) & 0x0001) { GetDlgItem(IDC_STC_CAPS)->ShowWindow(TRUE); GetDlgItem(IDC_STC_CAPS)->SetWindowText(_T("大写状态己开启!")); } else GetDlgItem(IDC_STC_CAPS)->ShowWindow(FALSE); break; // ctrl + v, shift + ins, 鼠标右键paste, 菜单键(VK_APPS)paste等 case VK_LAUNCH_APP1: case VK_LAUNCH_APP2: case VK_LCONTROL: case VK_RCONTROL: case VK_SHIFT: case VK_LSHIFT: case VK_RSHIFT: case VK_MENU: case VK_LMENU: case VK_RMENU: case VK_LWIN: case VK_RWIN: case VK_RBUTTON: case VK_EXECUTE: case VK_RETURN: case VK_SNAPSHOT: case VK_INSERT: case VK_APPS: this->SetFocus(); // 让文本框失去焦点,就无法弹出菜单栏 return TRUE; case 'V': static int n = 0; // 第一、二次可以复制 while (++n > 2 && (::GetKeyState(VK_CONTROL) & 0x8000)) return TRUE; break; } } while (::GetKeyState(VK_MENU) & 0x8000) { return TRUE; // Alt 不会响应 WM_KEYDOWN } return CDialog::PreTranslateMessage(pMsg); }
以上只是大体的流程,还有考虑不周的地方,欢迎补充。
相关文章推荐
- 如何屏蔽ctrl + v 粘贴事件,鼠标右键粘贴事件
- 如何屏蔽"ctrl+v"和"右键的粘贴功能"
- 屏蔽鼠标右键、选择、拖拽等事件
- 如何突破屏蔽鼠标右键复制网页内容???
- 40个js小技巧:屏蔽鼠标右键、取消选取、防止复制、粘贴、转换地址栏图标
- 浏览器键盘,鼠标事件拦截。(屏蔽退格,绑定回车,屏蔽鼠标右键)
- javascript中关于屏蔽鼠标右键.防水复制不准粘贴等等等的一些小技巧..
- JavaScript js如何捕获鼠标右键菜单中的粘帖事件?
- 屏蔽右键,点击鼠标触发事件,置顶
- js如何用判断鼠标的右键还是左键,屏蔽右键菜单
- C#引用CefSharp并屏蔽鼠标右键和禁止拖动放置事件
- 转载 javascript中关于屏蔽鼠标右键.防水复制不准粘贴等等等的一些小技巧
- 如何屏蔽鼠标右键
- 如何在HTML页面屏蔽鼠标右键和F5刷新键?
- 屏蔽ubuntu桌面鼠标右键以及Ctrl Alt F*
- javascript中关于屏蔽鼠标右键.防水复制不准粘贴等等等的一些小技巧
- (转)js,jQuery屏蔽鼠标右与jquery 鼠标右键事件、左键单击事件判定
- 使用Javascript封装实现屏蔽鼠标右键系统键菜单,并绑定自定义的事件
- js鼠标双击的时候如何屏蔽单击事件呢
- keyup mouseout事件,pastes鼠标右键粘贴事件