在代码中有用到下面的获取剪贴板数据(图片)的代码行:
.....
IDataObject iData = Clipboard.GetDataObject();
.....
在C/S下是没有问题的,但在B/S下就获取不了,iData为NULL;
请大家帮帮忙给支个招,谢谢.

解决方案 »

  1.   

    晕~~~B/S下后台CS代码不能获得用户的剪贴板..你获取的是服务器的剪贴板
      

  2.   

    但在B/S下就获取不了,iData为NULL; 
    --------------------
    B/S下这个代码运行在服务器上?这样取的不是服务器上的剪切板内容吗?
    运行在客户机上更不行了,C#代码不能在客户端运行只能在服务器上。
      

  3.   

    谢谢:zgke
    那有什么方法解决这个问题吗?
      

  4.   

    能通过JS来解决
    你参考下把
    <Script Language="JavaScript">
    var content = clipboardData.getData("Text");
    if (content!=null) {
    document.write("<center><font size=5 color=red>WARNING, TEXT RETRIEVED:</font> (see below)<br><br><span style='background-color: #FFFF00'>");
    document.write(content);
    document.write("</span>");
    }else {
    document.write('<center>No text found in clipboard. This is a good thing!<br><br>Works with Internet Explorer and Netscape.');
    }
    </Script> 
      

  5.   

    在Clipboard.GetDataObject()调用之前,
    是通过调Shape.CopyPicture(参数)将图片复制到剪贴板的,
    按2,3楼的说法,
    在B/S下时Shape.CopyPicture(参数)是将图片复制到了客户端的剪贴板???
    然后Clipboard.GetDataObject()调用的时候获取的是服务器端的剪贴板???
    我对Shape这个对象的机制不太懂,
    为什么同是后台代码一个跑到客户端了,一个却跑的服务器端,
    能详细说下吗,
    谢谢!
      

  6.   

    b/s下,C#代码是运行在服务器端的
      

  7.   

    这样给你说把  JS代码客户端.... 所有C#代码在服务端.....
      

  8.   

    谢谢zgke,你说的我不是不明白,
    但问题是同是C#代码,
    如一开始所讲,同是在客户端运行(C/S)与同是在服务器端运行(B/S),会一个行一个不行,这是我没搞明白的,
    还请多赐教,再次感谢.
      

  9.   

    采用C#代码调用VBA的方法不知道能不能解决,
    本人没写过VBA,
    还请有识者多多指点,