通常在自己的APP里的密码框,验证码框需要屏蔽复制,粘贴,怎么办呢?

有三种方法:

1 hook 此方法是最完全的,但由于hook是全局的,容易影响到其它代码。

2 子类化文本框, 重写OnPaste函数,拦截WM_Paste消息

3 在PreTranslateMessage里判断键盘扫描码和虚拟码

前两种方法都不能在一个函数里搞定,比较麻烦。这里就介绍第三个方法,具体代码如下:

[cpp] view plain copy

  1. BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)   
  2. {  
  3.     if (pMsg->message == WM_APPCOMMAND) return TRUE; // win 2000 以上api, 多媒体键盘, 如 Fn + F1, f2, ...  
  4.     if (pMsg->message == WM_RBUTTONDOWN) return TRUE;  
  5.     if (pMsg->message == WM_KEYDOWN)  
  6.     {  
  7.         while (pMsg->wParam >= VK_F1 && pMsg->wParam <= VK_F24) return TRUE;  
  8.         switch (pMsg->wParam)  
  9.         {  
  10.         case VK_CAPITAL:  
  11.             //0x8000 是键有否按下  
  12.             //0x0001 是键的翻转状态  
  13.             if (GetKeyState(VK_CAPITAL) & 0x0001)  
  14.             {  
  15.                 GetDlgItem(IDC_STC_CAPS)->ShowWindow(TRUE);  
  16.                 GetDlgItem(IDC_STC_CAPS)->SetWindowText(_T("大写状态己开启!"));  
  17.             }  
  18.             else GetDlgItem(IDC_STC_CAPS)->ShowWindow(FALSE);  
  19.             break;  
  20.         // ctrl + v, shift + ins, 鼠标右键paste, 菜单键(VK_APPS)paste等      
  21.         case VK_LAUNCH_APP1:  
  22.         case VK_LAUNCH_APP2:  
  23.         case VK_LCONTROL:  
  24.         case VK_RCONTROL:  
  25.         case VK_SHIFT:  
  26.         case VK_LSHIFT:  
  27.         case VK_RSHIFT:  
  28.         case VK_MENU:  
  29.         case VK_LMENU:  
  30.         case VK_RMENU:  
  31.         case VK_LWIN:  
  32.         case VK_RWIN:  
  33.         case VK_RBUTTON:  
  34.         case VK_EXECUTE:  
  35.         case VK_RETURN:  
  36.         case VK_SNAPSHOT:  
  37.         case VK_INSERT:  
  38.         case VK_APPS:  
  39.             this->SetFocus(); // 让文本框失去焦点,就无法弹出菜单栏  
  40.             return TRUE;  
  41.         case 'V':  
  42.             static int n = 0; // 第一、二次可以复制  
  43.             while (++n > 2 && (::GetKeyState(VK_CONTROL) & 0x8000)) return TRUE;  
  44.                 break;  
  45.         }  
  46.     }  
  47.     while (::GetKeyState(VK_MENU) & 0x8000)   
  48.     {  
  49.         return TRUE; // Alt 不会响应 WM_KEYDOWN  
  50.     }  
  51.     return CDialog::PreTranslateMessage(pMsg);  
  52. }  

以上只是大体的流程,还有考虑不周的地方,欢迎补充。

From: http://blog.csdn.net/tiandyoin/article/details/39474569

转载于:https://www.cnblogs.com/time-is-life/p/8158369.html

如何屏蔽ctrl + v 粘贴事件,鼠标右键粘贴事件相关推荐

  1. 天正计算机命令大全,天正CAD 中按Ctrl+v在不同图中粘贴出现“未知命令T81_tpasteclip”,直接在CAD中就能操作...

    天正CAD 中按Ctrl+v在不同图中粘贴出现"未知命令T81_tpasteclip",直接在CAD中就能操作以下文字资料是由(历史新知网www.lishixinzhi.com)小 ...

  2. Vue 框架-02-事件:点击, 双击事件,鼠标移上事件

    Vue 框架-02-事件:点击, 双击事件,鼠标移上事件 1.单击事件:v-on:click 源码 app2.js : //实例化 vue 对象 new Vue({//注意代码格式//el:eleme ...

  3. 简单前端web页面文字防复制 粘贴 剪切 鼠标右键 F12 shift+ctrl+i等,多浏览器支持

    简单的实现javaScript层面的文字防复制,只能说防君子不妨小人,有兴趣的人可以试试 <!DOCTYPE html> <html > <head> <me ...

  4. python tablewidget单击事件_QTableWidget右键单击事件有问题

    我能够通过继承QTableWidget来模拟右键单击事件: 头文件: #ifndef QRIGHCLICKTABLE_H #define QRIGHCLICKTABLE_H #include #inc ...

  5. pyqt5 treeview鼠标右键菜单事件_【动手实践】使用 Vue 自定义指令实现右键菜单...

    本文来自于 神奇的程序员 前言 浏览器里右键时会有一个默认的菜单,在我的开源项目中正好有自定义右键菜单的需求,在npm库找了下与之相关的包,发现都是以组件形式实现的,感觉那种做法太过繁琐. 于是,我就 ...

  6. Xshell如何设置鼠标右键粘贴

    1.打开Xshell,单击菜单栏的Tools(工具),选中Options(菜单),进入参数设置界面. 2. 选择Keyboard and Mouse (键盘和鼠标),把Right-bottox(向右按 ...

  7. 去掉MobaXterm默认鼠标右键粘贴的设置

    打开Settings----->进入Terminal(终端)---->执行第③步

  8. 前端讲义64_AngularJS鼠标与键盘事件有关指令

    ngMousedown 触发条件:鼠标按下,左右中间按下都会触发 ngMouseup 触发条件:鼠标按下弹起,左右中间按下弹起都会触发 ngMouseenter 触发条件:鼠标进入 ngMousele ...

  9. Ctrl c 复制html,一键复制粘贴(用热键代替Ctrl+X、Ctrl+C、Ctrl+V)

    在用电脑的时候大家少不了使用ctrl+c和ctrl+v键,也就是复制和粘贴快捷键,本次小编发布的这个一键复制粘贴工具可实现连续复制,顺序粘贴,帮您轻松完成繁琐的文字复制工作,也就是用热键代替Ctrl+ ...

最新文章

  1. Windows Phone 7 不温不火学习之《项目模板》
  2. android封装网络请求界面,轻松搞定 android MVP 架构、okHttp 网络模块封装 的 项目...
  3. Python3生成脚本实现重置键盘键位
  4. 【hive】hive----自定义UDF 函数-----时间格式化以及取出双引号的代码
  5. asp.net mvc源码分析-Action篇 DefaultModelBinder
  6. Fixcel电子表格——报表模块(一)
  7. 树莓派小车python pid_树莓派小车实现转弯(创乐博套件)
  8. ftp服务器文件不让上传,ftp服务器不让上传文件
  9. [转]谈爬虫反爬虫套路
  10. 计算机网络实验 IP网络规划与路由设计
  11. OpenGl运行窗口出现纯白色
  12. 计算机二级office一星期可以过么,计算机二级Ms office一周过关攻略
  13. 机器阅读理解之开山鼻祖Teaching Machines to Read and Comprehend
  14. 项目实训(十六)——总结
  15. linux IRQ Management(五)- irq_desc
  16. flash制作swf播放器
  17. STP、RSTP、MSTP合集思维导图
  18. 95后阿里P7晒出工资单:狠补了这个,真香....
  19. SDK:BUMO GO SDK
  20. 客户管理系统软件怎么用?

热门文章

  1. Linux 登陆火星,占有率再超 Windows,NASA 还在 GitHub 发布源码教程
  2. 我与编程:十载寒冰,难凉热血
  3. 感动!盲人计算机科学家研发语音浏览器,致力科技改善盲人生活
  4. 厉害!从电影花瓶到 Wi-Fi 之母,这才是乘风破浪的姐姐!
  5. 给定一个n,输出从1到n的整数
  6. cocos2d-x 3.x 场景切换特效大集合
  7. android线程及线程池
  8. LeetCode--024--两两交换链表中的节点(java)
  9. Linux 学习日记 3: 环境变量与文件查找
  10. mysql主从复制的简单配置