パソコンに足りないキーをワンタッチスタートボタン(ホットキー)で代用
ご存知の通り、オフコンとパソコンのキーボードではキーの数が違い、オフコン用のキーボードにはパソコンには無いキーがあったりします。
パソコン用のキーボードで、オフコン用のソフトを使おうとすると、キーの数が足りないので、[Ctrl]キーや[Shift]キーと同時にキーを押さなければならないようなことになり、操作が結構面倒になったりします。
パソコンによっては、通常のキーとは別にキーボードの上のほうに、ボタン(ホットキーとかワンタッチスタートボタンとか言うらしい)が付いていて、そのボタンを押すとIEやメールソフトなどを実行できるようになっているものがあります。
中には、そのボタンを押すと実行するソフトを別のものに変更できるようになっているパソコンもあります。
たまたま、私の使っているパソコンのキーボードに、ワンタッチスタートボタンが付いていて、ボタンの機能が変更ができるタイプのものだったので、工夫することによって、このボタンを足りないキーの代わりにできないかと思い、試してみました。
ワンタッチスタートボタン(ホットキー)の仕組みや機能は、パソコンメーカー毎に違うようなので、必ずしもこの方法でできるという訳ではないかもしれません。あくまでも私のパソコンでやってみたら、できたということで紹介しています。
私の試したパソコンは、NECのVersaProというモデルで、キーボードの上の方に[I]と[II]と書いた2個のワンタッチスタートボタンが付いています。という訳で、[I]と書いてあるボタンに、オフコンのキーボードの[I]キー、[II]と書いてあるボタンに、オフコンのキーボードの[II]キーを割り当ててみます。
このパソコンのワンタッチスタートボタンは、「ワンタッチスタートボタンの設定」というソフトで、パソコン上の[I][II]ボタンを押したときに起動したいソフトウェアやショートカットキーを変更することができます。
そこで、以下のように考えました。
|
- ●【オフコンの[I]キーや[II]キーを押したように騙す】ソフトウェアは、以下のようなものを作ります。
-
- Windows上で実行するソフトウェア。
- WSエミュレータの標準的なキー設定では、オフコンの[I]キーはパソコンの[SHIFT]+[F8]、オフコンの[II]キーはパソコンの[SHIFT]+[F9]が割り当てられているので、[I]キー用の[SHIFT]+[F8]を押したように騙すソフトウェア、[II]キー用の[SHIFT]+[F9]を押したように騙すソフトウェアの2種類作ります。
- WSエミュレータのウインドウが一番前に来ている状態で実行する前提。フォーカスが移動しないように、騙すソフトウェアはウインドウを作らないようにする。(本当はWSエミュレータのウインドウにフォーカスを移動してから、キーを押したように見せるようにした方が良いのですが、今回は面倒なので手抜きしています。)
私は、マイクロソフトのVC++ で作ってみました。
- ●まず、[I]キー用のソフトウェアのプログラム。「[SHIFT]+[F8]を押したように騙す」ためのものです。
-
#include "stdafx.h" /****************************************************************/ /* シフトキーを押しながらF8キーを押す状態をエミュレートする */ /****************************************************************/ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // シフトキー押し下げ keybd_event(VK_SHIFT , 0 , 0 , 0); // F8キー押し下げ keybd_event(VK_F8 , 0 , 0 , 0); // F8キー上げ keybd_event(VK_F8 , 0 , KEYEVENTF_KEYUP , 0); // シフトキー上げ keybd_event(VK_SHIFT , 0 , KEYEVENTF_KEYUP , 0); return 0; }
- ●次に、[II]キー用のソフトウェアのプログラム。「[SHIFT]+[F9]を押したように騙す」ためのものです。
-
#include "stdafx.h" /****************************************************************/ /* シフトキーを押しながらF9キーを押す状態をエミュレートする */ /****************************************************************/ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // シフトキー押し下げ keybd_event(VK_SHIFT , 0 , 0 , 0); // F9キー押し下げ keybd_event(VK_F9 , 0 , 0, 0); // F9キー上げ keybd_event(VK_F9 , 0 , KEYEVENTF_KEYUP , 0); // シフトキー上げ keybd_event(VK_SHIFT , 0 , KEYEVENTF_KEYUP , 0); return 0; }
- ●後は、作ったソフトウェアをパソコンの[I]キー、[II]キーに割り当てます。
-
割り当て方法は、パソコンによって違うと思うので、詳しくは書きません。私の使ったパソコンでは、「ワンタッチスタートボタンの設定」でできました。
- ●使ってみる
-
WSエミュレータを立ち上げて、何か[I]キーや[II]キーを使うようなオフコン側のソフトウェアを動かします。そしてパソコンの[I]ボタンや[II]ボタンを押して、オフコンの[I]キー[II]キーと同じように動くのを確認。
使ってみた感想ですが、もともとこのパソコンのワンタッチスタートボタンはそんなに連打することを想定して作られている訳ではないので、(IEやメーラーを起動するのが役目の”ボタン”なので)使える!というほどではありません。他のキーから離れている、ボタンを押した感覚も他のキーとは違う。仕組み上、ボタンを押す->ソフトウェアが起動する->ソフトウェア実行->ソフトウェアが終了する、という流れを取るので、そんなに反応が速いわけでもない。初心者がキーを確認しながら、ポツポツ打っていくぐらいのスピードなら耐えられるかもしれない程度です。
プログラムを変更して、[フォーム]キー([CTRL]+[F10])や前進([SHIFT]+[PAGWDOWN])/後退([SHIFT]+[PAGWUP])にしたり、あるいは停止([CTRL]+[F4])/再開([CTRL]+[F5])にするのも良いかもしれません。
最後に、私がコンパイルしたexeを置いておきます。自由に使ってください。→ここ