题
我有一个应用程序,其,总而言之,使用剪贴板用于其操作的一部分。
虽然有时,对于原因,我从来没有100%确定下来,有时剪贴板不可用。有时,RDC客户端阻止它,有时没有。而正是这些极其困难的一个重现,当你真的需要各种各样的交易。
难道一个写一个小测试程序,虽然它运行,不允许任何其他程序访问剪贴板?
解决方案
我想你可以打电话OpenClipboard,并EmptyClipboard,然后简单地把它打开,只调用CloseClipboard当测试应用程序退出,或者类似的东西...
修改FROM SCHNAPPLE 强>
所以这是我做过什么本质上,我发现C#代码做它...的其他网站
[ DllImport( "user32.dll" ) ]
extern static bool OpenClipboard( IntPtr hWnd );
[ DllImport( "user32.dll" ) ]
extern static bool CloseClipboard();
[ DllImport( "user32.dll" ) ]
extern static IntPtr GetClipboardData( uint uFormat );
public static void GetSomeDib()
{
OpenClipboard( System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle );
IntPtr img = GetClipboardData(8);
MessageBox.Show("Clipboard Locked");
CloseClipboard();
MessageBox.Show("Clipboard Unlocked");
}
其他提示
在简单的解决方案可以是刚刚手动配置RemDesk到不监视剪贴板。这是一个在RemDesk一个选项... 但是,是的,保持打开剪贴板应收到预期的效果,而且也将保持WM_DRAWCLIPBOARD通知被发送到剪贴板查看器。
不隶属于 StackOverflow