我有一个应用程序,其,总而言之,使用剪贴板用于其操作的一部分。

虽然有时,对于原因,我从来没有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通知被发送到剪贴板查看器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top