私は(限られたリソースで)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 設定を修正する方法があると思います (期待しています)。
前と同じように、どんな助けも大歓迎です....私はこれについてゆっくりと気が狂っています!!!
乾杯!