如何用SetClipboardData将字符串数据放到剪贴板时避免乱码?





api函数SetClipboardData可以往剪贴板中放置数据,它的函数语法如下:

其中参数uFormat为要放置的数据的格式,具体的可以看剪贴板的标准数据格式

hMem参数比较复杂,如果是要放置到剪贴板的数据是字符串数据,则hMem参数表示用于存放字符串数据的内存对象的句柄。

当我们往剪贴板中放置中文字符时,比如放置字符串”我和你”,用以下的代码:

运行以上代码后,打开excel剪贴板,会发现剪贴板中显示的是乱码字符。

原因是我们设置的剪贴板数据格式不对,因为excel中字符串都是以unicode字符存储的,所以只需要把设置的剪贴板数据格式从CF_TEXT改成CF_UNICODETEXT即可。

也就是把以上代码中的

改成

即可避免乱码了,改后的代码如下:

打赏
       

发表评论