【问题标题】:How can I grab exclusive access to the clipboard for testing purposes?我怎样才能获得对剪贴板的独占访问权以进行测试?
【发布时间】:2009-11-30 22:54:29
【问题描述】:

我有一个应用程序,长话短说,它使用剪贴板进行部分操作。

但有时,由于我从未 100% 确定的原因,有时剪贴板不可用。有时 RDC 客户端会阻止它,有时不会。当您确实需要进行各种交易时,它是极难复制的一种。

是否可以编写一个小测试程序,在运行时不允许任何其他程序访问剪贴板?

【问题讨论】:

    标签: windows clipboard


    【解决方案1】:

    我想你可以调用 OpenClipboard 和 EmptyClipboard,然后简单地将其保持打开状态,仅在测试应用程序退出时调用 CloseClipboard,或类似的东西......

    从 SCHNAPPLE 编辑

    这就是我本质上所做的,我找到了 C# 代码来做这件事……that other site

    [ 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");
    }
    

    【讨论】:

      【解决方案2】:

      简单的解决方案可能是手动配置 RemDesk 以不监视剪贴板。这是 RemDesk 中的一个选项... 但是,是的,保持剪贴板打开应该会产生预期的效果,并且还会阻止 WM_DrawClipboard 通知被发送到剪贴板查看器。

      【讨论】:

        猜你喜欢
        • 2015-06-17
        • 2023-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-17
        • 1970-01-01
        相关资源
        最近更新 更多