0

ctrl + v(以下を参照)を送信してサードパーティアプリケーションへのPASTINGをトリガーするコードがありますが、これはCITRIXでは機能しないようです。keybシミュレーション以外にctrl+vをトリガーする方法はありますか?

keybd_event(VK_CONTROL, Lo(MapVirtualKey(VK_CONTROL,0)), 0,0);
keybd_event(86, Lo(MapVirtualKey(86,0)), 0,0);
keybd_event(86, Lo(MapVirtualKey(86,0)), KEYEVENTF_KEYUP,0);
4

4 に答える 4

3

たぶん、WM_PASTEメッセージをアプリケーションに送信できますか?

于 2009-06-23T12:54:00.870 に答える
1

ああ、Citrixの素晴らしい問題です!

  1. 最初に、受信側のアプリケーション側で、クリップボードに実際に何かがあるかどうかを確認します。そこに手動で貼り付けてみてください。空の場合は、自動化/キーボードフックの問題ではありません。
  2. クリップボードのコンテンツが実際に利用できる場合は、受信アプリケーションと通信するためのさまざまな方法を試してみます。Windowsメッセージ(WM_PASTEだけでなく、通過できるかどうかを確認できない場合は他の方法)を送信するだけでなく、実行できるかどうかも確認します。 DDE。
于 2009-06-23T17:53:25.867 に答える
0

ここでの重要なステートメントは、CITRIXを使用することだと思います。

citrixアプリケーションとの相互通信に関する私の経験では、通常のデスクトップで正常に動作する多くのものは、citrix環境で実行すると失敗します。Gamecatが提案したように、最初にWM_PASTEメッセージを送信しようとします。それが失敗した場合は、デスクトップのショートカットから直接アプリケーションを実行するのではなく、クライアントがcitrixデスクトップを介してアプリケーションを実行していることを確認することをお勧めします。citrixアプリケーションを外部ショートカットから起動すると、citrixデスクトップの内部ショートカットから起動した場合とは異なるセッションが取得されます。

于 2009-06-23T16:20:45.240 に答える
0

PostKeyEx32を試すことができます

私はポルトガル語で記事を書きましたが、あなたはコードを読むことができます、それは簡単です。

http://www.cesarromero.com.br/simulando-keypress-com-postkeyex32/

次のようにCTRL+Vmを送信できます。

PostKeyEx32(Ord('V'), [ssCtrl], False); 
于 2009-06-23T15:09:04.653 に答える