VBS基礎編vbscript Sendkeysアナログキーボード操作
アナログキーボード操作では、一つ以上のキーコマンドを指定のWindowsウィンドウに送信して、アプリケーションの実行を制御します。
その使用形式は、Object.SendKeys(string)です。
object:Wshellオブジェクトを表します。
string:送信するキー命令文字列を示しています。英語の二重引用符に入れる必要があります。
基本キー
各キーは1つ以上の文字で表されます。
単一のキーボード文字を指定するためには、文字自体のキーを押す必要があります。例えば、アルファベットAを表すために、「A」を使ってもいいです。
複数の文字を表すためには、文字の後ろに直接他の文字を加えなければなりません。例えば、A、B及びCを表すなら、stringとしてABCを利用することができる。
特殊機能キー
SendKeysは、Shift、Ctrl、Altの3つの制御キーと組み合わせる必要があるキーに対して、特殊な文字を使って表します。
Shift-----Wshell.SendKeys「+」
Ctrl------Wshell.SendKeys'^
Alt-----Wshell.SendKeys「%」
これらの文字は特殊な制御ボタンを表していますが、これらのボタンはどのように表していますか?大きな括弧でこれらの文字を囲めばいいです。例えば、プラス記号「+」を送信するには、「Wshell.SendKeys「+」を使用します。
また、文字を生成しない制御機能ボタンについても、大きな括弧でボタンの名前を囲む必要があります。
例えば、リターンキーを送るには、「Wshell.SendKeys」「ENTER」という表現が必要です。
下向きの方向キーを送るときは、「Wshell.SendKeys」と表示されます。
Space------Wshell.SendKeys「」
Enter----Wshell.SendKeys「{ENTER}」
←-----Wshell.SendKeys「{RIGHT}」
↑-----Wshell.SendKeys「{UP}」
F 1------Wshell.SendKeys「{F 1}」
キー
コード
BACKSPACE
{BACKSPACE}
BREAK
{BREAK}
CAPS
LOCK
DEL
or
DOWN
ARROW
END
{END}
ENTER
{ENTER}または
ESC
{ESC}
HELP
{HELP}
ホーム?ム
{ホーム}
INS
or
LEFT
ARROW
NUM
LOCK
PAGE
DOWN
PAGE
UP。
PRINT
SCREEN
RIGHT
ARROW
SCROLL
LOCK
TAB
{TAB}
UP。
ARROW
F 1
{F 1}
F 2
{F 2}
F 3
{F 3}
F 4
{F 4}
F 5
{F 5}
F 6
{F 6}
F 7
{F 7}
F 8
{F 8}
F 9
{F 9}
F 10
{F 10}
複数の重複した単字母キーを送信する必要がある場合、この文字を繰り返し入力する必要はなく、SendKeysは簡略化された形式で記述することができます。形式は「{ボタンの数字}」です。例えば、10文字の「x」を送るなら、「Wshell.SendKeys」「{x 10}」を入力すればいいです。
次に実例を見ます。
F 5を押してデスクトップを更新します。
Wshell.SendKeys String “string」は送信するボタン指令文字列を表しています。英語の二重引用符に入れる必要があります。
1、基本キー
一般的には、送信するキー命令は、このキー文字自体で直接表してもよく、例えば、アルファベット「x」を送るには、Wshell.SendKeys「x」を使っても良い。複数のキーコマンドを直接送信することもできます。キー文字を順番に並べばいいです。例えば、ボタン「cfan」を送信するには、Wshell.SendKeys「cfan」が使えます。
2、特殊機能キー
Shift、Ctrl、Altの3つの制御キーと組み合わせる必要があるキーSendKeysには特殊な文字を使って表します。
特殊制御キー特殊文字
Shift +
Ctrl ^
Alt %
3、コンビネーションボタン
送信するコンビネーションボタンがCtrl+Eを同時に押す場合は、Wsh Shell.SendKeys「^e」と表示します。送信するコンビネーションボタンがCtrlキーを押しながらEとCの2つのキーを押す場合は、小さい括弧を使ってアルファベットをまとめ、Wshell.SendKeys「^(ec)」と表記します。ここではWshell.Shell.Sedysとの違いに注意してください。後者は結合ボタンがCtrlとEボタンを同時に押してCtrlキーを離し、単独で「C」キーを押します。
これらの文字は特殊な制御ボタンを表していますが、これらのボタンはどのように表していますか?大きな括弧でこれらの文字を囲めばいいです。例えば、プラス記号「+」を送信するには、Wshell.SendKeys「+」を使用することができます。また、文字が生成されない制御機能ボタンについても、大きな括弧で囲まれたキー番号の名称が必要であり、例えば、リターンキーを送信するには、Wshell.SendKeys「{ENTER}」で表示される必要があります。
4、複数の重複キー
複数の重複した単字母キーを送信する必要がある場合、この文字を繰り返し入力する必要はなく、SendKdysは簡略化された形式で記述することができ、書式は「{ボタン番号}」である。例えば、10文字の「x」を送るなら、Wshell.SendKeys「{x 10}」を入力すればいいです。
VBS脚本を自動的に手帳に文字を入力させる「ハロー、welcome to jb 51.net」。
私たちが一番よく使うメモ帳にはWord、WPSのような自動タイミングでディスクを保存する機能がありません。実はVBSスクリプトを利用してSendKeysコマンドを加えると、この残念さを補うことができます。メモ帳を開いて、次の内容を入力します。
これをメモ帳として保存します。vbsは後でメモ帳を使うときは、このスクリプトファイルをダブルクリックして開きます。
プログラム詳細:
このスクリプトの基本的な考え方は、Ctrl+Sというディスク結合キーをタイミングよくメモ帳に送信することです。
第一部:スクリプトに必要な変数とオブジェクトを定義します。AutoSaveTime「変数は自動メモリ間隔を設定するために使用され、単位はミリ秒で、ここで5分間に設定されます。」TXT FileName「変数は入力ボックスで作成するテキストファイルの名前を取得します。
第二部分:ノートを実行して、Windows自身が提供するプログラムに対して、例えば計算機など、直接に「Wshell.Run」の後にプログラム名を入力することができます。3フォーマットの入力、たとえば“”D:\Prograa~1\Tencent\QQ。exe""
第三部分:ここではSendKeysコマンドでこのような操作フローを実行しました。(各操作間の遅延命令の使用に注意してください。)
メモ帳でCtrl+Sキーを押す→ファイルを保存するウィンドウを開く→ファイル名を入力する→Alt+Sキーを押して保存する(デフォルトは「マイドキュメント」ディレクトリに保存されます)。
第四部分:タイミング・ディスクのキーは、「While…Wend」という条件が「真」の場合に循環コマンドにより、自動メモリコード「Wshell.SendKeys」^s「」とタイミングコード「WScript.Sleep AutoSaveTime」の繰り返し実行を実現します。このタイミングでメモリサイクルをずっと実行させてはいけないので、メモ帳を終了してから、自動的にスクリプトを終了してループを終了しなければならないので、サイクル判定条件「Wshell.AppActivate TXT FileName=True」を設計しました。ノートの実行中に、メモ帳のウィンドウをアクティブにして、この条件の運行結果は「True」です。スクリプトがメモ帳のウィンドウをアクティブにしないと、ループして「Wend」の後ろの「WScript.Quit」を実行してスクリプトを終了します。
キー コード
------------------
Shift +
Ctrl ^
Alt %
BACKSPACE {BACKSPACE、{BS}or{BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK
DEL or DELETE{DELETE}or{DEL}
DOWN ARROW {DOWN}
END {END}
ENTER {ENTER or~
ESC {ESC}
HELP {HELP}
ホーム?ム {ホーム
INS or INSERT{INSERT}or{INS}
LEFT ARROW {LEFT
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP)
PRINT SCREEN {PRTSC}
RIGHT ARROW {RIGHT
SCROLL LOCK {SCROLLLOCK}
TAB {TAB
UP ARROW {UP}
F 1{F 1}
F 2{F 2}
F 3{F 3}
F 4{F 4}
F 5{F 5}
F 6{F 6}
F 7{F 7}
F 8{F 8}
F 9{F 9}
F 10{F 10}
F 11{F 11}
F 12{F 12}
F 13{F 13}
F 14{F 14}
F 15{F 15}
F 16{F 16}
その使用形式は、Object.SendKeys(string)です。
object:Wshellオブジェクトを表します。
string:送信するキー命令文字列を示しています。英語の二重引用符に入れる必要があります。
基本キー
各キーは1つ以上の文字で表されます。
単一のキーボード文字を指定するためには、文字自体のキーを押す必要があります。例えば、アルファベットAを表すために、「A」を使ってもいいです。
複数の文字を表すためには、文字の後ろに直接他の文字を加えなければなりません。例えば、A、B及びCを表すなら、stringとしてABCを利用することができる。
特殊機能キー
SendKeysは、Shift、Ctrl、Altの3つの制御キーと組み合わせる必要があるキーに対して、特殊な文字を使って表します。
Shift-----Wshell.SendKeys「+」
Ctrl------Wshell.SendKeys'^
Alt-----Wshell.SendKeys「%」
これらの文字は特殊な制御ボタンを表していますが、これらのボタンはどのように表していますか?大きな括弧でこれらの文字を囲めばいいです。例えば、プラス記号「+」を送信するには、「Wshell.SendKeys「+」を使用します。
また、文字を生成しない制御機能ボタンについても、大きな括弧でボタンの名前を囲む必要があります。
例えば、リターンキーを送るには、「Wshell.SendKeys」「ENTER」という表現が必要です。
下向きの方向キーを送るときは、「Wshell.SendKeys」と表示されます。
Space------Wshell.SendKeys「」
Enter----Wshell.SendKeys「{ENTER}」
←-----Wshell.SendKeys「{RIGHT}」
↑-----Wshell.SendKeys「{UP}」
F 1------Wshell.SendKeys「{F 1}」
キー
コード
BACKSPACE
{BACKSPACE}
BREAK
{BREAK}
CAPS
LOCK
DEL
or
DOWN
ARROW
END
{END}
ENTER
{ENTER}または
ESC
{ESC}
HELP
{HELP}
ホーム?ム
{ホーム}
INS
or
LEFT
ARROW
NUM
LOCK
PAGE
DOWN
PAGE
UP。
SCREEN
RIGHT
ARROW
SCROLL
LOCK
TAB
{TAB}
UP。
ARROW
F 1
{F 1}
F 2
{F 2}
F 3
{F 3}
F 4
{F 4}
F 5
{F 5}
F 6
{F 6}
F 7
{F 7}
F 8
{F 8}
F 9
{F 9}
F 10
{F 10}
複数の重複した単字母キーを送信する必要がある場合、この文字を繰り返し入力する必要はなく、SendKeysは簡略化された形式で記述することができます。形式は「{ボタンの数字}」です。例えば、10文字の「x」を送るなら、「Wshell.SendKeys」「{x 10}」を入力すればいいです。
次に実例を見ます。
F 5を押してデスクトップを更新します。
Dim WshShell,Path,i
Set WshShell = Wscrpt.CreateObject("Wscrpt.Shell")
WshShell.SendKeys "{F5}"
コンピュータの自動再起動
Dim WshShell
Set WshShell = CreateObject("Wscrpt.Shell")
WshShell.SendKeys "^{ESC}u"
WshShell.SendKeys "R"
タスクマネージャを起動
Dim WshShell
Set WshShell = CreateObject("Wscrpt.Shell")
WshShell.SendKeys "^+{ESC}"
自動シャットダウン
Dim WshShell
Set WshShell=Wscrpt.CreateObject("Wscrpt.Shell")
Wscrpt.Sleep 2000
WshShell.Run "shutdown -r -t 120"
wscrpt.sleep 6000
WshShell.Run "shutdown -a"
メモ帳にHappy Birthdayを入力します。Birth.txtとして保存します。
Dim WshShell
Set WshShell=Wscrpt.CreateObject("Wscrpt.Shell")
WshShell.Run "notepad"
Wscrpt.Sleep 1500
WshShell.AppActivate "Ξ? - ?±"
WshShell.SendKeys "Happy Birthdy!!!"
Wscrpt.Sleep 500
WshShell.SendKeys "%FS"
Wscrpt.Sleep 500
WshShell.SendKeys "birth.txt"
Wscrpt.Sleep 500
WshShell.SendKeys "%S"
Wscrpt.Sleep 500
WshShell.SendKeys "%FX"
簡単に言えば、SendKeyというコマンドはアナログキーボード操作で、一つ以上のキーコマンドを指定のWindowsウィンドウに送信して、アプリケーションの実行を制御します。フォーマットは以下の通りです。Wshell.SendKeys String “string」は送信するボタン指令文字列を表しています。英語の二重引用符に入れる必要があります。
1、基本キー
一般的には、送信するキー命令は、このキー文字自体で直接表してもよく、例えば、アルファベット「x」を送るには、Wshell.SendKeys「x」を使っても良い。複数のキーコマンドを直接送信することもできます。キー文字を順番に並べばいいです。例えば、ボタン「cfan」を送信するには、Wshell.SendKeys「cfan」が使えます。
2、特殊機能キー
Shift、Ctrl、Altの3つの制御キーと組み合わせる必要があるキーSendKeysには特殊な文字を使って表します。
特殊制御キー特殊文字
Shift +
Ctrl ^
Alt %
3、コンビネーションボタン
送信するコンビネーションボタンがCtrl+Eを同時に押す場合は、Wsh Shell.SendKeys「^e」と表示します。送信するコンビネーションボタンがCtrlキーを押しながらEとCの2つのキーを押す場合は、小さい括弧を使ってアルファベットをまとめ、Wshell.SendKeys「^(ec)」と表記します。ここではWshell.Shell.Sedysとの違いに注意してください。後者は結合ボタンがCtrlとEボタンを同時に押してCtrlキーを離し、単独で「C」キーを押します。
これらの文字は特殊な制御ボタンを表していますが、これらのボタンはどのように表していますか?大きな括弧でこれらの文字を囲めばいいです。例えば、プラス記号「+」を送信するには、Wshell.SendKeys「+」を使用することができます。また、文字が生成されない制御機能ボタンについても、大きな括弧で囲まれたキー番号の名称が必要であり、例えば、リターンキーを送信するには、Wshell.SendKeys「{ENTER}」で表示される必要があります。
4、複数の重複キー
複数の重複した単字母キーを送信する必要がある場合、この文字を繰り返し入力する必要はなく、SendKdysは簡略化された形式で記述することができ、書式は「{ボタン番号}」である。例えば、10文字の「x」を送るなら、Wshell.SendKeys「{x 10}」を入力すればいいです。
VBS脚本を自動的に手帳に文字を入力させる「ハロー、welcome to jb 51.net」。
Dim WshShell
Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad"
WScript.Sleep 200
WshShell.AppActivate " - "
WshShell.SendKeys "hello, welcome to jb51.net"
自動定時メモリのメモ帳私たちが一番よく使うメモ帳にはWord、WPSのような自動タイミングでディスクを保存する機能がありません。実はVBSスクリプトを利用してSendKeysコマンドを加えると、この残念さを補うことができます。メモ帳を開いて、次の内容を入力します。
これをメモ帳として保存します。vbsは後でメモ帳を使うときは、このスクリプトファイルをダブルクリックして開きます。
プログラム詳細:
このスクリプトの基本的な考え方は、Ctrl+Sというディスク結合キーをタイミングよくメモ帳に送信することです。
第一部:スクリプトに必要な変数とオブジェクトを定義します。AutoSaveTime「変数は自動メモリ間隔を設定するために使用され、単位はミリ秒で、ここで5分間に設定されます。」TXT FileName「変数は入力ボックスで作成するテキストファイルの名前を取得します。
第二部分:ノートを実行して、Windows自身が提供するプログラムに対して、例えば計算機など、直接に「Wshell.Run」の後にプログラム名を入力することができます。3フォーマットの入力、たとえば“”D:\Prograa~1\Tencent\QQ。exe""
第三部分:ここではSendKeysコマンドでこのような操作フローを実行しました。(各操作間の遅延命令の使用に注意してください。)
メモ帳でCtrl+Sキーを押す→ファイルを保存するウィンドウを開く→ファイル名を入力する→Alt+Sキーを押して保存する(デフォルトは「マイドキュメント」ディレクトリに保存されます)。
第四部分:タイミング・ディスクのキーは、「While…Wend」という条件が「真」の場合に循環コマンドにより、自動メモリコード「Wshell.SendKeys」^s「」とタイミングコード「WScript.Sleep AutoSaveTime」の繰り返し実行を実現します。このタイミングでメモリサイクルをずっと実行させてはいけないので、メモ帳を終了してから、自動的にスクリプトを終了してループを終了しなければならないので、サイクル判定条件「Wshell.AppActivate TXT FileName=True」を設計しました。ノートの実行中に、メモ帳のウィンドウをアクティブにして、この条件の運行結果は「True」です。スクリプトがメモ帳のウィンドウをアクティブにしないと、ループして「Wend」の後ろの「WScript.Quit」を実行してスクリプトを終了します。
' :
Dim WshShell, AutoSaveTime, TXTFileName
AutoSaveTime=1000*60*5
Set WshShell=WScript.CreateObject("WScript.Shell")
TXTFileName=InputBox(" ( ):")
' :
WshShell.Run "notepad"
WScript.Sleep 200
WshShell.AppActivate " - "
' :
WshShell.SendKeys "^s"
WScript.Sleep 300
WshShell.SendKeys TXTFileName
WScript.Sleep 300
WshShell.SendKeys "%s"
WScript.Sleep AutoSaveTime
' :
While WshShell.AppActivate (TXTFileName)=True
WshShell.SendKeys "^s"
WScript.Sleep AutoSaveTime
Wend
WScript.Quit
付:VBSのSendkeyキーボード対応コード表キー コード
------------------
Shift +
Ctrl ^
Alt %
BACKSPACE {BACKSPACE、{BS}or{BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK
DEL or DELETE{DELETE}or{DEL}
DOWN ARROW {DOWN}
END {END}
ENTER {ENTER or~
ESC {ESC}
HELP {HELP}
ホーム?ム {ホーム
INS or INSERT{INSERT}or{INS}
LEFT ARROW {LEFT
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP)
PRINT SCREEN {PRTSC}
RIGHT ARROW {RIGHT
SCROLL LOCK {SCROLLLOCK}
TAB {TAB
UP ARROW {UP}
F 1{F 1}
F 2{F 2}
F 3{F 3}
F 4{F 4}
F 5{F 5}
F 6{F 6}
F 7{F 7}
F 8{F 8}
F 9{F 9}
F 10{F 10}
F 11{F 11}
F 12{F 12}
F 13{F 13}
F 14{F 14}
F 15{F 15}
F 16{F 16}