1

私は(限られたリソースで)VBScriptおよびVBAコマンドを使用してキーボード機能をリモートのcitrix端末に送信しようとしています。- これは、私が発見したように、既知の制限であり、制限を克服するための C++ とスキャンコードを介した代替方法を提供するさまざまな記事を見つけました。

主な問題は、C++ にアクセスできないことです。

  • VBScripts や VBA でこれを可能にするソリューションはありますか?

Windows仮想キーボードの使用(これは機能しませんでした)やWindowsへの仮想キーボードドライバーのインストール(私の深さからは程遠い)など、多くのオプションを検討しました。

以下は、C++ を使用したスキャンコードについて説明している記事の 1 つです。

http://www.codeproject.com/Tips/310817/SendKeys-using-ScanCodes-to-Citrix

私は途方に暮れていて、助けることができる人は誰でもスーパーヒーローになるでしょう.スーパーヒーローの主な魅力がオタクの神であるとしたら. :)

どんな助けでも大歓迎です!!!

乾杯。

****アップデート****

こんにちは、

もう少し掘り下げました…

...Citrix ICA クライアントのターミナル ウィンドウが VBScript の sendkeys コマンドを受信して​​いませんが、スクリプトの実行後にターミナルで手動で alt キーを押した場合 (2 秒間停止)、たとえば、次のようになります。

*Set objShell = WScript.CreateObject("WScript.Shell")
WScript.Sleep 2000
objShell.SendKeys ("e")
objShell.SendKeys "(P)"*

上記は、ターミナル ウィンドウ内のツールバーの「ファイル」、「編集」などのメニュー オプションにアクセスできます。

これは、問題が特権の問題ではないことを示唆しており、おそらく sendkeys メソッドにはまだ希望があると思いますか?

これをさらに調べたところ、Citrix ICA クライアントに関する Citrix サイトの ini ファイル設定に関するドキュメントがいくつかあります。

記事の 1 つを以下に示します。

http://support.citrix.com/article/CTX129166

いろいろ試してみましたが、キーボード マッピング、DLL ファイル、仮想キー パススルーをリストする ini ファイルがいくつかあるようです。

「モジュール」ini ファイルのセクションの 1 つに、次のものが含まれていました。

[KeyboardLayout]
(User Profile)=0x00000000
(Server Default)=0xFFFFFFFF

さまざまな言語、英国、米国国際などを含む他のコードがありました。

次に、次のような DLL コードのリストが続きます。

kbduk.dll=0x00000809

最後に、言語 ID です。例:

eng=0x00000809

ツールバーメニューだけでなく、端末フィールドで sendkeys を受信できるように ini 設定を修正する方法があると思います (期待しています)。

前と同じように、どんな助けも大歓迎です....私はこれについてゆっくりと気が狂っています!!!

乾杯!

4

1 に答える 1

1

箇条書きのソリューション

必要なもの:

オンスクリーン キーボード (OSK.EXE) Windows アプリ VBScript (必須ではありませんが、制御スクリプトとして私が好む) VBA (マウスを動かすため)

  1. 「ホバー」コマンドを受け取るように OSK を設定する
  2. マウスを特定の座標に移動するように VBA コードを設定する
  3. VBScript を使用して、VBA XLS ファイルの特定のサブルーチンをいつ実行するかを制御します。- これは、ファイルなどを手動で開く必要なく、バックグラウンドで実行するように設定できます。
  4. Citrix Xenapp ターミナルをアクティブ ウィンドウとして設定すると、キーを押す送信されます。

乾杯!

于 2014-10-09T09:58:56.953 に答える