博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剪切板使用详解
阅读量:4693 次
发布时间:2019-06-09

本文共 926 字,大约阅读时间需要 3 分钟。

剪切板:系统维护的一个全局公共内存区域,每次只允许一个进程对其进行访问。

1.打开剪切板
Bool OpenClipboard(HWND hWndNewOwner);
指定关联到打开剪切板的窗口句柄,传入NULL表示关联到当前任务。每次只允许一个进程打开并访问,每一次打开就要关闭,否则其他的进程无法访问剪切板。
2.清空剪切板
Bool EmptryClipboard(void)
写入前必须先清空,得到剪切板占有权。
3.分配内存
HGLOBAL GlobalAlloc(UNIT uFlags,SIZE_T dwBytes);
在堆上动态分配以字节为单位的内存区域,成功则指向该内存,失败NULL,参数:1.分配内存属性,2.分配的大小
4.锁定内存
LPVOID FlobalLock(HGLOBAL hMem);
锁定由GlobalAlloc分配的内存,并将内存对象的锁定计数器+1,成功返回指向内存对象起始地址的指针。失败NULL,系统为每个全局内存对象维护一个锁定计数器,初始为0,GlobalLock使计数器+1,GlobalUnLock计数器-1.一旦计数器值大于0,这块内存区域将不允许被移动或删除,只有当为0时,才解除对这块内存的锁定。如果分配时GMEM_FIXED属性,计数器一直为0。
5.设置剪切板
HANDLE SetClipboardData(UINT uFormat, HANDLE hMem);
执行成功,返回数据句柄,否则返回NULL
6.解除锁定
BOOL GlobalUnlock(HGLOBAL hMem);
将GlobalAlloc分配的属性为GMEM_MOVEABLE的内存对象计数器-1.
7.关闭剪切板
Bool CloseClipboard(void);
必须关闭剪切板其他进程才能使用剪切板,且关闭后当前进程就不能写入数据。
8.获取剪切板数据
HANDLE GetClipboardData(UINT uFormat);
执行成功,返回数据句柄,否则返回NULL数据格式,指定格式的数据的句柄

 

转载于:https://www.cnblogs.com/lailaio/p/4346303.html

你可能感兴趣的文章
SSH加固
查看>>
端口扫描base
查看>>
iOS IM开发的一些开源、框架和教程等资料
查看>>
FansUnion:共同写博客计划终究还是“流产”了
查看>>
python 二维字典
查看>>
pip 警告!The default format will switch to columns in the future
查看>>
Arrays类学习笔记
查看>>
实验吧之【天下武功唯快不破】
查看>>
2019-3-25多线程的同步与互斥(互斥锁、条件变量、读写锁、自旋锁、信号量)...
查看>>
win7-64 mysql的安装
查看>>
dcm4chee 修改默认(0002,0013) ImplementationVersionName
查看>>
maven3在eclipse3.4.2中创建java web项目
查看>>
发布时间 sql语句
查看>>
黑马程序员 ExecuteReader执行查询
查看>>
记一些从数学和程序设计中体会到的思想
查看>>
题目1462:两船载物问题
查看>>
POJ 2378 Tree Cutting(树形DP,水)
查看>>
第二冲刺阶段个人博客5
查看>>
UVA 116 Unidirectional TSP (白书dp)
查看>>
第三方测速工具
查看>>