64bit 環境で AutoHotkey の ThumbRemap を動かす

Pocket

タッチパッドの革新的な操作感を提供する、 ThumbSense というソフトがあるのだが、これには中クリックを実現できない欠点があった。
そこで、AutoHotkey を利用して、スクリプトで自由にキーを割り当てつつ、 ThumbSense の機能を実現してしまおうという、 ThumbRemap.ahk というものが存在する。
(オリジナルの配布もとは既に無くなっており、ミラーサイトで配布中 → 残念ながら、ミラーサイトからは拾えなくなってしまったようだ。 ただ、 元サイトの Wayback Machine で拾える模様

これ自体もなかなか古く、最新の 64bit OS で 普通に AutoHotkey を導入してしてもおそらく動かないだろう。

AutoHotkey を導入する

まず前提として、本家 Autohotkey は事実上開発停止状態なので、派生版の AutoHotkey_L を使用することを前提とする。
http://www.autohotkey.com/ こちらからインストーラのダウンロードが可能だ。
さて、インストールする際、オプションに注意が必要だ。

OS の種類にかかわらず、32bit 版をインストールする必要がある。
これは、タッチパッドの状態を知るためにドライバを叩く際、32bit 版の DLL であることを前提に作られているため、32bit 版のプロセスから実行しないと、正常に動作しないためだ。
しかし心配するなかれ。64bit OS 上でも、AutoHotkey を 32bit プロセスで立ち上げれば、問題なく動作する。

また、32bit 版には、 ANSI 版と Unicode 版の2種類が存在する。
ThumbRemap を動かすだけであれば、 ANSI 版の方が上記のミラーサイトからダウンロードできるスクリプトがそのまま実行できて良い。
ただ、ほかのスクリプトも動かすとなると、国内では日本語の取り扱いに問題の無い Unicode 版の方が主流となりつつあるようなので、そちらでも動かせるようにしたい。
Unicode 版での違いは、スクリプトが UTF-8 であることと、DLL を呼び出す際の文字列の形式が Unidode となるので、Unicode 対応関数を呼ばなくてはならないことぐらいなので、それに対応した ThumbRemap のパッケージを ここに置いておく
(配布元がなくなっているのもあり、許可無く再配布してしまっているが、再配布に問題がある場合は連絡をいただければ配布を停止します。)

AutoHotkey_L のインストーラはかなり親切な作りなので迷うことは無いと思うが、一応 x86 Unicode 版を選ぶまでのスクリーンショットを張っておく。

インストールオプションの選択 1
インストールオプションの選択 2
あとは画面に従ってインストールを続ければOK.

ThumbRemap の実行

AutoHotkey を導入し、適切な ThumbRemap がダウンロードできたら、あとは Readme.txt に従って、 ThumbRemap.ahk をテキストエディタで編集し、ThumbRemap.ahk を実行すれば、無事に実行可能になるはずだ。

動かない場合、以下の点を正しく登録できているか確認してみよう。

  • 32bit 版の AutoHotkey を導入しているか?
  • Unicode版と ANSI版で、使用する ThumbRemap.ahk が異なるが、その選択は適切か?
  • Readme.txt に従って、 ThumbRemap.ahk の書き換えは行ったか?タッチパットのドライバは正しいか?対応していないドライバではないか?

64bit 版 AutoHotkey との共存

残念ながら、現時点で Synaptics の 64bit 版のドライバが解析できておらず、64bit 版 AutoHotkey に対応させるすべはないようだ。
そういった場合は、 AutoHotkey_L に付属する、 Ahk2Exe を使って 32bit 版 Exe化 させてしまえば良い。
Ahk2Exe は、インストールしたパッケージにかかわらず、32bit+Unicode, 64bit+Unicode, 32bit+ANSI すべてのスクリプトを変換できるので、ThumbRemap を利用する際は、Exe化 したものを使い、それ以外は 64bit 版 AutoHotkey を利用するなど、住み分けを行えば良い。
Ahk2Exe

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください