iPadからWindowsのマウスとキーを操作する

keymouseproxy_thumbiPad上のアプリを操作すると、Windows上のマウスカーソルの移動やキー入力が行われるデモを作ってみた。

操作例

使い方

1:Windows上にC#のサーバー(KeyMouseTCPServer\bin\Release\KeyMouseTCPServer.exe)を立ち上げる。
2:ipアドレスを確認する。
3:iPadアプリを起動して、Windows上のipを打ち込む(portは50057)。
4:iPadアプリ上のBindボタンをタップする。
5:iPadアプリ上の緑のエリアをスワイプすると、Windows上のマウスカーソルが動く。
6:iPadアプリ上の中央上のテキストボックスをタップすると、ソフトウェアキーボードが現れる。
7:キーを打ち込むと、Windows上でキーイベントが発生する。

ファイル一式

https://github.com/umhr/KeyMouseProxy

memo

・TCPでつなげている。
・文字コードはUTF-8を使っている。
・書式としては、ユニコードの私用領域を使ったら面白いかな、ということで実装してみた。「String.fromCharCode(0xE000)+制御文字+String.fromCharCode(0xE001)+送る文字+String.fromCharCode(0xE002)」といった按配で。
・もっと普通に使いやすくしよう、プロトコルをブラシュアップしようとか考えてたら、既存の規格やアプリを見つけたので中止。汎用的にするのだったら既存の規格を使うべきだし、特化するならその目的が定まったときにやるべき。車輪の再発明を楽しむ、という意味では既に達成したし。
・既存の規格としては、TUIO
・既存のアプリとしてはTouchProxyなど、いろいろあるっぽい。
・FlashでTUIOやるなら、「Flashで使えるOSCライブラリ、tuio-as3 – Asus4 onD」が参考になりそうな感じ。
・TUIOはUDPで通信するのが一般的みたい。マウス操作はUDPで十分だと思うけど、キー操作だとTCPの方が良いような。ただし、TUIOのAS3ライブラリtuio-as3-libでは、ちらっと見た感じTCPは未実装っぽい。