テスト目的でクリップボードに排他的にアクセスするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1822996

  •  10-07-2019
  •  | 
  •  

質問

簡単に言えば、操作の一部にクリップボードを使用するアプリがあります。

しかし、100%釘付けにしたことがない理由で、クリップボードが利用できないことがあります。 RDCクライアントがブロックすることもあれば、ブロックしないこともあります。そして、取引の種類が本当に必要なときに再現するのは非常に難しいものの1つです。

実行中に他のプログラムがクリップボードにアクセスできないようにする小さなテストプログラムを作成できますか?

役に立ちましたか?

解決

OpenClipboard、EmptyClipboardを呼び出して、単に開いたままにして、テストアプリケーションが終了するか、そのようなものだけでCloseClipboardを呼び出すことができると思います...

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