代码如下;使用CFree;

#include <windows.h>int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR     lpCmdLine,int       nCmdShow)
{/* TODO: Place code here.*/HGLOBAL     hGlobal ;PTSTR       pGlobal ;HWND hwnd = FindWindow(NULL, "计算器");OpenClipboard (hwnd) ;        hGlobal = GetClipboardData (CF_TEXT) ;if (hGlobal != NULL){pGlobal = (PTSTR) GlobalLock (hGlobal) ;MessageBox(NULL, pGlobal, "获取剪贴板文本", MB_OK);GlobalUnlock (hGlobal) ;}CloseClipboard () ;return 0;
}

先查找 计算器 窗口;然后打开其剪贴板,然后获取内容;

如果是对于UNICODE文本则使用 hGlobal = GetClipboardData (CF_UNICODETEXT) ;

HGLOBAL是兼容以前windows 3.x时代的16位内存分配API的数据,表示一个内存块,这个内存块是GlobalAlloc分配的,需要GlobalLock才能取得内存块的指针。
不过在Win32下,这个数据和Global内存分配函数没有用了,保留下来只是为了兼容。而且在Win32下,HGLOBAL就是一个void *的指针,可以不用GlobalLock直接使用来访问内存。
注意:但是某种特定情况下还是需要使用GlobalAlloc 和 HGLOBAl ,如CreateStreamOnHGlobal、CoTaskMemAlloc。

Globallock函数:
锁定内存中指定的内存块,并返回一个地址值,令其指向内存块的起始处。除非用 GlobalUnlock 函数将内存块解锁,否则地址会一直保持有效。
参数
hMem Long,指定一个全局内存块的句柄。

先运行win自带计算器,输入一些数据,在计算器菜单中点击 复制 菜单,此时计算器输入的内容被拷贝到剪贴板;然后启动程序;

运行如下;

程序弹出消息框显示获取的剪贴板内容,程序运行后会弹出消息框显示计算器剪贴板的内容;但是当消息框显示的时候无法用键盘的PrtSc键截图;因为此时内存是全局锁定的;

Win32 API 获取其他程序剪贴板内容相关推荐

  1. api gitlab 取文件_如何通过GitLab REST API获取文件的原始内容?

    GitLab API的以下REST URL为我提供了项目的存储库树.如何通过GitLab REST API获取文件的原始内容? 获取回购树(工程) https://gitlab.gspt.net/ap ...

  2. 易语言API获取进程程序路径

    通过传递进程ID取指定进程的程序路径,成功返回程序路径,失败返回空,用到以下API: 1.CreateToolhelp32Snapshot 快照句柄 = CreateToolhelp32Snapsho ...

  3. 使用Win32 API获取Windows系统主题色

    在Windows7以后增加了系统主题色的功能,这个功能一直延续到了Windows10.如图: 如果需要在程序中获取到这个颜色值,那么可以使用微软提供的一个Win32 API:DwmGetColoriz ...

  4. 使用 Win32 API 枚举应用程序

    概要 一个常见的编程任务是枚举所有运行的"应用程序".Windows 任务管理器就是一个很好的例子.它用两种方式列出"应用程序".任务管理器的第一个选项卡列出桌 ...

  5. linux系统获取光盘信息api,C++ 通过WIN32 API 获取逻辑磁盘详细信息的几种方法

    今天我们主要介绍的是几个常用的api函数,通过它我们可以获取用户磁盘的相关信息 其主要函数原型说明如下: 1.获取系统中逻辑驱动器的数量 The GetLogicalDrives function r ...

  6. C++通过WIN32 API获取逻辑磁盘详细信息

    1 #include <iostream> 2 #include <windows.h> 3 using namespace std; 4 5 int main() 6 { 7 ...

  7. Win32 API 概论

    1.1为什么使用 Win32 API 在Windows程序设计领域处于发展初期时,Windows程序员可使用的编程工具唯有API函数.这些函数在程序员手中犹如"积木块"一样,可搭建 ...

  8. Win32 API概论

    1.1为什么使用 Win32 API 在Windows程序设计领域处于发展初期时,Windows程序员可使用的编程工具唯有API函数.这些函数在程序员手中犹如"积木块"一样,可搭建 ...

  9. C#调用Win32 api学习总结

    转载:https://blog.csdn.net/bcbobo21cn/article/details/50930221 从.NET平台调用Win32 API Win32 API可以直接控制Micro ...

最新文章

  1. VMware桌面虚拟化在学校机房的应用
  2. 上交大实时姿态估计AlphaPose
  3. Java instanceof 关键字【复习】
  4. 重写ScrollView实现两个ScrollView的同步滚动显示
  5. javascript函数调用的各种方法!!
  6. 枚举的定义与使用 1127 c#
  7. 抽取类的#技巧#成员变量最可能
  8. 图像语义分割(14)-FastFCN: 重新思考语义分割模型主干网络中的扩张卷积
  9. 写了一个很矬( cuó)的移动端用户管理
  10. webpack 3 零基础入门教程 #16 - 使用 ProvidePlugin 插件来处理像 jQuery 这样的第三方包...
  11. AutoDesk CAD 2014安装VBA Enabler图文教程(附AutoCAD_2014_VBA_Win_64bit下载)
  12. 使用PMBus总线监控电源管理芯片UCD90120
  13. 含泪整理最优质平板Rhino犀牛模型素材,你想要的这里都有
  14. 使用VST机架效果进行人声处理的顺序及相关插件
  15. 深度揭秘安全领域的那些“大牛” 竟过半在360
  16. mhl数据线_利用MHL数据线 手机同屏到乐视电视X50air上
  17. 国际贸易术语解释通则(DEQ 目的港码头交货(……指定目的港))
  18. spark、hadoop、storm、solr、es在车辆分析上的分析与比较
  19. Android WebRTC实现音视频对讲
  20. 动易安全开发手册[zt]

热门文章

  1. Apache Ignite与Apache Hive的个人理解与总结
  2. 1.7 时间延时器和类的别名
  3. linux杀java线程,如何在Linux下找出大量占用CPU的java线程
  4. 转载:js拖拽文本文档并读取内容到textarea
  5. java中的dispose()方法
  6. # C# 学习笔记(4) 类
  7. 将两个DataFrame拼接起来,除了concat还有append()
  8. matlab之矩阵基础应用
  9. ajax插件库,03.vue-ajax、vue UI 组件库
  10. linux系统安装柯美打印机,柯尼卡美能达复印机中标麒麟系统驱动安装