【MoreWindows工作笔记11】EnumClipboardFormats 剪切板内容的数据格式
来源:互联网 发布:淘宝详情页和主图视频 编辑:程序博客网 时间:2024/05/14 06:09
枚举剪贴板数据的数据格式的步骤有:
- OpenClipboard(NULL)
- clipboard_format = EnumClipboardFormats(0)
- HGLOBAL global_memory = GetClipboardData(clipboard_format);
- LPCSTR clipboard_data = (LPCSTR)GlobalLock(global_memory);
- clipboard_data就是剪切板数据
- GlobalUnlock(global_memory);
- CloseClipboard();
完整的源代码如下:
// 【MoreWindows工作笔记11】EnumClipboardFormats 剪切板内容的数据格式// http://blog.csdn.net/morewindows/article/details/17655299// 参考http://msdn.microsoft.com/en-us/library/windows/desktop/ms649013(v=vs.85).aspx#include <Windows.h>#include <iostream>#include <cstdio>using namespace std;int main(){ printf(" 【MoreWindows工作笔记11】OleGetClipboard 访问剪切板的文本内容\n"); printf(" - http://blog.csdn.net/morewindows/article/details/17655053 -\n"); printf(" -- By MoreWindows( http://blog.csdn.net/MoreWindows ) --\n\n"); if (OpenClipboard(NULL)) { // 由于设置了VX在复制时带上文字颜色,所以从VS2008中拷贝文本时,数据格式不为CF_UNICODETEXT UINT clipboard_format; while (clipboard_format = EnumClipboardFormats(0)) { printf("Clipboard Data Format = 0x%x\n", clipboard_format); HGLOBAL global_memory = GetClipboardData(clipboard_format); LPCSTR clipboard_data = (LPCSTR)GlobalLock(global_memory); if (clipboard_data != NULL) { // 剪切板上数据的地址 printf("Clipboard Data Address = 0x%x\n", global_memory); // 剪切板上数据大小 DWORD data_size = GlobalSize(global_memory); printf("Data Size = %d\n", data_size); // 16进制输出数据 printf("Data: "); for (DWORD i = 0; i < data_size; i++) { if (i % 8 == 0) putchar(' '); if (i % 16 == 0) putchar('\n'); printf("%02x ", (UCHAR)clipboard_data[i]); } putchar('\n'); // 输出部分数据 switch (clipboard_format) { case CF_TEXT: printf(" 数据格式:CF_TEXT 数据内容:\n%s\n", clipboard_data); break; case CF_UNICODETEXT: printf(" 数据格式:CF_UNICODETEXT 数据内容:\n%ls\n", (LPCWSTR)clipboard_data); break; } GlobalUnlock(global_memory); } }CloseClipboard(); } return 0;}
先复制文本内容,再运行程序。
然后复制文件,再运行程序。
本文地址:http://blog.csdn.net/morewindows/article/details/17655299 转载请标明出处,谢谢。
欢迎关注微博:http://weibo.com/MoreWindows
3 0
- 【MoreWindows工作笔记11】EnumClipboardFormats 剪切板内容的数据格式
- 【MoreWindows工作笔记9】OleGetClipboard 访问剪切板的文本内容
- 【MoreWindows工作笔记12】WM_DRAWCLIPBOARD 监视剪切板
- 【MoreWindows工作笔记12】WM_DRAWCLIPBOARD 监视剪切板
- 【MoreWindows工作笔记10】OleGetClipboard 访问剪切板上的文件信息
- 【MoreWindows工作笔记5】StrFormatByteSize64 高端大气的显示文件大小
- 【MoreWindows工作笔记7】PathIsPrefix 判断路径的包含关系
- 【MoreWindows工作笔记2】 查看当前系统使用的字符集 GetSystemDefaultLocaleName
- 【MoreWindows工作笔记8】PathFindSuffixArrayW 路径是否有给定的后缀
- 查看剪切板的内容!
- 【MoreWindows工作笔记6】PathCommonPrefix 路径公共前缀
- c++获取剪切板的内容
- 【MoreWindows工作笔记1】 C/C++ 输出宽字符 printf + %ls or wcout
- 【MoreWindows工作笔记3】 使用cout/pintf输出16进制,8进制,2进制数据
- 【MoreWindows工作笔记4】 获取文件图标,类型名称,属性 SHGetFileInfo
- Windows下python获取剪切板的内容
- awt-获取系统剪切板的内容
- 清空剪切板内容
- boost多线程库使用指南
- C++中的运算符重载(二)
- Invalid file name: must contain only [a-z0-9_.]
- hadoop简介
- WPF下、使用Double作为点坐标带来的问题或line直线颜色不明显的问题的解决方法
- 【MoreWindows工作笔记11】EnumClipboardFormats 剪切板内容的数据格式
- Lucene 的Query Parser(查询语法)
- TRUNC函数的用法
- 内核文件系统的注册
- Boost多线程编程
- 如何成为明星程序员
- 黑马程序员_SQL SERVER基础知识整理
- 进度更新&思路转换
- Android 扩展ImageView来播放gif动画