![]() |
ひまわりで、いろんな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キーを押した状態で、他のキーを連続して押す操作を指定するには、連続するキー操作をかっこ()で囲みます。例えば、Altキーを押しながら'F'と'X'を押す操作の場合は'%(AF)'の様にします。
Shift + Ctrl ^ Alt %
同じキーストロークの繰り返しを指定するには'{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を送る場合は、
のように、ファンクションキーを、{F1}のように囲う必要があります。
「Form1」に,『^%{F1}』を、キー送信。
しかも、ひまわりでは、「」の中の、{}は、変数の展開として認識してしまうので、「」は、『』を使う必要があります。
感謝:ひまわりは、キー送信に、七☆星さんの"vbfunc.pas"を利用させて頂いてます。
VB SendKeys互換ライブラリである"vbfunc.pas"の作者の七☆星さんに感謝。このページも、七☆星さんの書いたマニュアルからの抜粋で構成されています。<m(_ _)m>ペコ