如题,我想在C#中调用SetClipboardData,将值设置到剪切板中,但是这个方法要用到一些内存函数,我不太会。希望大家能给我一个代码示例,小弟在此万分感谢

解决方案 »

  1.   

    首在在你将值放到剪切板的时候要先清空剪切板,这个函数好像是EmptyClipboard()清空了以后才能放。中间还要设置缓冲区大小什么的 然后再调用你上面说的那个SetClipboardDate
    其实在。NET里面把值放到剪切板不用API也行,用Clipboard就行了 
    Clipboard.SetDataObject( "123456",true);
    你试一下吧 如果不明白你查一下Clipboard
      

  2.   

    直接使用dotnet里的不就行了。
    为什么还要使用api?
      

  3.   

    详细参考Clipboard 类:
        
    SetDataObject(Object)  将非持久性数据置于系统剪贴板中。 
    SetDataObject(Object, Boolean)  将数据置于系统剪贴板中,并指定在退出应用程序后是否将数据保留在剪贴板中。 
    SetDataObject(Object, Boolean, Int32, Int32)  尝试指定的次数,以将数据置于系统剪贴板中,且两次尝试之间具有指定的延迟,可以选择在退出应用程序后将数据保留在剪贴板中。 
      

  4.   

    这个是小弟另一个贴,上面说明了我为什么用API而不用SetDataObjecthttp://topic.csdn.net/u/20110620/13/22098bda-322d-458d-85fc-aed6f0767be5.html?seed=2102997490&r=73956165#r_73956165请大家过目
      

  5.   

    这个我找到 SendMessage 有操作剪切板的功能,求助主题用法[DllImport("user32.dll", EntryPoint = "SendMessage", SetLastError = true, CharSet = CharSet.Auto)]
    private static extern int SendMessage(IntPtr hwnd, uint wMsg, int wParam, int lParam);
    调用 
    SendMessage(?什么句柄?, WM_COPY, 0, 0);
    这个方法往哪里设置值呢?
    就是Clipboard.SetDataObject( "123456",true);的这个123456
      

  6.   

    问题 解决了 
    我要结贴了用的SendMessage 模拟消息 , 因为我ctrl+c  他不报错,所以SendMessage 不会有问题,出现问题的可能就是  c#的Clipboard 类 有点问题谢谢大家