3

WScript.Shell SendKeysメソッドを使用して、テンキーからのキー押下の送信をエミュレートしようとしています。

QTPを使用するための自動テストを作成しているアプリケーションがあります。これはWebブラウザベースのアプリケーションであり、入力はWebページ内のJavaアプリに行われます。入力は、テンキーとEnterキーからのキー押下のみを受け入れます。

これまでのところ、私はこのコードを使用しています:

Dim strInputKey
strInputKey = "{ENTER}"
Set objWsh = CreateObject("WScript.Shell")
Browser("Launch Browser").Page("Test Application").WebElement("Item ID").Click
objWsh.SendKeys strInputKey

これはEnterキーを送信する場合は問題なく機能しますが、数字キーを送信する方法があるかどうかはわかりません。どんな助けでも大歓迎です。

これを達成するための文書化されていない方法があるかどうかはわかりません。http://msdn.microsoft.com/en-us/library/8c6yea83(VS.85).aspxを読みましたが、詳細には触れていません。

前もって感謝します、

  • ブレント
4

2 に答える 2

3

objWsh.SendKeys chr(79) & chr(80) & chr(81) と言った上記の回答についてコメントする担当者がいません

しかし、私はそれが正しいとは思わない

objWsh.SendKeys chr(79) & chr(80) & chr(81)
最初に、文字 O、P、Q を送信し、彼は 1234567890 のような数字を求めています

リンクはキーボードスキャンコードに移動します..それらは、キーボードのどのキーが押されたかを知るためのものだと思います。それらはASCIIコードとは異なります。
79、80、81 は、テンキー/テンキーの一部の数字のキーボード スキャン コードです。

ただし、Chr はアスキー コードを使用します。キーボードスキャンコードではありません。

なお、ここでは数字を指定するだけで、キーを押さなくてもいいので、キーを使わなかったのでどのキーを使ったかを指定する必要はありません。

(数字パッドから) いくつかの数字をキーに送信するには、一番上の行からキーを送信するのと同じです。いくつかの番号を送信したいだけです。

彼が知りたいのは、sendkeys を使用して数字を送信する方法だけである場合は、明らかに.

objWsh.SendKeys 12345 または str="12345" objWsh.SendKeys str

しかし、質問者が objWsh.SendKeys 12345 がそれを行うことに気づかなかった場合、おそらく質問者は混乱しているだけです。緑の目盛りから推測すると、彼は objWsh.SendKeys "OPQ" のような回答に投票しました。

これは古い質問であることは承知していますが、正しい質問と回答を得るために..

于 2010-07-08T08:48:06.903 に答える
3

テンキーのキーコードを使用する必要があります。

それらのリストは次のとおりです 。 http://www.empirisoft.com/directrt/help/_helpcontents.htm?directrt_key_codes.htm

したがって、「123」を送信するには、次のようにする必要があります。

objWsh.SendKeys chr(79) & chr(80) & chr(81) 
于 2008-11-04T16:20:53.067 に答える