WScript.Shell SendKeysを使用してナンバーパッドのキーストロークを送信するにはどうすればよいですか?
-
06-07-2019 - |
質問
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 ですが、詳細は説明していません。
事前に感謝、
- ブレント
解決
テンキーのキーコードを使用する必要があります。
それらのリストは次のとおりです。 http://www.empirisoft.com/directrt/help/_helpcontents。 htm?directrt_key_codes.htm
" 123"を送信するには、次を実行する必要があります。
objWsh.SendKeys chr(79) & chr(80) & chr(81)
他のヒント
上記の回答についてコメントする担当者がいません 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は、ASCIIコードを使用します。キーボードスキャンコードではありません。
さらに、ここでは、数字を指定するだけです。これは、キーを押すことでは行われないため、キーが使用されなかったため、キーが使用されたものを指定せず、指定する必要もありません。
(テンキーから)いくつかの数字をキーに送信するには、一番上の行からキーを送信するのと同じです。いくつかの番号を送信したいだけです。
彼が知りたいのがsendkeysを使用して数字を送信する方法だけである場合は、当然です。
objWsh.SendKeys 12345 または str =" 12345" objWsh.SendKeys str
しかし、質問者がobjWsh.SendKeys 12345がそれを行うことに気づかなかった場合、質問者は混乱しているだけかもしれません。緑色のチェックマークから、彼はobjWsh.SendKeys" OPQ"のような答えに投票したと思います。
これは古い質問であることは承知していますが、正しい質問と回答を得るためです。