C# 中如何 把文字和图片一起拷贝到剪贴板中,试了几个方法都不对,希望大家帮忙哦!

na_he 2016-04-15 09:45:43
private string GetHtmlData(string html)
{
var sb = new StringBuilder();

const string header = @"Format:HTML Format
Version:1.0
StartHTML:<<<<<<<1
EndHTML:<<<<<<<2
StartFragment:<<<<<<<3
EndFragment:<<<<<<<4
StartSelection:<<<<<<<3
EndSelection:<<<<<<<3";

sb.Append(header);
int startHtml = sb.Length;

sb.Append(@"<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN""><!--StartFragment-->");
int fragmentStart = sb.Length;

sb.Append(html);
int fragmentEnd = sb.Length;

sb.Append(@"<!--EndFragment-->");
int endHtml = sb.Length;

// Backpatch offsets

sb.Replace("<<<<<<<1", String.Format("{0,8}", startHtml));
sb.Replace("<<<<<<<2", String.Format("{0,8}", endHtml));
sb.Replace("<<<<<<<3", String.Format("{0,8}", fragmentStart));
sb.Replace("<<<<<<<4", String.Format("{0,8}", fragmentEnd));

return sb.ToString();
}
这个老不成功。
...全文
963 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lkf181 2019-05-06
  • 打赏
  • 举报
回复
Image image = Image.FromFile(@"C:\l.png"); Clipboard.SetImage(image);
crystal_lz 2017-01-09
  • 打赏
  • 举报
回复
我建议你发邮件到腾讯去告诉他 让他的剪切板支持浏览器的格式 或者给所有浏览器厂商发邮件 让他们的剪切板格式定义成腾讯的格式
asdddddd1 2017-01-08
  • 打赏
  • 举报
回复
楼主问题解决了吗?想请教下,你是怎么解决的
BitCoffee 2016-04-15
  • 打赏
  • 举报
回复
引用 3 楼 na_he 的回复:
拷贝到word可以。怎么样能拷贝到qq的消息框呢
这种放式好像不能拷贝到qq消息框。我这边没法装QQ,你自己试吧。
na_he 2016-04-15
  • 打赏
  • 举报
回复
拷贝到word可以。怎么样能拷贝到qq的消息框呢
BitCoffee 2016-04-15
  • 打赏
  • 举报
回复

//试试这个
private  string GetHtmlData(string html)
{
            String nativeHTMLString =
                @"Version:0.9
                StartHTML:<<<<<<<1
                EndHTML:<<<<<<<2
                StartFragment:<<<<<<<3
                EndFragment:<<<<<<<4
                StartSelection:<<<<<<<3
                EndSelection:<<<<<<<4
                <!DOCTYPE>
                <HTML>
                <HEAD>
                <TITLE> The HTML Clipboard and special characters</TITLE>
                </HEAD>
                <BODY>
                <UL>
                <!--StartFragment -->
                <myhtml>
                <!--EndFragment -->
                </UL>
                </BODY>
                </HTML>";

            string utf8EncodedHTMLString
            = Encoding.GetEncoding(0).GetString(Encoding.UTF8.GetBytes(nativeHTMLString.Replace("<myhtml>",html)));

            StringBuilder sb = new StringBuilder();
            sb.Append(utf8EncodedHTMLString);
            sb.Replace("<<<<<<<1",
            (utf8EncodedHTMLString.IndexOf("<HTML>") + "<HTML>".Length).ToString("D8"));
            sb.Replace("<<<<<<<2",
            (utf8EncodedHTMLString.IndexOf("</HTML>")).ToString("D8"));
            sb.Replace("<<<<<<<3",
            (utf8EncodedHTMLString.IndexOf("<!--StartFragment -->") + "<!--StartFragment -->".Length).ToString("D8"));
            sb.Replace("<<<<<<<4",
            (utf8EncodedHTMLString.IndexOf("<!--EndFragment -->")).ToString("D8"));
            return sb.ToString();
}
为轮子而生 2016-04-15
  • 打赏
  • 举报
回复
没有看到与剪贴板和图片有关的信息
大鱼> 2016-04-15
  • 打赏
  • 举报
回复
你们都搞美女头像,是不是这样回复的人多一些啊?
RubenLuLu 2016-04-15
  • 打赏
  • 举报
回复
你这是要做自动发QQ消息的工具啊。!
文本编辑器,支持文本编辑,比较,FTP编辑,FTP上传下载,加密,十六进制编辑,列模式,回行显示,正则表达式,多行查找和替换,代码折叠,关键字高亮显示,编辑400GB的大文件,比较100GB的大文件,对超过1G的大文件排序,删除重复,执行自定义脚本自动修改文件。 PilotEdit 文多语特别版PilotEdit 文多语特别版 PilotEdit 文版- 功能 1. PilotEdit支持超过400G的文件 >编辑超过400GB(400亿行)的文件 >上传/下载超过4G的FTP文件 >加密/解密超过4G的文件 >比较超过4G的文件 2. 全面支持UNICODE文件和DOS/UNIX文件 >快速改变多个文件的编码 >在不同编码的文件拷贝文字时自动调整文字编码 3. 自定义的文件类型和关键字高亮显示 >支持超过20种文件类型 >支持自定义文件类型 >对不同的文件类型定义不同的TAB和缩进 比如,您可以定义当用户按TAB键时,在C/C++输入TAB键,而在Java文件输入四个空格 4. 十六进制编辑模式 >在十六进制编辑模式可以很方便地插入,修改,删除,拷贝,粘贴 >十六进制编辑模式查找和替换 >当从十六进制编辑模式切换回文本模式时自动检测文件类型 >在十六进制编辑模式和文本模式无限的undo/redo 5. 列模式 >键盘输入的字符将被插入到列模式所有选的行 >如果粘贴一行文字,这行文字将被插入到列模式所有选的行 >如果粘贴多行文字,这些文字将被逐行被插入到列模式的行 6. 无限的undo/redo >在十六进制编辑模式和文本模式切换后仍然可以无限次地undo/redo 7. 回行显示 >即便在编辑一个几百MB的文件时,切换到回行显示仍然非常迅速 8. 编辑FTP文件 >打开和保存FTP文件 >删除多个FTP文件和目录 >上传/下载多个FTP文件和目录 9. 基于多行的查找和替换 >查找/替换多行文本 >用正则表达式查找/替换多行文本 10. 文件比较和合并 >比较两个基本点目录 >比较合并两个文件 >在文件比较窗口直接编辑文件 >当文件内容改变时文件比较窗口自动更新比较结果 >在文件比较窗口查找/替换 >查找上一个/下一个不同的文本块 >将所有相同/不同的行拷贝剪贴板。通过这个功能,我们可以很方便地找出第一个文件存在而第二个文件不存在的行 11. 自定义字符串表 >单击即可添加一个自定义的字符串 >在所选文本的前后分别添加自定义的字符串 12. 正则表达式 >用正则表达式查找/替换多行文本 13. 脚本文件 >可以把常用的正则表达式定义在脚本,直接运行脚本即可替换文字 14. 256位 AES加密/解密 >用PilotEdit直接透明地编辑一个加密的文件 >加密/解密多个文件和目录 >加密/解密超过4G的文件 15. 文件组 >双击文件组可以快速打开多个文件 16. 在多个目录查找/替换 >支持多行的查找/替换 17. 排序 >按升序/降序排序 >按文本或数字排序 >按一列数据排序 >按正则表达式排序 18. 查找/删除重复的行 >在打开的文件查找/删除重复的行 >按文本或数字比较 >按一列数据比较 >按正则表达式比较 19. 收集字符串 >将匹配正则表达式字符串拷贝到的剪贴板。比如,我们可以把一个文件所有的Email地址拷贝剪贴板。 20. 将打开的文件用原目录结构另存为新文件 >同时拷贝的文件和目录结构 21. 编辑SFTP文件 >打开和保存SFTP文件 >删除多个SFTP文件和目录 >上传/下载多个SFTP文件和目录 PilotEdit支持以下操作系统 Windows 2000 Windows 2003 Windows XP Windows Vista Windows 7 Windows 2008 Windows 8 PilotEdit不支持Win98和 WinNT. PilotEdit支持以下和更多文件类型: C, C++ Files Java Files HTML Files XML Files Oracle SQL Files UNIX/Linux Shell Files JSP TCL/TK Files BAT files PilotEdit Script Javascript Files PHP ASP Assembly ASP.NET CSS Visual Basic Perl C# Python Ruby XHTML Files COBOL AHK Script Inno Setup Script AutoIt Script

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧