ASUS Transbook T90chi用マウス補完アプリ「ChiPointer」公開!

昨年夏にLenovo Miix2 8を購入したその年末、
ASUSからとても魅力的なタブレット?なマシンが発売されました。
それが
ASUS Transbook T90chi
タブレットにもノートPCにもなる2in1なる商品です。
昔からこの手の小型PCには目がなかったので、ずっとほしかったのですが
当時は価格が6万円近くしたこと、Miix2 8購入したてだったこと
などがあり手を出せませんでs対。
しかしながら先月頭になんとWindows10モデルになって3万円!とびっくり価格で登場!!
これは、、、ほしぃ〜!!
となったわけですが、、、おいそれと買うわけにはいかず
情報だけを日々調査している状態でした。
そんな矢先、
Amazonにてタイムセール!
300台限定で28,000円程度!
1時間限定!
「うぉ〜」ってぽちっとな。。。してしまいました。
しかも風呂の中(汗)
ああ、かみさんになんて伝えればいいか・・・なんて考えながら
上記購入経緯を全部説明し、、、今に至ります(爆)
ともかく、
VAIO type Pだった私にとってはベストサイズなのには変わりなく、
性能が段違いに上がったPちゃんなわけですが、
残念なことにマウスポインタがないんですよね。
VAIO type Pにあったアキュポイント、あれ最高だったんですけどね。
これがついてればなぁ〜とおもってもしょうがないので
それに代わるアプリを作ることにしました(汗)
詳細は同梱されている説明書を見てください。

完全に自分仕様のベータ製品です。

特徴は・・・
・マウスモードとキーボードモードの切り替えが別キーによるトリガなしで行える
となります。
トリガも使えますが基本マウスモードとキーボードモードはシームレスに切り替えできます。

完成度は期待しないでください。
また特にサポートは考えていません。
要望はコメントに書いていただくかtwitterで書いていただければ考えてみたいと思います。

Dropboxよりダウンロードしてください。

【履歴】
2015/12/08 ASUS Transbook T90chi用マウス補完アプリ「ChiPointer」初公開
2015/12/09 機能無効キー実装
2015/12/10 実行しているとスリープに入れない重大問題確認→解消へ
2015/12/12 mouse_eventからSendInputへ変更
      中央ボタンを「N」で利用できるようにした。
2015/12/20 タスクトレイ格納型に。格納アイコンを左クリックで終了。
タスクトレイアイコン暫定でshel32.dllのものを使用(汗)
  一応稼働モードに合わせて切り替わります。
また各種モード切替時バルーンメッセージが表示されるようになった(実験中)
2016/02/15 ビルドバージョン18。
      検証版のため人柱専用。
      マウスモードに切り替わるときの動きを一部変更。
      誤爆の可能性もあるが、マウスモードに切り替わりの際、
      最後に入力したキーがエンター以外の場合はBSを1キー
      エンターキーを含め他のキーの場合ESCを1キー入力されるように変更。
      これによりマウスモードに切り替わった際に余計な文字などが自動削除される動きとなった。
      実はこれ、以前のバージョンでも一時導入していた時があったが誤爆が多く
      断念していたものを見直しして再導入した。はたして。。。
2016/02/16 ビルドバージョン19。
      検証版のため人柱専用。
      Win10のメーラーやスケジュールで誤爆ありのため、
      ESCなし制御版を作製。これでよいか?
      というか、IE11やWinアプリ寄りのIME挙動変ではないかな?
      IE11は独自にキーフックしてるかもしれないね。。。対応難しいかも。
2016/02/17 ビルドバージョン20。
      検証版のため人柱専用。
      IE11で検索バーに何か入力した後マウスモードになると「BS」キーの内部発行により
      「戻る」が一度押されてしまうのと同じ状態になってしまう「誤爆」に対応。
      それ以外の挙動も多少解消。よりキーボード→マウス時の余計な入力文字を自動で消されるようになった。

2016/02/21 ビルドバージョン21。
      検証版のため人柱専用。
      18〜20までの「BS」発動挙動手法を取りやめ。
      誤爆をどうしても回避できなかったため。
      本バージョンにて「BS」発行手法ではなく、「H」「J」「K」「L」の移動キーに関して
      他キーと異なりキーを押した時ではなく、離した時に入力を受け付ける処理に変更。
      これにより、移動キーがリピートになるまで長押しされた場合、1文字も入力されることなく
      マウスモードに切り替わる挙動とした。
      ただし、キーボードモード時移動キーのみ入力タイミングが変わると妙な違和感および
      文字の取りこぼしが発生するためキーボードモードでは「一呼吸(0.3秒)」を検知し、
      連続入力ではなく、断続入力されているときにのみ移動キーの入力タイミングが変更されるようにした。
      このことでほとんどの場合、マウスへの切り替えはほぼ問題なく移動キーの1文字が入力されてしまうことが
      防げるようになった。長文を書いているときの妙な挙動も特に感じられない。
      またマウスモードからキーボードモードに切り替えに利用できなかったキーとして
      「Z」「C」「X」「V」などがあったが、「Ctrl」や「Alt」併用時には無効化されそれ以外は
      他キーと同様にモード切替に利用できるキーとすることとした。
      再び本バージョンを安定板としてリリース。

      
2016/02/25 ビルドバージョン22.
  Rキー併用のスクロールモード切替時マウスモードになるように内部処理変更。
  マウスモード時「;」キーにて右クリックメニューだが、
  「;」を長押しするとセミコロンを入力できる状態となりそのままキーボードモードになるように変更。
      プログラマは「;」使うからね。    
  バージョン21からの挙動で「一呼吸」おいたあとの「H」「J」「K」「L」キー後の1文字、
  例えば「J」「I」で「じ」といった入力が反応しにくい問題。
  これは「H」「J」「K」「L」を入力した際、離れるまで文字が入力されないため
  離される前に次のキーが入力されてしまうためにおこる問題。
  特に「H」「J」「K」「L」の周りのキーで連続的に入力されやすいものが対象となる。
  これを解消!
  その周りの「U」「I」「O」に関しても同様に離すときにキー入力をするように変更。
  連続入力になる初期2文字までが対象なので通常利用中は全く気が付かない。
  よかった。これでまともになった。
      

2016/02/06 ビルドバージョン24.
      問題だらけで、、、未公開。。。
  いろいろ内部処理変更。
  結局64bit機でSendInputの処理が怪しそうだったのでmouse_eventやkeybd_eventへ戻す。
  マウスモード時、スペースキーの長押し&マウス移動キーに触れない状態維持でキーボードモードへの切り替え
  手法へ変更。これにより最初からスペースキー入力も行える。
  右クリック用セミコロンも同様に長押しで対応可能。
  「U」「I」「O」に加えて「A」「E」のすべての母音を「一呼吸」後の2キーまでの
      「離したら」キー入力該当キーに設定。
  またこれらのキーをマウスモードからキーボードモードに切り替えるために使用すると
  2文字入力されてしまう問題に対処。
  ENTERキーはモード切替に反応しないように変更。
  モード切替時、マウスボタンはすべていったんアップされるよう内部処理変更。
  ここからは雑談。。。
  にしても、、、Windows10のEDGE、IE11、WinアプリのTwitteなどと愛称悪し。
  独自のキーフックしているような気がやはりする。
  日本語入力はおかしいので「H」と「L」で無効にして利用するしか手立てがない。
  MS IMEじゃないものにかえればよくなるのか、、、うむ。

2016/02/27 ビルドバージョン25.
  バージョン24までのWin10のEDGEやWinアプリ版TwitterなどでのIME使用時の挙動問題に対応!
  なんと、Winアプリ仕様の一部アプリケーションではキーを押したときの処理が認識できなかった。
  すべて離したときにだけイベントが発生する・・・
  これを逆手に取り、そういったWin10アプリ仕様ソフトでChiPointerがりようされているか否かを自動で判断し
  もしWinアプリ仕様ソフトでChiPointerが使用されている場合は、
  キーフックでの余計な処理を行わすWinに任せることに。
  従来のV17以前仕様ぐらいには使用できるのとIMEでの入力に違和感がないので普通に使える。
  ChiPointer全機能をWinアプリ仕様ソフトで使用したいときはIMEをOFFすれば自動で内部しょり復帰する。
  これで長時間の使用テストに耐えればほぼ動作は完成状態と考える。
  コンフィグとかそういったものを考えたくなってきた。
  にしても、、、解消してよかった。ふぅ。     
       
2016/03/02 ビルドバージョン26
      完全にIME ON時の入力違和感がなくなった。
なかなかここまでたどり着くのが大変だった。
バージョン25前までの処理から変更し、マウス移動キーHJKLの時のみ話すとキーインに変更。
その後リピートになるまでの間に他のキーが押された場合もしくは自分自身が離れた場合に
次のキー処理実行前にマウス移動キーの処理を実施。その後押されたキー処理を継続実施することで実現!

2016/03/04 ビルドバージョン27
  IME制御を取り入れる。
  マウスモードに切り替わる際にIME OFFを実施。
  これにより今までしらずしらずIME ONのままでマウス操作していると一部機能が働かなかったりする事象を
  根本的になくすことに成功。

2016/03/05 ビルドバージョン28
  EDGE/Win10アプリなどでIME ONのときマウスモードへの切り替えがうまくいかない状況を打破すべく
  独自アルゴリズムでそれらアプリを検知し、そこそこマウスモードへの切り替え+IME OFF実施ができるようになった。
  とはいえ、他のソフト上での動作と異なりマウス移動キーが一文字入ってしまう。
  それでもだいぶ以前よりまし。というか、かなり良くなったと思う。
  ・・・でもWin10のIE11だけはまったく対応できず。。。
      
2016/08/13 ビルドバージョン29
久々のアップデート。
Windows10 Anniversary UpdateによるWinストアアプリとの相性に挑戦。
とはいえ、フックができない以上Winアプリ上での動作は限定される。
今回のバージョンではWinストアアプリ上でキーボードを押すとマウスモードが解除される。
これによりWinストアアプリ上でのマウス移動がされながら文字入力がされてしまうという現象が回避される。
Winストアアプリは画面タッチと併用して使ってください。
Winデスクトップアプリに戻ったあとにそのまま継続でChiPointer機能は使えるので
どうしてもキーボードメインで使用したければAlt+Tabで画面切り替えて使用すればそこそこ使えます。      

      

最新版(v29)
Dropbox - ChiPointer.zip - Simplify your life

IME制御実装前最終バージョン(v26)
Dropbox - ChiPointer.v26.zip - Simplify your life

古いバージョン(v17)
※「一呼吸」機能実装前最終バージョン
Dropbox - ChiPointer.v17.zip - Simplify your life

注意!
v28以降でのWin10アプリやEDGE上でIME制御を聴かせるためにはWin10標準のMS IMEではだめです。
Google日本語入力だとそこそこ制御してくれますのでおすすめです。
今後ChiPointerはGoogle日本語入力環境ベースで対応の予定です。


使い方は簡単。
ChiPointer.exeを実行するだけです。

先人のKeyPointerを参考にしております。
このソフトを使ってその使い勝手に感動したからこそ作成するにいたったといっても過言ではありません。
KeyPointer - System I.F.C. Product Library
この場を借りて感謝いたします。

また、
キーフックを行う必要がありつーささんのサイト
http://tu3.jp/0524
のDLLを使用させていただいており、本ソフトに同梱しております。
この場を借りて感謝いたします。

とりあえず、使ってみてください。

記事に書くことをすっかり忘れ、このソフト開発に走ってしまいましたが
「UMIPI BASIC」が
2015 HSP プログラムコンテストにて
審査員奨励賞・悠黒賞
をいただくことができました!
HSPプログラムコンテスト2015 入賞作品詳細
今回の「ChiPointer」もHSP3製です。
ほんとうに素晴らしい開発環境をありがとうございます。
「ChiPointer」はT90chi用ですが、結局T90chiで開発しました(汗)
これからもいろいろソフト作るぞ!っと。

ではでは。
感想などお待ちしております。