读书人

使用SetClipboardData将中文放入剪贴板

发布时间: 2012-02-17 17:50:42 作者: rapoo

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

VB code
   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对象呢.

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

读书人网 >VB

热点推荐