Domanda

Ho un'app che, per farla breve, usa gli appunti per parte del suo funzionamento.

A volte però, per motivi che non ho mai inchiodato al 100%, a volte gli Appunti non sono disponibili. A volte il client RDC lo blocca, a volte no. Ed è uno di quelli estremamente difficili da riprodurre quando hai davvero bisogno di fare una specie di affare.

Si potrebbe scrivere un piccolo programma di test che, mentre è in esecuzione, non consente ad altri programmi di accedere agli Appunti?

È stato utile?

Soluzione

Suppongo che potresti chiamare OpenClipboard e EmptyClipboard, quindi semplicemente tenerlo aperto e chiamare CloseClipboard solo quando termina l'applicazione di test o qualcosa del genere ...

MODIFICA DA SCHNAPPLE

Quindi questo è quello che ho fatto essenzialmente e ho trovato il codice C # per farlo su ... quell'altro sito

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

Altri suggerimenti

La soluzione semplice potrebbe essere quella di configurare manualmente RemDesk per non monitorare gli Appunti. È un'opzione in RemDesk ... Sì, tenere aperti gli Appunti dovrebbe avere l'effetto desiderato e anche impedire che le notifiche di WM_DrawClipboard vengano inviate ai visualizzatori degli Appunti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top