张总泪流满面 CloudClip云剪贴板 beta版发布

这样的张总:你在家里的电脑上按了CTRL+C,然后在公司的电脑上再按CTRL+V是肯定不行的。即使同一篇文章也不行。不不,多贵的电脑都不行。

张总的愿望终于可以实现了。经过将近半个月的折磨,这个传说中的“云剪贴板”终于发布了!现在开始我们可以在不同的电脑上共享多达100条的剪贴板,支持普通文本、word文档、HTML文档等格式!

当然google docs是最先实现这个功能的工具,不过并不是所有需要复制粘贴的东西都在google docs中,况且google docs不一定能时时刻刻访问(比如说连接被重置)。

不过现在这个程序的缺点就是不能跨平台,因为是用c#编的。我的索尼本不能用ubuntu,所以不能测试可不可以在mono下运行。估计够呛。

云端的地址初始为:http://graphonline.info/clip/service.asmx 程序中已经预先定义了这个地址。如果这个地址挂了,可以把云端的asp.net程序发布到别的主机上,然后改一下.config文件就可以了。

不过毕竟只是一个简单到极点的beta版的小工具,有一些力所不能及的事情它是不能做到的。比如说拷贝超过10k的大文本,在网络不好的时候很容易出错;不能拷贝excel表格,因为不知道为啥excel每次拷贝时总会同时拷贝四次,造成网络堵塞而出问题。更有许多bug,等待着大家去发现。

计划在下个版本中加入上传功能,解决目前的上传不稳定的问题;还打算加入对图片格式的支持。

好了不废话了。下面是下载地址:

客户端可执行文件(需要.net framework 2.0及以上(windows vista以上自带)):CloudClipWindow.exe

云端源代码(Visual Studio 2008+Asp.net 2.0):CloudClip

客户端源代码(Visual Studio 2008+C# 2.0):CloudClipWindow

.Net中的Clipboard。。算是bug么

用Clipboard.GetData(format)与Clipboard.SetData(format,data)中的format竟然大小写敏感..搞了好久才知道。

format 返回类型
Text string
text以及其所有大小写格式 MemoryStream
HTML Format string
html format以及其所有大小写格式 MemoryStream

我建议都用MemoryStream的,可以用ToArray()输出byte[]。 string的很容易出现各种各样的问题,尤其在HTML Format上。

c#中监控剪贴板的两种方法

最近在做一个云剪贴板的程序,需要用一个c#桌面应用程序来监控剪贴板。本来想的是,新建一个线程用while循环检查剪贴板内容的改动,不过发现不成功,如果用GetText()访问剪贴板则不管剪贴板内有没有文字都返回空字符串,用SetText()设置剪贴板则出错:“在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。”

所以我google了一下,发现貌似监视剪贴板可以不用“幕后线程”去不断检查,有专门的API来进行监视,并通过触发事件来告诉我们。

阅读更多