当前位置: 首页 > 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

相关文章:

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

获取Windows用户的剪切操作是部分程序的需求&#xff0c;我们同样可以利用这个功能做一个小工具来记忆曾经的复制内容。 代码示例 if (OpenClipboard(nullptr)) {// 打开剪贴板HANDLE hClipboardData GetClipboardData(CF_UNICODETEXT);// 获取剪贴板中的Unicode文本数据if …...

1panel运维面板

文章目录 引言I 安装防火墙II 借助运维面板1panel运维面板安装nacos 引言 在 SSH 终端输入以下命令来查看面板入口: 1pctl user-info 提示&#xff1a;修改密码可执行命令&#xff1a;1pctl update password I 安装防火墙 https://1panel.cn/docs/user_manual/hosts/firewall…...

人工智能GPT-4o?

对比分析 在讨论GPT-4o时&#xff0c;我们首先需要了解其前身&#xff0c;即GPT-4&#xff0c;以及其之前的版本。GPT系列从GPT-1到GPT-4经历了多次迭代&#xff0c;每一次都带来了显著的进步。 GPT-4 vs GPT-4o&#xff1a; 1. **参数规模&#xff1a;** GPT-4o在参数规模上…...

python之语法糖

一.语法糖 语法糖不是糖,而是编程语言中的某些特殊写法,这些写法让书写起来更加简洁,容易理解,因此被叫做语法糖 二.语法糖分类 数字分隔符 a 10_0000_0000交换变量值 a 1;b 2 a,b b,a连续比较式 a 90 if 80<a<100: print(‘优秀’)字符串乘法 a ‘_’*10列表拼…...

纷享销客海外合规观点与方案:个人隐私数据保护与数据出入境

出海&#xff0c;已不再是企业的“备胎”&#xff0c;而是必须面对的“大考”&#xff01;在这个全球化的大潮中&#xff0c;有的企业乘风破浪&#xff0c;勇攀高峰&#xff0c;也有的企业在异国他乡遭遇了“水土不服”。 面对“要么出海&#xff0c;要么出局”的抉择&#xf…...

公司面试题总结(四)

19.请解释什么是事件代理&#xff0c;应用场景 ⚫ 事件流的都会经过三个阶段&#xff1a; 捕获阶段 -> 目标阶段 -> 冒泡阶段&#xff0c;而事件委托就是 在冒泡阶段完成 ⚫ 事件委托&#xff0c;会把一个或者一组元素的事件委托到它的父层或者更外层元素上&#xf…...

守护山川,联通希望 —— 北斗户外应急呼叫柱:野外安全的守护神

在大自然的怀抱中&#xff0c;每一次探险和巡检都是对未知的挑战&#xff0c;也是对安全的考验。北斗户外应急呼叫柱&#xff0c;以科技创新为基石&#xff0c;致力于在最偏远、最危险的环境中搭建起生命的桥梁&#xff0c;确保每一次求救都能被听见&#xff0c;每一处危机都能…...

使用canvas制作一个无人机旋转特效

​ 使用HTML5的Canvas API来制作一个无人机旋转特效。这个特效将包括一个无人机图标&#xff08;你可以使用任何你喜欢的图标&#xff09;&#xff0c;它会在一个固定的位置旋转。 首先&#xff0c;我们需要创建一个HTML文件&#xff0c;然后在其中添加一个canvas元素。canvas…...

感受风的速度~2024COSP上海国际户外展为您的骑行之旅锦上添花

夏天已经到来 你是在家里宅着 还是出去晒太阳呢 若是还没抉择好 不如来一场畅快淋漓的追风之旅 抬头可见蓝天白云 低头便是美丽风景 无论是在凉亭闲聊的人们 还是竞相绽放的花朵 每一个场景都令人难忘 骑累了 就到附近的座椅上小憩一番 不用刻意追求速度 尽享“慢…...

冲12分top刊|乳腺癌单细胞细分亚型的正确打开方式

说在前面 学习一下一篇自测数据工作量叠满的单细胞文章&#xff0c;也算是多组学的了&#xff0c;bulkRNAscRNA&#xff0c;还有个伪RNA。 整体是一个单细胞分小群的研究思路&#xff0c;分出三种上皮细胞亚群&#xff08;BM、LP、ML&#xff09;&#xff0c;在功能、免疫、预…...

1-Maven-settings配置

1-Maven-settings配置 整理下Maven工具的使用。 【本地仓库、私服、镜像仓库、远程仓库、中央仓库】 本文基于阅读其他博客和对公司Maven配置的学习整理出来的。希望通过本此学习能对Maven有个整体性的掌控。 顺序&#xff1a;profile.repository > pom文件中的repository &…...

使用服务器搭建个人图床

前置条件 云服务器picGo软件,下载地址开始搭建 发布站点 该步骤不一一说明,主要说明搭建图床的步骤。 可以直接使用nginx或者宝塔面板,发布一个静态资源的文件夹。 假如我发布的文件路径是/www/img,访问地址是http://cc.cc.cc(没有域名ip地址也行) 在img下建立两个文件夹…...

探索 doc 和 docx 文件格式的区别

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…...

kettle学习(利用jsonPath定位,json文件转换)

kettle学习&#xff08;利用jsonPath定位&#xff0c;json文件转换&#xff09; 于数据处理的广袤天地间&#xff0c;我们时常需应对各类繁杂状况与各式格式。Kettle 作为极具威力的数据集成利器&#xff0c;赋予了我们诸多功能与无限可能此次博客里&#xff0c;我们将重点投向…...

选到哪里看命

srand()、rand() srand(static_cast<unsigned int>(time(nullptr))) 是 C 中用于初始化随机数生成器&#xff08;Random Number Generator, RNG&#xff09;的一个常用语句。srand 函数是 C 标准库 <cstdlib> 中的一部分&#xff0c;用于设置随机数发生器的种子值…...

MyBatis插件机制介绍与原理

插件简介 什么是插件 插件是一种软件组件&#xff0c;可以在另一个软件程序中添加功能或特性。插件通常被设计成可以 随时添加或删除 的&#xff0c;而不影响 主程序 的功能。插件可以 扩展 软件程序的功能&#xff0c;这让用户可以根据自己的需求定制软件&#xff0c;提高工作…...

[每日一练]利用.str.len()布尔值查询实现字数需求

该题目来源于力扣&#xff1a; 1683. 无效的推文 - 力扣&#xff08;LeetCode&#xff09; 题目要求&#xff1a; 表&#xff1a;Tweets ------------------------- | Column Name | Type | ------------------------- | tweet_id | int | | content …...

Post Microsoft Build and AI Day 北京开发者日

Microsoft Build 开发者大会 Microsoft Build 开发者大会是微软每年一次的开发者技术盛会&#xff0c;旨在向全球开发者展示微软最新的技术、产品和服务。 刚刚过去的 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 开始&#xff0c;我下载的是最新版的源码&#xff1a;4.1版本 但是&#xff0c;打开ads.pro工程文件&#xff0c;无法编译成功。 然后…...

STM32定时器输出pwm的几种模式

目录 定时器 输出脉冲模式&#xff1a; PWM模式&#xff08;PWM Mode&#xff09; 输出比较模式&#xff08;Output Compare Mode&#xff09; 总结 占空比&#xff1a; 输出比较模式与占空比 PWM模式与占空比 输出比较模式与PWM模式的结合 输出比较模式实例&#xf…...

5 分支结构程序-5.1 关系运算符和表达式

【例 5.1】 #include <stdio.h>main() {char c k;int i 1, j 2, k 3;float x 3e5, y 0.85;printf("%d,%d\n",a 5 < c, -i - 2 * j > k 1);printf("%d,%d\n", 1 < j < 5, x - 5.25 < x y);printf("%d,%d\n", i j…...

提升易用性,OceanBase生态管控产品的“从小到大”

2022年&#xff0c;OceanBase发布4.0版本“小鱼”&#xff0c;并首次公开提出了单机分布式一体化这一理念&#xff0c;旨在适应大小不同规模的工作负载&#xff0c;全面满足用户数据库“从小到大”全生命周期的需求。当时&#xff0c;我们所说的“从小到大”主要聚焦于数据库的…...

Golang——gRPC认证

一. OpenSSL 1.1 介绍 OpenSSL是一个开放源代码的软件库包&#xff0c;用于支持网络通讯过程中的加密。这个库提供的功能包含了SSL和TLS协议的实现&#xff0c;并可用于生成密钥、证书、进行密码运算等。 其组成主要包括一下三个组件&#xff1a; openssl&#xff1a;多用途的命…...

探索FPGA技术:零成本入门指南

FPGA作为一门前沿的集成电路技术&#xff0c;不仅在数字电子领域有着广泛的应用&#xff0c;而且对于硬件编程和数字电路设计的学习者来说&#xff0c;是一次深入了解技术原理的绝佳机会。现在&#xff0c;让我们看看如何不花一分钱&#xff0c;就能开始我们的FPGA学习之旅。 方…...

Java数据结构与算法(组合问题回溯算法)

前言 上期重点介绍了回溯算法在约束满足问题情况下应用。这期看看在组合问题场景下如何使用。 回溯算法通常用于解决以下几类问题&#xff1a; 1. 组合问题 需要从集合中选择一些元素&#xff0c;并找出所有可能的组合。例子&#xff1a;子集生成问题、组合数问题&#xff…...

CMake的使用方法

1 CMakeLists.txt编写 cmake_minimum_required(VERSION 3.12)project(djl_plm)set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdc17 -g")add_executable(simple simple.cpp) add_executable(main main.cpp)include_directories(include) 相当于如下gcc命令&#xff1…...

java面试整合全套

什么是Java &#xff08;定义 优点&#xff09; java是一个平台&#xff0c;由jvm和Java应用编程接口构成的一门面向编程语言。 不仅吸收了C语言的各种优点&#xff0c;还摒弃了c语言里面的多继承,指针等概念&#xff0c;因此java的特征主要有功能强大和简单易用的特征。 jav…...

贪吃蛇小游戏简单制作-C语言

文章目录 游戏背景介绍实现目标适合人群所需技术浅玩Window API什么是API控制台程序窗口大小,名称设置 Handle(句柄)获取句柄 坐标结构体设置光标位置 光标属性获取光标属性设置光标属性 按键信息获取 贪吃蛇游戏设计游戏前的初始化设置窗口的大小和名称本地化设置 宽字符Waht …...

Oracle数据库-重点信息查询方法

文章目录 一、数据库信息及查询方法1.1是否为RAC1.2 数据库存储容量大小1.3 在线会话数1.4 最大分区数1.5 最大存储过程行数1.6 单表最大行数1.7 最大单表大小1.8 表总数量1.9 无主键表的数量1.10 字段数超过200的宽表1.11 关注CPU耗时高的SQL 一、数据库信息及查询方法 1.1是…...

【全开源】多平台租房系统源码(Fastadmin+ThinkPHP+Uniapp)

&#x1f3e0;多平台租房系统&#xff1a;一站式租房新体验&#x1f50d; &#x1f310;一、引言&#xff1a;租房市场的变革 在快节奏的现代生活中&#xff0c;租房已成为许多人解决居住问题的首选。然而&#xff0c;传统的租房方式往往繁琐且效率低下。随着互联网的飞速发展…...

医疗手机网站建设/惠州百度关键词优化

服务端效果图&#xff1a; 在发布端用定时器模拟数据上传给服务端。 移动端效果图&#xff1a; 变化的数字是从发布端上传到服务端&#xff0c;再推送到移动端。 1. nodejs 安装MQTT服务 1.1 安装 mqtt 服务器必要依赖项 mosca mqtt npm install mosca mqtt --save1.2 在项…...

最好的产品网站建设/网络推广费用大概价格

如何使技术工程师也能写出清晰和简洁的语句&#xff1f; 以新闻报道的文风加上技术报告的格式。在新闻报道里&#xff0c;各段落都是以重要性先后排列的&#xff0c;所以读者可以在任何一个丧失兴趣的段落停下来&#xff0c;他们知道最重要的部分都已经读到&#xff0c;余下未读…...

东莞seo关键词搜索关键词/国际站seo优化是什么意思

本文分享一个好用的php与mysql操作类&#xff0c;此mysql类与其它类的不同在于&#xff0c;可以设置表的读、写锁。有需要的朋友参考下吧。分享一个php与mysql操作类&#xff0c;代码&#xff1a;getConnected()) {$this->closeConnection();}if($this->connection ($bP…...

汽贸做网站有用处吗/大数据查询个人信息

SAP中有关差异的一些概念 2006年11月18日 23:11:00 JackWu 阅读数 6066 1.SAP关于成本的概念 2.差异的计算方法. 3.实际成本计算方法 4.SAP variance 1.成本的概念 标准成本标准价格 * 标准数量 作业价格 * 标准数量 计划成本计划价格 * 计划数量 作业价格 * 计划数量 …...

县建设局 协会网站/域名关键词排名查询

中新网1月17日电 据欧联网援引欧联通讯社报道&#xff0c;当地时间1月15日晚&#xff0c;一名搭乘意大利航空公司班机的30岁埃及男子&#xff0c;试图强行滞留意大利未果后被遣返。男子遭遣返登机后趁机舱关门之际跳机逃往机场起降区域&#xff0c;引发机场大乱被迫临时关闭&am…...

化妆品网站素材/网络品牌推广

本文针对grub故障及服务故障导致的开机无法启动的情况进行模拟&#xff0c;并给出修复详细步骤。一、grub各配置文件问题引起的开机故障可能出现此故障场景&#xff1a;当前硬盘没有grub&#xff0c;每次启动都是通过有grub的光盘或U盘启动的当前硬盘上的操作系统有两块硬盘其中…...