操作剪贴板
来源:互联网 发布:淘宝cf刷枪 编辑:程序博客网 时间:2024/05/03 10:55
剪贴板:
一、将数据送到剪贴板
<1>、内存配置
HGLOBAL hGlobal ;
hGlobal = GlobalAlloc (GHND | GMEM_SHARE,(lstrlen (pText) + 1) * sizeof (TCHAR)) ;
为什么不用malloc: 在Windows中执行的应用程序之间必须要共享剪贴簿所储存的内存块
<2>、锁定刚分配的内存
PTSTR pGlobal ;
pGlobal = (TCHAR*)GlobalLock (hGlobal);
为什么要锁定?Windows将固定虚拟内存中的地址,不再移动那块内存
<3>、写入数据
lstrcpy (pGlobal, pText) ;
<4>、解锁定
GlobalUnlock (hGlobal) ;
这将使Windows可以在虚拟内存中移动内存块.(不要把锁定的内存句柄交给剪贴簿)
<5>、打开剪贴簿并把它清空
OpenClipboard () ;
EmptyClipboard () ;
<6>、利用CF_TEXT标识符把内存句柄交给剪贴簿,关闭剪贴簿:
SetClipboardData (CF_TEXT, hGlobal) ;
CloseClipboard () ;
二、从剪贴簿获取数据
<1>、打开剪贴簿
OpenClipboard () ;
<2>、确定剪贴簿是否含有文字
HGLOBAL hGlobal ;
if( hGlobal = GetClipboardData(CF_TEXT) )
{
}
如果hGlobal为NULL则说明 剪贴簿中没有文字. 得到的句柄并不属于使用者程序-它属于剪贴簿
<3>、锁定剪贴簿
PTSTR pGlobal ;
pGlobal = (TCHAR*)GlobalLock (hGlobal);
<4>、配置一块与剪贴簿数据块大小相同的内存块,并配置一个指向该块的指标:
PTSTR pText;
pText = (TCHAR*) malloc (GlobalSize (hGlobal)) ;
<5>、读出数据
lstrcpy (pText, pGlobal) ;
<6>、解锁定
GlobalUnlock (hGlobal) ;
<7>、关闭剪贴簿
CloseClipboard () ;
- 操作剪贴板
- 剪贴板操作
- 剪贴板操作
- 剪贴板操作
- 剪贴板操作
- 剪贴板操作
- 剪贴板操作
- 剪贴板操作
- 剪贴板操作
- 剪贴板操作
- 剪贴板操作
- 剪贴板操作
- 剪贴板的操作
- [转帖]剪贴板操作
- VC 剪贴板操作
- Visual C++剪贴板操作
- VB剪贴板操作
- VC的剪贴板操作
- 好好生活,好好工作,好好学习
- 刚上路
- 撤消TFS中其他用户对文件的锁定
- 各类颜色空间
- 忽悠的史玉柱,害人的网游!
- 操作剪贴板
- Net中的事件与委托
- Ajax并不是一种技术(Ajax入门好文章)
- 深入探讨Spring与Struts集成方案
- 用WebWork、JSP、Velocity建立注册页面
- ADO.NET中的职责分配
- Adobe cs3问题解决方案
- 沧桑的金山终于上市了
- C# Attribute