掲示板一覧   -   トピック一覧
   EA API
     Session.Inputで表示されるダイアログが動作しない


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
nakapon
投稿日時: 2023-8-9 13:21
EA Administrator
投稿: 427

Session.Inputで表示されるダイアログが動作しない

サポート宛てにいただきましたご指摘の要約です。

○ご指摘

EA上でJavaScriptで以下のように
Session.Inputを実行したところ
入力ダイアログは表示されるのですが
入力を受け付けない、という現象が発生しました。

var str = Session.Input("文字を入力してください")
Session.Output("入力した文字:" + str)


○回答

弊社のいくつかの環境で確認したところ
現象が再現する環境がございました。

調査したところ、
Windows10 + Microsoft IME
の環境で再現するようです。
(Windows11では再現しません)

回避策につきましては、以下いずれかとなります。

■回避策(概要)
A.「以前のバージョンのMicrosoft IME を使う」をオンにする
  ※Microsoft IMEはEA以外の入力でも利用していますので
   お客様の責任で設定変更をお願いいたします。

B.別の方法で入力ダイアログを表示する
  ※EA 64ビット版では利用できません。


■回避策(手順)
上記Aの手順は以下のとおりです。

A1.タスクバーのIMEアイコンを右クリック > 設定 > 全般 > 互換性 で
 「以前のバージョンのMicrosoft IME を使う」をオンにします。
A2.EAを再起動します。

上記で設定した内容を元に戻したい場合は、
Windowsメニュー > 設定 > 時刻と言語 > 言語 > 優先する言語 > 日本語
> オプション > キーボード > Microsoft IME > オプション > 全般 > 互換性 で
上記設定をオフにします。


上記Bの手順は以下のとおりです。

EAScriptLibグループ配下のJavaScript-Dialog.DLGInputBox()
を使って入力ダイアログを表示します。
ただし、JavaScript-Dialogの内容にバグがあるため
以下の手順でご利用ください。

B1.新規JavaScriptを作成し(仮称:Sample)、JavaScript-Dialogの内容を
  コピー&ペーストする。
B2.Sample内の「vbe.eval」を「vbe.Eval」に修正する。
B3.自身のJavaScript内に以下を追加します。
 (以下は例ですので適宜修正ください)
-----
!INC <グループ名>.Sample
var str = DLGInputBox( "入力してください", "入力画面", "デフォルト文字列")
-----

尚、参考情報になりますが、DLGInputBox()については
VBScript、JScript向けもあり、現状は以下のとおりです。

・VBScript
 EAScriptLibグループ配下のVBScript-Dialog.DLGInputBox()を
 そのままご利用いただけます。そのため上記手順の1,2は不要です。
 EA 32ビット版・64ビット版のどちらも動作します。

・JScript
 EAScriptLibグループ配下のJScript-Dialog.DLGInputBox()を
 そのままご利用いただけます。そのため上記手順の1,2は不要です。
 EA 32ビット版では動作しますが、64ビット版では動作しません。


スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ