C++打开剪切板,获取剪切板数据
2017-02-21 20:28
239 查看
1 if (::OpenClipboard(NULL) && ::IsClipboardFormatAvailable(CF_HDROP)) 2 { 3 HDROP hDrop = (HDROP)::GetClipboardData(CF_HDROP); 4 if (hDrop != NULL) 5 { 6 TCHAR filename[MAX_PATH]; 7 int fileCount = ::DragQueryFile(hDrop, 0xFFFFFFFF, filename, MAX_PATH); 8 for (int i = 0; i < fileCount; ++i) 9 {} 10 } 11 }
1.OpenClipboard,
BOOL OpenClipboard(
__in HWND hWndNewOwner
);
参数
hWndNewOwne Long类型,与打开剪切板相关联的窗口句柄。如果这个参数为NULL,打开剪贴板与当前任务相关联。
返回值
如果函数执行成功,返回非零值.
如果函数执行失败,返回零,为了获得更多的错误信息,调用GetLastError.
2.IsClipboardFormatAvailable
常用剪贴板数据格式:
CF_TEXT 以NULL结尾的ASCII字符的文本格式
CF_BITMAP 图像句柄HBITMAP
注:若应用程序要识别多个剪贴板格式,应使用函数GetPriorityClipboardFormat 达到目的。
3.GetClipboardData
获得剪切板的数据。
4.DragQueryFile(hDrop, 0xFFFFFFFF, filename, MAX_PATH)
DragQueryFile是一个成功拖放操作后获取被拖放文件的名称等信息的函数。
UINT DragQueryFile(
HDROPhDrop,
UINTiFile,
LPTSTRlpszFile,
UINTcch
);
hDrop
Identifier of the structure containing the file names of the dropped files.
用于区分”包含被拖拽文件名称结构”的句柄。
即存放所拖放文件名称的数据结构的句柄,也就是文件名缓冲区的句柄
iFile
Index of the file to query. If the value of theiFileparameter is 0xFFFFFFFF,DragQueryFilereturns a count of the files dropped. If the value of theiFileparameter is between zero and the total number of files dropped,DragQueryFilecopies the file name with the corresponding value to the buffer pointed to by thelpszFileparameter.
文件索引编号(用于指明所要查询文件的序号, 如果拖进多个文件,则索引编号从零开始),如果iFile值为 0xFFFFFFFF 时,返回的是拖曳到窗体上的文件的个数。如果iFile值在0和拖拽文件总数之间时,DragQueryFile拷贝与文件名存储缓冲区大小适应的文件名称到缓冲区中。
lpszFile
Address of a buffer to receive the file name of a dropped file when the function returns. This file name is a null-terminated string. If this parameter is NULL,DragQueryFilereturns the required size, in characters, of the buffer.
函数返回时,用于存储拖拽文件名称的缓冲区指针。文件名称是一个以空终止“\0”结尾的字符串。如果此参数是NULL,DragQueryFile函数返回拖拽的文件名的长度。函数DragQueryFile得到的文件名,是带完整路径的文件名。
cch
Size, in characters, of thelpszFilebuffer.
存储拖拽文件名称缓冲区的大小,即lpszFile指针所指缓冲区的字符数。
参考文档:http://www.cnblogs.com/wind-net/archive/2012/11/01/2749558.html http://baike.baidu.com/link?url=8iXrSheAjTSKFIVYCjnMh2t6dmcym2LQyQ5_RjKSLDzryNRPWt4Wsulq00OF3_wk43iwPRNjwU9_g4poBmulG05_IyVJrA8fYwXCLWqZoOa
相关文章推荐
- C++获取网页数据时的505错误
- Jsp默认打开页面无数据访问Servlet获取数据
- C++中获取一个原生数据类型能表示的最大值
- 获取文件大小的六种方法大全,打开文件和不打开文件都有,C方法获取,C++方法获取,MFC方法获取。
- 关于Excel操作编写的一个软件设计构思案例[连载] --如何打开Excel文件,获取需要列的数据显示到表格内做修改
- 获取c或者c++里面的数据类型的范围
- android:打开系统联系人界面并获取数据
- 利用pywinauto模块打开一个应用,输入参数,点击应用中的按钮,获取数据
- C++和C#实现剪切板数据交互
- flex知识--复制剪切板复制ArrayColl打开浏览器刷新浏览器关闭Alert透明随机色数据类型随机数
- Android打开通讯录并获取数据
- c++获取剪切板的内容
- C++ 多态 从不同数据源获取数据 多路归并
- C/C++ BMP(24位真彩色)图像处理(1)------图像の打开与数据区处理
- c++:自动获取数据类型,auto与decltype的异同
- H5网页端直接打开APP并获取传递数据的方案.
- 官方C++示例 InfraredBasics-D2D的学习及Kinect深度数据的获取、保存
- C++中获取数据类型typeid
- Android:打开系统联系人界面并获取数据
- java怎么获取剪切板数据代码示例