シェル&「キー送信」命令


ひまわりで、いろんなWindowsアプリケーションを、遠隔操作してみましょう!
とっても、便利で、面白いですよ!!

以下の命令が、Windowsアプリの私物化計画に必要な命令です。使い方は、一目瞭然だと思いますが、キー送信だけは、ちょっと複雑なので、下で解説します。

---シェル
起動 ?を 外部プログラムを起動する(.hmwファイルならひまわりで実行)
アクティブ ?を アプリケーションをアクティブにする
キー送信 ?に,?を アクティブなアプリケーションにキーを送信する
起動して終了まで待機 ?を 外部プログラムを起動して終了まで待機する(.hmwファイルならひまわりで実行)

キー送信/キー一覧

送信するキーは、VBの SendKeys と互換になっています。
'+'、'^'、'%'、'~'、'('、')'、'{'、'}'はそれぞれSendKeys関数では特別な意味を持っています。これらの文字を渡すには、中かっこ'{}'で囲んで指定します。たとえば'+'は'{+}'のように指定します。
特殊キー一覧
BackSpace {BS}
Tab {TAB}
Ctrl+Break {BREAK}
Enter {ENTER} または ~
Home,End {HOME},{END}
Esc,Help {ESC},{HELP}
Ins {INSERT}
Del {DELETE}または{DEL}
↑,↓,←,↑ {UP},{DOWN},{LEFT},{RIGHT}
PrintScreen {PRTSC}
PageDown {PGDN}
PageUp {PGUP}
CapsLock {CAPSLOCK}
NumLock {NUMLOCK}
ScrollLock {SCROLLLOCK}
F1〜F16 {F1}...{F16}
ALT+全角/半角 {IME}

Shiftキー、Ctrlキー、Altキーとの組み合わせは、記号とアルファベットを組み合わせて使います。

Shift +
Ctrl ^
Alt %
Shiftキー、Ctrlキー、Altキーを押した状態で、他のキーを連続して押す操作を指定するには、連続するキー操作をかっこ()で囲みます。例えば、Altキーを押しながら'F'と'X'を押す操作の場合は'%(AF)'の様にします。

同じキーストロークの繰り返しを指定するには'{Key Number}'という表現を使います。たとえば'{RIGHT 10}'は'→'を10回、'{- 40}'は'-'を40回押すことを意味します。

(注)SendKeys関数でPrintScreenキーを送った場合、アクティブウィンドウのスナップショットがクリップボードにコピーされますが、アプリケーションはそのキーを受け取ることは出来ません。

キー送信サンプル

以下は、メモ帳を起動して、文字を送信する例です。
「notepad.exe」を、起動
0.5秒、待つ。

{普通の文字を送る}
「無題」に,「メモ帳の遠隔操作。そのまましばらく待って!」を、キー送信
1秒、待つ。 「無題」に,「\nこのように、外部アプリを遠隔操作できます。」を、キー送信。
1秒、待つ。 「無題」に,「\nびっくりした?」を、キー送信。

{特殊キー Alt + F, Xを送る}
1秒、待つ。 「無題」に,「%FX」を、キー送信。

2秒、待つ。 「メモ帳」に,「N」を、キー送信。

 このサンプルのメモ帳程度だと、面白いだけで、それほど、ありがたみを感じませんが、エクセル・ワードを起動して、メニューより印刷をするように、ショートカットキーを送信したり、特定時刻に、バックアップソフトを起動して、自動的にバックアップのボタンを押させたり・・・アイデア次第で、いろいろなことが出来ます。
[Shift] + [Ctrl] + [1] のように、特殊キーを重ねて送信する場合・・・
{例えば、以下の例は、エディタに現在位置の印をつけるショートカット
[Ctrl]+[Shift]+[1]
のキーを、送信します。}


「ひまわりエディタ」に,「^+1」を、キー送信。

Ctrl+Alt+F1を送る場合は、
「Form1」に,『^%{F1}』を、キー送信。
のように、ファンクションキーを、{F1}のように囲う必要があります。
しかも、ひまわりでは、「」の中の、{}は、変数の展開として認識してしまうので、「」は、『』を使う必要があります。

感謝:ひまわりは、キー送信に、七☆星さんの"vbfunc.pas"を利用させて頂いてます。

VB SendKeys互換ライブラリである"vbfunc.pas"の作者の七☆星さんに感謝。このページも、七☆星さんの書いたマニュアルからの抜粋で構成されています。<m(_ _)m>ペコ

戻る