2016-11-30 9 views
0

私は現在作業中のスクリプトで、アイテムの動的リストを構築しており、読み込むユーザーのフィードバックを得る必要があります。
現在、InputBoxメソッドを使用していますが、これは完璧に機能しますが、非常に多くの場合、ユーザーの画面上の他のウィンドウの後ろに隠れることがあります。VBS InputBoxが他のウィンドウの後ろに隠されている

私はのMsgBoxためvbSystemModalとしてフロントに、同様の効果がそれをもたらすための方法を探しています。

私は(このサイトや他のサイトで)私が使用しているようなVBSには当てはまらないVB.Netとコマンド/サブルーチンを扱っています。私が見つけたVBSに関する他の同様の質問は、具体的な回答が得られなかったか、別のスクリプト言語を使用するための提案で閉鎖されました...

このスクリプトの今後のリリースでは、HTAに移行する予定です。これは私にそのような問題の多くの選択肢を提供するはずです。しかし今のところ、私はスクリプトの完全な再構築のための時間がなく、私が持っているものを動かす必要があります。

入力ボックスのフォーカスや他の創造的な選択肢と一緒に正しい方向に私を指してくれてありがとうございましたあなたの組み合わせ知恵が結合することができます!

大切にしてください!

+0

プログラムには2秒間のウィンドウが表示されます。そうでなければ、フォアグラウンドウィンドウを作る能力を失う。これは、プログラムがフォーカスを奪うのを止めるためです。 –

+0

9つのルールがあります(そのうちの2秒が最も可能性があります)。フォアグラウンドウィンドウを設定するには、その1つを満たす必要があります。それらはここで詳細 - https://msdn.microsoft.com/en-us/library/windows/desktop/ms633539(v=vs.85).aspx。 –

+0

@Noodles:私があなたに何を伝えようとしているのか、それがVBSスクリプトの意味を理解しているのか分かりません。私は明示的にフォーカスをInputBoxポップアップウィンドウに与える方法を探しています。フォーカスを与えるためには、スクリプトランタイムの最初の2秒以内にinputBoxを生成しなければならないと言っていますか? – Cry

答えて

0

私はあなたがここからdownlandできAutoItX.dll、使用します。次に使用https://www.autoitscript.com/site/autoit/downloads/

をWinSetOnTop:

Set oAutoIt = WScript.CreateObject("AutoItX3.Control") 
oAutoIt.WinSetOnTop "MyInputBoxName", "", 1 

のみWinActivateを使用フォーカスを設定するには:

Set oAutoIt = WScript.CreateObject("AutoItX3.Control") 
oAutoIt.WinActivate "MyInputBoxName", "" 

ところで、何年か前、私はVBSを使い始めました。その後、AutoItXコントロールを追加し、HTAにいくつかのことを書きました。しかし、ついには完全なAutoItアプリに変更されました。

+0

ウィンドウのZオーダーを設定します。フォアグラウンドウィンドウを設定しません。フォアグラウンドウィンドウにはキーボードフォーカスがあります。 –

+0

"それ..."何?それを試してみてください! – ReFran

+0

あなたはontop属性を設定しています。それは前景ウィンドウを設定しません。キーボードがフォアグラウンドウィンドウに移動します。 –

関連する問題