首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

施用SetClipboardData将中文放入剪贴板时出现乱码

2013-01-01 
使用SetClipboardData将中文放入剪贴板时出现乱码sData中是html代码,全是英文的时候没有问题,有中文再粘贴

使用SetClipboardData将中文放入剪贴板时出现乱码
sData中是html代码,全是英文的时候没有问题,有中文再粘贴出来就全是乱码


   If CBool(OpenClipboard(0)) Then
   
      Dim hMemHandle As Long, lpData As Long
      
      hMemHandle = GlobalAlloc(0, Len(sData) + 10)
      
      If CBool(hMemHandle) Then
               
         lpData = GlobalLock(hMemHandle)
         If lpData <> 0 Then
            
            CopyMemory ByVal lpData, ByVal sData, Len(sData)
            GlobalUnlock hMemHandle
            EmptyClipboard
            SetClipboardData m_cfHTMLClipFormat, hMemHandle
                        
         End If
      
      End If
   
      Call CloseClipboard
   End If

[解决办法]
sData 是 String 吧,我再弄 Access 密码(剪切板输出)时也遇到过。大致原因是 VB 调用 API 时 String 自动装换编码,由 VB 的Unicode 转为系统本地编码,要阻止其胡乱转换,可以自己手工转换,以 Byte 数组的方式输出。
[解决办法]
既然是在VB里编程,干嘛不使用VB封装好的clipbroad对象呢.

如果功能都一样,你这样做除了自找麻烦没别的用处....

热点排行