当前位置: 首页 > news >正文

Windows C++: 剪切板内容获取

        获取Windows用户的剪切操作是部分程序的需求,我们同样可以利用这个功能做一个小工具来记忆曾经的复制内容。

代码示例

if (OpenClipboard(nullptr)) {// 打开剪贴板HANDLE hClipboardData = GetClipboardData(CF_UNICODETEXT);// 获取剪贴板中的Unicode文本数据if (hClipboardData) {// 如果剪贴板中存在Unicode文本数据wchar_t* pwchData = static_cast<wchar_t*>(GlobalLock(hClipboardData));// 锁定内存对象以访问数据if (pwchData) {// 如果成功锁定内存对象std::wstring clipboardText(pwchData);// 将获取的剪贴板数据转换为std::wstring对象GlobalUnlock(hClipboardData);// 解锁内存对象// std::wcout << L"Clipboard text: " << clipboardText << std::endl;// 输出剪贴板文本内容到控制台,已被注释掉writeDb(clipboardText);// 将剪贴板文本传递给writeDb函数}}CloseClipboard();// 关闭剪贴板
}
  • OpenClipboard(nullptr):

    • OpenClipboard函数用于打开剪贴板以便进行操作。传递nullptr表示与当前任务相关联的剪贴板。
    • 如果成功打开剪贴板,函数返回非零值,否则返回零。
  • GetClipboardData(CF_UNICODETEXT):

    • GetClipboardData函数从剪贴板中检索数据。参数CF_UNICODETEXT表示希望获取Unicode文本数据。
    • 返回值是一个HANDLE类型的指针,指向剪贴板中的数据。
  • GlobalLock(hClipboardData):

    • GlobalLock函数用于锁定全局内存对象以获取指向数据的指针。
    • 返回值是一个指向内存对象的指针。此指针用于访问剪贴板中的实际数据。
  • std::wstring clipboardText(pwchData):

    • 构造一个std::wstring对象clipboardText,将pwchData中的数据复制到clipboardText中。
    • std::wstring是C++标准库中的宽字符字符串类。
  • GlobalUnlock(hClipboardData):

    • GlobalUnlock函数用于解锁内存对象。解锁后数据仍然存在,但指针无效。
  • writeDb(clipboardText):

    • 自定义函数writeDb用于处理剪贴板中的文本数据。在本代码中,假定writeDb函数已被定义,用于将文本写入数据库或执行其他操作。
  • CloseClipboard():

    • CloseClipboard函数用于关闭剪贴板。关闭后,其他应用程序可以访问剪贴板。

DEMO

我们可以直接监控,但是程序必须阻塞,也可以开线程来监控。

一下使我做的一个基于QT6的粘贴板记忆小工具。使用inno打包,可以直接安装在机器上:

 GitHub - bowenliu1996/ClipBoardMemory: Paste board memory capture

http://www.lryc.cn/news/370273.html

相关文章:

  • 1panel运维面板
  • 人工智能GPT-4o?
  • python之语法糖
  • 纷享销客海外合规观点与方案:个人隐私数据保护与数据出入境
  • 公司面试题总结(四)
  • 守护山川,联通希望 —— 北斗户外应急呼叫柱:野外安全的守护神
  • 使用canvas制作一个无人机旋转特效
  • 感受风的速度~2024COSP上海国际户外展为您的骑行之旅锦上添花
  • 冲12分top刊|乳腺癌单细胞细分亚型的正确打开方式
  • 1-Maven-settings配置
  • 使用服务器搭建个人图床
  • 探索 doc 和 docx 文件格式的区别
  • kettle学习(利用jsonPath定位,json文件转换)
  • 选到哪里看命
  • MyBatis插件机制介绍与原理
  • [每日一练]利用.str.len()布尔值查询实现字数需求
  • Post Microsoft Build and AI Day 北京开发者日
  • Qt-Advanced-Docking-System的学习
  • STM32定时器输出pwm的几种模式
  • 5 分支结构程序-5.1 关系运算符和表达式
  • 提升易用性,OceanBase生态管控产品的“从小到大”
  • Golang——gRPC认证
  • 探索FPGA技术:零成本入门指南
  • Java数据结构与算法(组合问题回溯算法)
  • CMake的使用方法
  • java面试整合全套
  • 贪吃蛇小游戏简单制作-C语言
  • Oracle数据库-重点信息查询方法
  • 【全开源】多平台租房系统源码(Fastadmin+ThinkPHP+Uniapp)
  • Pythond 的 corr函数