/* * UZK - Keyboard & Mouse extender by USB * by uratan! 2012.9.20 * revised 2020.2.8 */
コンソール画面には、wuzk.exe が打鍵を検出した旨と、 それを UZK に通知している旨が 打鍵の変化毎に表示されます。
例えばスペースキーを押して離した場合、以下のように表示されます。次に、UZK への連絡内容は、以下のようになっています。
(0)WM_KEYDOWN [20] VK_SPACE-101/US ...[1] 0x write_uzk: 4b 00 00 2c 00 00 00 00 00 (147790853[msec]) ...[2] (0)WM_KEYUP [20] VK_SPACE-101/US ...[3] 0x write_uzk: 4b 00 00 00 00 00 00 00 00 (147790972[msec]) ...[4][1] ... スペースキーが押されたことを wuzk.exe が検出しました。 ( WM_KEYDOWN ....... 押された ( VK_SPACE ......... スペースキーが ( -101/US .......... 101/US キーボードの [2] ... スペースキーが押された状態を、UZK に連絡しました。 ( write_uzk ........ UZK に伝えた ( (xxxxxx[msec]) ... PC 内部時計での送信時刻に (送信時刻を表示しているわけは…、元々キーボードは人が手で操作することを) (想定されているため、むやみに早い打鍵になっていないことを確認するためです) [3] ... スペースキーが離されたことを wuzk.exe が検出しました。 ( WM_KEYUP ......... 離された [4] ... スペースキーが離された状態を、UZK に連絡しました。最後に、例えば CONTROL + ALT + 'J' + SPACE を同時押しすると、 最終的には以下のようになります。 (人間的には同時のつもりでも、機械的には一つずつ順番に処理されます)
0x write_uzk: 4b 00 00 2c 00 00 00 00 00 (44707416[msec]) ** ** ***************** | | | [A] [B] [C][A] (マウスでなくて)キー打鍵情報を送るよ、という指定です。 [B] には「押されている状態」の SHIFT / CONTROL / ALT / WIN キーが ビットで列挙されます。 [C] には、その他の「押されている状態」のキーの、USB でのキー コードが列挙されます。 (ちなみに、この [B] 以降の 8バイトは USB キーボードプロトコルそのものです。 参考: 「本ファームウェアの構成」)最後のキーがオートリピートされて画面が流れて見にくい場合、 オートリピートはキーを離すと止まりますので、 CONTROL + ALT + 'J' + SPACE を同時押しした状態で 例えば 'L' などを ポンと叩いて見てください。
0x write_uzk: 4b 05 00 0d 2c 00 00 00 00 (45240160[msec]) ** ***************** | | | | | SPACE | 'J' 0x01:左CONTROL + 0x04:左ALT
wuzk.exe は「作業フォルダ」にある wuzk.ini を参照しますので、 下図のように(少々冗長ですが)フォルダ分けして 複数インストールしたうえで おのおの設定を変えておき、 wuzk.exe を複数起動することにより ボタン選択で必要な機能を選べます。 (まぁ何が起こるかいろいろ試してみてください)
…クリックで拡大
(4つの 子PC を個別に切り替えたり、時には同時打鍵するつもりな起動例)
Windows には作業対象のウインドウの選択を「クリック」ではなく 「マウスカーソルを置く」ことでできるようにする隠しオプションが あります。このオプションは "X-Mouse" と呼ばれており、win2000/winXP までは Microsoft の提供する Tewak-UI を使って、 また win7 ではレジストリを変更することにより 有効にすることができます。
この機能を使うと、ウインドウの一部にマウスカーソルを置けば 背面に置いたままのウインドウにもキー入力ができますし、マウスを 滑らすだけで対象を切り替えられるので右手がやや楽になります。 (逆に、なにかの拍子にマウスを滑らすと 対象からはずれることにもなりますが)
この X-Mouse は、正式採用されていないだけあって細かいところで Windows の操作とかみ合わない部分もあるのですが、興味がある方は ぜひ試してみてください。
wuzk.exe では「アクティブじゃなくなったら中断」オプションと 組み合わせて使うと、マウスを離すだけでキー転送を中断でき快適です。
- * - * -
★XP で Tweak UI でとは言ったものの、winXP の Tweak UI、もう Microsoft からは ダウンロードできなくなってるようですねぇ…。
…クリックで拡大結局はレジストリを書き換えているだけだと思いますので 下の win7 での手順が応用できると思います…。
- * - * -
★win7 で レジストリでこの How to Activate a Window by Hovering Over it with the Mouse Pointer の Option #3 を参考に、レジストリを書き換えます。 私の環境での今の設定値は↓の通り。
…クリックで拡大各種 "効果" を変更しているので、上記の web の情報と ぱっと見 設定値は異なりますが、この UserPreferencesMask 各ビットの説明 によれば、先頭バイトの 0x01 のビットを立てればよさそう…。
(1) 親PC で送るバイナリファイルをテキストにエンコードする、 例えば uuencode.exe とか。
(2) 親PC で、エンコードされたテキストを開いてコピー。
(3) 子PC でエディターを開いて準備。
(4) 「貼り付け」で親→子に自動打鍵させる。
(5) 子PC でファイルに保存してデコード、例えば uudecode.exe。
300bps ぐらいの転送レートになりますので 大きなファイルは避けた方が無難ですが、相手が unix なら+-------------------------- | % cat | uudecode +--------------------------で済みますのでちょっとしたファイルなら……。
drive_uzk.exe にて自動打鍵をさせる時、スクリプトの終了直前で Windowsキー を打鍵させるようにしておけば、
+-------------------------- |... |T 0xe3 WIN(left) |E +--------------------------スタートメニューが開くことで 遠目にも自動打鍵終了がわかって便利。 [2020.2.8]