最近把VS更新到2010了,发现复制到Word中 会出现乱码,如图
网上虽然有解决方法,比如说,先复制到记事本中,然后在复制到Word中,但是一般从vs里面复制出来,然后粘贴到Word中主要是想代码在Word中也可以显示高亮 根据网上找的资料, 写了一个程序
下面提供我写好的程序,最低需要.Net3.5运行库 使用方法:首先从VS2010内复制出代码,然后打开程序,会自动访问剪切板,并处理乱码
[buy]小提示Win7可以直接在程序上面选择右键,选择“附到开始菜单”[/buy]
[download id=”17″]
下面是主要源码:
this.TopMost = true; timer1.Start(); //必须先引用:using System.Text.RegularExpressions; //取得剪贴板內容 IDataObject dataObject = Clipboard.GetDataObject(); if (dataObject.GetDataPresent(DataFormats.Rtf)) { //取出RTF格式 string rtf = dataObject.GetData(DataFormats.Rtf) as string; //以Regex.Replace去除多余的乱码字符 string fixedRtf = Regex.Replace(rtf, @"\uinput2(?\u-?d*)s..", (m) => { return m.Groups["uc"].Value + "?"; }); //另建新DataObject DataObject newDataObject = new DataObject(); //RTF格式用修正后的字符串,其他的保持原值 foreach (String t in dataObject.GetFormats()) newDataObject.SetData(t, t == "Rich Text Format" ? fixedRtf : dataObject.GetData(t)); try { //将修正后內容写入剪贴板 Clipboard.SetDataObject(newDataObject, true); } catch (Exception a) { MessageBox.Show(a.ToString()); } }
lz给力呀!!!太感谢了~~~
呵呵,很久以前写的咯,都快忘记啦~