테스트 목적으로 클립 보드에 대한 독점 액세스를 어떻게 잡을 수 있습니까?

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

  •  10-07-2019
  •  | 
  •  

문제

짧은 이야기가 짧게 작동하는 앱이 있습니다.

그러나 때로는 100% 못을 박었습니다. 때로는 클립 보드를 사용할 수 없습니다. 때로는 RDC 클라이언트가 차단되지만 때로는 그렇지 않습니다. 그리고 실제로 일종의 거래를해야 할 때 재현하기가 매우 어려운 사람들 중 하나입니다.

실행되는 동안 다른 프로그램이 클립 보드에 액세스 할 수없는 작은 테스트 프로그램을 작성할 수 있습니까?

도움이 되었습니까?

해결책

나는 당신이 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