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
相关文章:
Windows C++: 剪切板内容获取
获取Windows用户的剪切操作是部分程序的需求,我们同样可以利用这个功能做一个小工具来记忆曾经的复制内容。 代码示例 if (OpenClipboard(nullptr)) {// 打开剪贴板HANDLE hClipboardData GetClipboardData(CF_UNICODETEXT);// 获取剪贴板中的Unicode文本数据if …...
1panel运维面板
文章目录 引言I 安装防火墙II 借助运维面板1panel运维面板安装nacos 引言 在 SSH 终端输入以下命令来查看面板入口: 1pctl user-info 提示:修改密码可执行命令:1pctl update password I 安装防火墙 https://1panel.cn/docs/user_manual/hosts/firewall…...
人工智能GPT-4o?
对比分析 在讨论GPT-4o时,我们首先需要了解其前身,即GPT-4,以及其之前的版本。GPT系列从GPT-1到GPT-4经历了多次迭代,每一次都带来了显著的进步。 GPT-4 vs GPT-4o: 1. **参数规模:** GPT-4o在参数规模上…...
python之语法糖
一.语法糖 语法糖不是糖,而是编程语言中的某些特殊写法,这些写法让书写起来更加简洁,容易理解,因此被叫做语法糖 二.语法糖分类 数字分隔符 a 10_0000_0000交换变量值 a 1;b 2 a,b b,a连续比较式 a 90 if 80<a<100: print(‘优秀’)字符串乘法 a ‘_’*10列表拼…...
纷享销客海外合规观点与方案:个人隐私数据保护与数据出入境
出海,已不再是企业的“备胎”,而是必须面对的“大考”!在这个全球化的大潮中,有的企业乘风破浪,勇攀高峰,也有的企业在异国他乡遭遇了“水土不服”。 面对“要么出海,要么出局”的抉择…...
公司面试题总结(四)
19.请解释什么是事件代理,应用场景 ⚫ 事件流的都会经过三个阶段: 捕获阶段 -> 目标阶段 -> 冒泡阶段,而事件委托就是 在冒泡阶段完成 ⚫ 事件委托,会把一个或者一组元素的事件委托到它的父层或者更外层元素上…...
守护山川,联通希望 —— 北斗户外应急呼叫柱:野外安全的守护神
在大自然的怀抱中,每一次探险和巡检都是对未知的挑战,也是对安全的考验。北斗户外应急呼叫柱,以科技创新为基石,致力于在最偏远、最危险的环境中搭建起生命的桥梁,确保每一次求救都能被听见,每一处危机都能…...
使用canvas制作一个无人机旋转特效
使用HTML5的Canvas API来制作一个无人机旋转特效。这个特效将包括一个无人机图标(你可以使用任何你喜欢的图标),它会在一个固定的位置旋转。 首先,我们需要创建一个HTML文件,然后在其中添加一个canvas元素。canvas…...
感受风的速度~2024COSP上海国际户外展为您的骑行之旅锦上添花
夏天已经到来 你是在家里宅着 还是出去晒太阳呢 若是还没抉择好 不如来一场畅快淋漓的追风之旅 抬头可见蓝天白云 低头便是美丽风景 无论是在凉亭闲聊的人们 还是竞相绽放的花朵 每一个场景都令人难忘 骑累了 就到附近的座椅上小憩一番 不用刻意追求速度 尽享“慢…...
冲12分top刊|乳腺癌单细胞细分亚型的正确打开方式
说在前面 学习一下一篇自测数据工作量叠满的单细胞文章,也算是多组学的了,bulkRNAscRNA,还有个伪RNA。 整体是一个单细胞分小群的研究思路,分出三种上皮细胞亚群(BM、LP、ML),在功能、免疫、预…...
1-Maven-settings配置
1-Maven-settings配置 整理下Maven工具的使用。 【本地仓库、私服、镜像仓库、远程仓库、中央仓库】 本文基于阅读其他博客和对公司Maven配置的学习整理出来的。希望通过本此学习能对Maven有个整体性的掌控。 顺序:profile.repository > pom文件中的repository &…...
使用服务器搭建个人图床
前置条件 云服务器picGo软件,下载地址开始搭建 发布站点 该步骤不一一说明,主要说明搭建图床的步骤。 可以直接使用nginx或者宝塔面板,发布一个静态资源的文件夹。 假如我发布的文件路径是/www/img,访问地址是http://cc.cc.cc(没有域名ip地址也行) 在img下建立两个文件夹…...
探索 doc 和 docx 文件格式的区别
人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…...
kettle学习(利用jsonPath定位,json文件转换)
kettle学习(利用jsonPath定位,json文件转换) 于数据处理的广袤天地间,我们时常需应对各类繁杂状况与各式格式。Kettle 作为极具威力的数据集成利器,赋予了我们诸多功能与无限可能此次博客里,我们将重点投向…...
选到哪里看命
srand()、rand() srand(static_cast<unsigned int>(time(nullptr))) 是 C 中用于初始化随机数生成器(Random Number Generator, RNG)的一个常用语句。srand 函数是 C 标准库 <cstdlib> 中的一部分,用于设置随机数发生器的种子值…...
MyBatis插件机制介绍与原理
插件简介 什么是插件 插件是一种软件组件,可以在另一个软件程序中添加功能或特性。插件通常被设计成可以 随时添加或删除 的,而不影响 主程序 的功能。插件可以 扩展 软件程序的功能,这让用户可以根据自己的需求定制软件,提高工作…...
[每日一练]利用.str.len()布尔值查询实现字数需求
该题目来源于力扣: 1683. 无效的推文 - 力扣(LeetCode) 题目要求: 表:Tweets ------------------------- | Column Name | Type | ------------------------- | tweet_id | int | | content …...
Post Microsoft Build and AI Day 北京开发者日
Microsoft Build 开发者大会 Microsoft Build 开发者大会是微软每年一次的开发者技术盛会,旨在向全球开发者展示微软最新的技术、产品和服务。 刚刚过去的 2024 Microsoft Build 开发者大会围绕 Copilot、生成式 AI、应用程序安全、云平台、低代码等多个技术方向&a…...
Qt-Advanced-Docking-System的学习
Qt5.12实现Visual Studio 2019 拖拽式Dock面板-Qt-Advanced-Docking-System_c_saide6000-GitCode 开源社区 (csdn.net) 我使用的是Qt5.5.0 开始,我下载的是最新版的源码:4.1版本 但是,打开ads.pro工程文件,无法编译成功。 然后…...
STM32定时器输出pwm的几种模式
目录 定时器 输出脉冲模式: PWM模式(PWM Mode) 输出比较模式(Output Compare Mode) 总结 占空比: 输出比较模式与占空比 PWM模式与占空比 输出比较模式与PWM模式的结合 输出比较模式实例…...
WarcraftHelper魔兽争霸插件:5分钟解决老游戏兼容性问题,让经典重获新生
WarcraftHelper魔兽争霸插件:5分钟解决老游戏兼容性问题,让经典重获新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为…...
ZPL文件操作避坑指南:从OPEN到CLOSE的5个常见错误排查
ZPL文件操作避坑指南:从OPEN到CLOSE的5个常见错误排查 在光学设计领域,ZPL宏作为ZEMAX的自动化利器,文件操作是绕不开的核心技能。但当你从教程里的完美示例转向真实项目时,那些被刻意简化的场景往往会暴露出各种"坑"。…...
RViz实战:如何用C++在ROS中动态切换不同形状的物体(含避坑指南)
RViz实战:如何用C在ROS中动态切换不同形状的物体(含避坑指南) 在机器人开发过程中,RViz作为ROS生态中的三维可视化利器,其核心价值在于让抽象的数据变得直观可见。而Marker消息系统则是实现这种可视化的关键桥梁——它…...
从FGSM到DeepFool:六大对抗攻击算法实战解析与代码实现
1. 对抗攻击入门:为什么你的AI模型会被"骗"? 想象一下,你训练了一个能准确识别五种花卉的CNN模型,测试集准确率高达95%。但某天有人拿着张明显是玫瑰的图片,你的模型却坚定地认为是郁金香——这就是对抗攻击…...
USB2.0供电那些事儿:为什么你的外设总是供电不足?
USB2.0供电困境解析:从原理到实践的全面解决方案 当你的移动硬盘突然断开连接,或者外接键盘间歇性失灵时,很可能正遭遇USB2.0供电不足的经典难题。这种看似简单的接口背后,隐藏着复杂的电力分配机制与设备兼容性博弈。本文将带你穿…...
WordPress建站避坑指南:Ubuntu服务器常见权限问题与安全配置
WordPress建站避坑指南:Ubuntu服务器常见权限问题与安全配置 引言:为什么你的WordPress网站总出问题? 每次看到新手开发者兴奋地宣布"我的WordPress网站上线了",我都忍不住想问:你真的检查过文件权限了吗&am…...
Minica 源码解读:深入理解证书生成的核心算法
Minica 源码解读:深入理解证书生成的核心算法 【免费下载链接】minica minica is a small, simple CA intended for use in situations where the CA operator also operates each host where a certificate will be used. 项目地址: https://gitcode.com/gh_mirr…...
Squeezer安全最佳实践:保护区块链dApp的10个关键点
Squeezer安全最佳实践:保护区块链dApp的10个关键点 【免费下载链接】squeezer Squeezer Framework - Build serverless dApps 项目地址: https://gitcode.com/gh_mirrors/sq/squeezer Squeezer Framework作为构建无服务器区块链去中心化应用(dApp…...
Qwen3-4B-Instruct-2507从入门到精通:Chainlit界面定制化教程
Qwen3-4B-Instruct-2507从入门到精通:Chainlit界面定制化教程 1. 引言:为什么选择Qwen3-4B-Instruct-2507? 如果你正在寻找一个既强大又轻量、既能快速部署又能灵活定制界面的AI模型,那么Qwen3-4B-Instruct-2507绝对值得你深入了…...
FPGA Multiboot翻车实录:从XDC配置到ICAPE2,我的W25Q128分区血泪史与避坑指南
FPGA Multiboot实战:从配置陷阱到Flash分区优化的全流程解析 第一次在量产产品中实现FPGA远程更新功能时,我盯着实验室里突然变砖的开发板,后背渗出一层冷汗。原本以为按照官方文档配置就能万无一失,没想到Multiboot这个看似简单的…...
