阿杰 发表于 2010-11-20 08:16:25

斩月_剪贴板操作模块——增加剪贴板置HTML功能

增加一个“剪贴板_置HTML”函数,可以同时向剪贴板复制纯文本和HTML。但前提是已经获取到HTML数据了,然后再通过这个函数把HTML数据复制到剪贴板。~~~~~这种功能的作用是当粘贴在具备处理HTML能力的编辑器中时,会根据剪贴板中的HTML数据进行处理,有样式的按照样式显示,有链接的自动带链接。比如Word。


#以下代码可以直接复制到易语言IDE使用:

.子程序 剪贴板_置HTML, 整数型, 公开, 同时置剪贴板文本和HTML数据
    .参数 TEXT, 文本型, , 复制到剪贴板的纯文本,比如“Girl”
    .参数 HTML, 文本型, , 复制到剪贴板的HTML数据,比如“<a href='girl.jpg'>Girl</a>”
    .局部变量 html_reg, 整数型
    .局部变量 html_start, 文本型
    .局部变量 html_end, 文本型
    .局部变量 html_text, 文本型
    .局部变量 hhtml, 整数型
    .局部变量 htext, 整数型
    .局部变量 ret, 整数型
      
    html_start = “<HTML><BODY><!--StartFragment-->”
    html_end = “<!--EndFragment--></BODY></HTML>”
    html_text = #html_head + html_start + HTML + html_end
    html_text = 子文本替换 (html_text, “aaaaaaaaa”, 数值补零 (lstrlen (#html_head)), , 1, 真)
    html_text = 子文本替换 (html_text, “bbbbbbbbb”, 数值补零 (lstrlen (html_text)), , 1, 真)
    html_text = 子文本替换 (html_text, “ccccccccc”, 数值补零 (lstrlen (#html_head + html_start)), , 1, 真)
    html_text = 子文本替换 (html_text, “ddddddddd”, 数值补零 (lstrlen (#html_head + html_start + HTML)), , 1, 真)
    html_text = 到文本 (编码转换 (到字节集 (html_text), #编码_GBK, #编码_UTF_8, ))
      
    .如果真 (OpenClipboard (0) = 0)
      返回(-1)
    .如果真结束
    EmptyClipboard ()
      
    htext = GlobalAlloc (66, lstrlen (TEXT) + 1)
    .如果真 (htext ≠ 0)
      CopyMemory_文本 (GlobalLock (htext), TEXT, lstrlen (TEXT))
      GlobalUnlock (htext)
      ret = SetClipboardData (1, htext)
      GlobalFree (htext)
    .如果真结束
      
    .如果真 (ret = 0)
      返回(-1)
    .如果真结束
      
    html_reg = RegisterClipboardFormat (“HTML Format”)
    .如果真 (html_reg = 0)
      返回(0)
    .如果真结束
    hhtml = GlobalAlloc (66, lstrlen (html_text) + 1)
    .如果真 (hhtml ≠ 0)
      CopyMemory_文本 (GlobalLock (hhtml), html_text, lstrlen (html_text))
      GlobalUnlock (hhtml)
      ret = SetClipboardData (html_reg, hhtml)
      GlobalFree (hhtml)
    .如果真结束
    CloseClipboard ()
    .判断开始 (ret = 0)
      返回(0)
    .默认
      返回(1)


#以上代码使用易代码高亮格式工具JS版格式化
页: [1]
查看完整版本: 斩月_剪贴板操作模块——增加剪贴板置HTML功能