Screen Shot


概要

WindowsのノートPCをマウスがなくても快適に使えるようなツールを作りました。

説明

Windowsを使うとき、普通マウスがなければタッチパッドとそのボタンを使って操作をすると思います。しかしカーソルを長距離動かしたり画面をスクロールしたりといったことがしづらくストレスがたまることがあるので、手をホームポジションに置いたままマウスの動きを実現できるようなプログラムを作りました。また、ウィンドウ切り替えを簡単に行う機能とテキストをVim風に編集できる機能も作りました。

技術的な説明

C++でWin32apiを用いて、WindowsなのになぜかVimとg++を使って開発を行いました。プログラム起動中はキーボードの入力をフックして各動作を行うので、ほかのソフトウェアに不要な文字の情報が送られることがありません。

しかし、コンパイラのバージョンによってはPDFを閲覧するとフックが無効になったりコマンドプロンプト使用中にフックが無効になったりするよくわからないバグが残りました。開発中はマウスカーソルが動かなくなったりキーボードが反応しなくなったりしてヒヤヒヤすることもありました。

操作方法

〈 ノーマルモード 〉

マウスカーソルの移動
  • e/s/d/fで上/左/下/右
  • qでウィンドウの閉じるボタンにカーソル移動
  • x/cで画面の左/右側にカーソル移動
右/左クリック
  • j/l または q/e
マウスホイール操作
  • i/,/k で上/下/クリック または aを押しながらe/dで上/下
モード切り替え
  • g ウィンドウ切り替えモード
  • v テキスト編集モード
  • I プログラムの一時停止 (再開はShiftを押しながらEscape)
  • Control+Shift+何か マクロモード

  • 〈 ウィンドウ切り替えモード 〉

    カーソルの上下移動
    • k/j
    決定
    • t
    モード切り替え
    • Escape ノーマルモード

    〈 テキスト編集モード 〉

    大体Vimと同じ
    モード切り替え
    • Escape ノーマルモード

    〈 マクロモード 〉

    マクロを保存する
    • 各キー
    終了
    • Control+Shift+q