作者共發了2篇帖子。 字體大小:較小 - 100% (默認)▼  內容轉換:不轉換▼
 
點擊 回復
352 1
【原创程序】剪切板内容导出程序
一派護法 十九級
1樓 發表于:2016-1-24 22:17
【功能】
查看当前剪切板中有哪些格式的剪切板内容(显示出格式编号,名称以及内容的字节数),输入要保存的剪切板格式编号和文件名即可导出到文件。
【代码】
// ClipboardExporter.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <Windows.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    UINT format = 0;
    TCHAR name[50];
    char filename[MAX_PATH];
    HGLOBAL hMem;
    size_t size;
    OpenClipboard(NULL);
    while (format = EnumClipboardFormats(format))
    {
        GetClipboardFormatName(format, name, sizeof(name) / sizeof(TCHAR));
        cout << '[' << format << ']';
        wcout << name;
        hMem = GetClipboardData(format);
        size = GlobalSize(hMem);
        cout << ", " << size << " bytes";
        cout << endl;
    }
    cout << endl << "Which one would you like to save as a file?" << endl;
    cin >> format;
    if (IsClipboardFormatAvailable(format))
    {
        cout << "Input the file name:" << endl;
        cin >> filename;
        ofstream file(filename, ios::binary);
        hMem = GetClipboardData(format);
        size = GlobalSize(hMem);
        char *data = (char *)GlobalLock(hMem);
        file.write(data, size);
        GlobalUnlock(hMem);
        file.close();
        cout << "File saved, " << size << " bytes written." << endl;
    }
    else
        cout << "File not saved." << endl;
    CloseClipboard();
    system("pause");
    return 0;
}
【运行效果】

从中可以看到剪切板中有RTF格式,其编号为49311。于是输入49311,并输入文件名,扩展名为rtf。保存后,可用Word或者写字板打开查看剪切板中的RTF格式的完整内容。
打开保存的rtf文件,内容如下:
一派護法 十九級
2樓 發表于:2016-1-24 22:17

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
(快捷鍵:Ctrl+Enter)
 

本帖信息

點擊數:352 回複數:1
評論數: ?
作者:巨大八爪鱼
最後回復:巨大八爪鱼
最後回復時間:2016-1-24 22:17
 
©2010-2024 Arslanbar Ver2.0
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。