如何屏蔽ctrl + v 粘贴事件,鼠标右键粘贴事件
通常在自己的APP里的密码框,验证码框需要屏蔽复制,粘贴,怎么办呢?
有三种方法:
1 hook 此方法是最完全的,但由于hook是全局的,容易影响到其它代码。
2 子类化文本框, 重写OnPaste函数,拦截WM_Paste消息
3 在PreTranslateMessage里判断键盘扫描码和虚拟码
前两种方法都不能在一个函数里搞定,比较麻烦。这里就介绍第三个方法,具体代码如下:
[cpp] view plain copy
- 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);
- }
以上只是大体的流程,还有考虑不周的地方,欢迎补充。
From: http://blog.csdn.net/tiandyoin/article/details/39474569
转载于:https://www.cnblogs.com/time-is-life/p/8158369.html
如何屏蔽ctrl + v 粘贴事件,鼠标右键粘贴事件相关推荐
- 天正计算机命令大全,天正CAD 中按Ctrl+v在不同图中粘贴出现“未知命令T81_tpasteclip”,直接在CAD中就能操作...
天正CAD 中按Ctrl+v在不同图中粘贴出现"未知命令T81_tpasteclip",直接在CAD中就能操作以下文字资料是由(历史新知网www.lishixinzhi.com)小 ...
- Vue 框架-02-事件:点击, 双击事件,鼠标移上事件
Vue 框架-02-事件:点击, 双击事件,鼠标移上事件 1.单击事件:v-on:click 源码 app2.js : //实例化 vue 对象 new Vue({//注意代码格式//el:eleme ...
- 简单前端web页面文字防复制 粘贴 剪切 鼠标右键 F12 shift+ctrl+i等,多浏览器支持
简单的实现javaScript层面的文字防复制,只能说防君子不妨小人,有兴趣的人可以试试 <!DOCTYPE html> <html > <head> <me ...
- python tablewidget单击事件_QTableWidget右键单击事件有问题
我能够通过继承QTableWidget来模拟右键单击事件: 头文件: #ifndef QRIGHCLICKTABLE_H #define QRIGHCLICKTABLE_H #include #inc ...
- pyqt5 treeview鼠标右键菜单事件_【动手实践】使用 Vue 自定义指令实现右键菜单...
本文来自于 神奇的程序员 前言 浏览器里右键时会有一个默认的菜单,在我的开源项目中正好有自定义右键菜单的需求,在npm库找了下与之相关的包,发现都是以组件形式实现的,感觉那种做法太过繁琐. 于是,我就 ...
- Xshell如何设置鼠标右键粘贴
1.打开Xshell,单击菜单栏的Tools(工具),选中Options(菜单),进入参数设置界面. 2. 选择Keyboard and Mouse (键盘和鼠标),把Right-bottox(向右按 ...
- 去掉MobaXterm默认鼠标右键粘贴的设置
打开Settings----->进入Terminal(终端)---->执行第③步
- 前端讲义64_AngularJS鼠标与键盘事件有关指令
ngMousedown 触发条件:鼠标按下,左右中间按下都会触发 ngMouseup 触发条件:鼠标按下弹起,左右中间按下弹起都会触发 ngMouseenter 触发条件:鼠标进入 ngMousele ...
- Ctrl c 复制html,一键复制粘贴(用热键代替Ctrl+X、Ctrl+C、Ctrl+V)
在用电脑的时候大家少不了使用ctrl+c和ctrl+v键,也就是复制和粘贴快捷键,本次小编发布的这个一键复制粘贴工具可实现连续复制,顺序粘贴,帮您轻松完成繁琐的文字复制工作,也就是用热键代替Ctrl+ ...
最新文章
- Windows Phone 7 不温不火学习之《项目模板》
- android封装网络请求界面,轻松搞定 android MVP 架构、okHttp 网络模块封装 的 项目...
- Python3生成脚本实现重置键盘键位
- 【hive】hive----自定义UDF 函数-----时间格式化以及取出双引号的代码
- asp.net mvc源码分析-Action篇 DefaultModelBinder
- Fixcel电子表格——报表模块(一)
- 树莓派小车python pid_树莓派小车实现转弯(创乐博套件)
- ftp服务器文件不让上传,ftp服务器不让上传文件
- [转]谈爬虫反爬虫套路
- 计算机网络实验 IP网络规划与路由设计
- OpenGl运行窗口出现纯白色
- 计算机二级office一星期可以过么,计算机二级Ms office一周过关攻略
- 机器阅读理解之开山鼻祖Teaching Machines to Read and Comprehend
- 项目实训(十六)——总结
- linux IRQ Management(五)- irq_desc
- flash制作swf播放器
- STP、RSTP、MSTP合集思维导图
- 95后阿里P7晒出工资单:狠补了这个,真香....
- SDK:BUMO GO SDK
- 客户管理系统软件怎么用?