VB6和VB2010在Windows XP/7下的剪贴板操作问题~
dll中VB6的代码: Clipboard.SetText Addr 主程序中VB2010代码: ProductInfo = Clipboard.GetText() ----------------------------- 看起来很正常的一段代码,一边放入剪贴板,一边取出。。。但是,事实上确实在XP下运行正常,一到WIN7就不行! 仔细去查VB6和VB2010中的Cilpboard的介绍,关于DataFormat VB6有3种:
VB2010则有5种:
很明显VB2010增加了2种,其中新增了一个UnicodeText。那么问题就清晰了... VB6的SetText放入的格式只能是唯一的格式Text(即ANSI Text),但是在VB2010中,就有2种可能ANSI Text或Unicode Text 在XP下一切正常,表明VB2010的GetText是以ANSI Text的格式从剪贴板中取出的。但在WIN7下乱码了。。。表明它是以Unicode Text格式取出的。。。放入ANSI取出Unicode,不乱才怪 于是,将VB2010中的代码稍作修改: ProductInfo = Clipboard.GetText(TextDataFormat.Text) 再试着运行一下,不论是XP还是Windows7,一切正常! ------------------------------------ 此BUG给我们的2点启示是: 1. 从VB6升级到VB2010吧。。它更“真”地支持Unicode --- 关于为什么用真,有玄机哦~ :) 2. 从XP升级到WINDOWS7吧。。它默认就Unicode。。Unicode才是王道! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |