«前の日記(2005-07-31 [日]) 最新 次の日記(2005-08-12 [金])» 編集
RSS: href="http://endoh-namazu.tierra.ne.jp/diary/index.rdf"


半期 四半期 全カテゴリ

新・なまず日記


2005-08-11 [木]

_ [ソフト][AHK]AutoHotkey

なまずは昔、UNIX系のOSを使って仕事をしていました。UNIX系でのテキストエディタといえば、GNUで有名なリチャードストールマンの傑作"emacs"で、なまずは毎日このエディタでプログラムや原稿を書いていたものです。

emacsは(初期状態の)キーバインドが独特で、例えばカーソルの上下はCtrl-p(Ctrlキーを押しながらp),Ctrl-nでおこないます。Privious(前へ),Next(次へ)の頭文字だそうで、あまり押しやすいとは思えませんが、とにかく、みんなこれに指が慣れてしまっていました。その影響で、UNIXの世界では、emacs以外のアプリでも(例えばシェルのTcshといったアプリ)、Ctrl-n,Ctrl-pを上下移動に採用していました。

Windowsを使うようになって、まず困ったのは、このようなキーバインドがまったく異なることです。カーソルを上に動かそうと思ってCtrl-pを押すと、WIndowsではCtrl-pは「印刷...」なので、いきなり印刷ダイアログが出てきたりして、 イヤ になってしまいます。 このような課題を解決するソフトとして、キー入力を別のキー入力に変換する、「キーバインド変更ソフト」というのが存在します。沢山種類があるのですが、なまずは、AutoHotkey(以下、AHK)というアプリを愛用しています。英語圏の方がつくられたソフトですが、日本人のファンの方が詳細なマニュアルの翻訳と解説サイトを運営されておられるので(Autohotkeyを流行らせるページ)、特に不自由はありません。GPLに基づいたフリー(ストールマン的な意味でフリー)ソフトです。

ここからAHKをダウンロードし、インストールすると、標準で、"C:\Program Files\AutoHotkey\"にAHK本体が格納されます。そのフォルダに、"autohotkey.ini"というファイルを作って、そのなかに、キーバインド変更の記述をします。例えば、Ctrl-pをカーソルの上移動にするなら、以下のように記述します。

$^p::
  Send,{Up}
return

これで、あらゆるCtrl-pが、カーソル上移動に変更されます。簡単ですね。さて、「Microsoft Wordを使うときだけは、Ctrl-pはCtrl-pのままがいいんだけどな」と言う場合は、以下のように書きます

$^p::
  IfWinActive, Microsoft Word
    Send, ^p
  else
    Send,{Up}
return

プログラミングの経験がある方なら、「あれ、条件分岐ができるのか。スクリプト言語みたいだな」とお気付きになられたと思います。まさにその通り。AHKでは、if,then.elseの条件分岐やループや関数が記述でき、また関数内ではローカル変数まで持てるので、 純然たる構造化プログラミングが可能となります。さらに、AHKで出来ることは、キーバインドの設定だけではありません。

  • アクティブ化や最小化などの、ほとんどのウインドウ操作
  • コントロールの操作
  • 文字列操作
  • カーソルの移動やクリックなどのほとんどのマウス操作
  • 画面上の特定した色のピクセルの検出
  • ファイル操作
  • 外部プロセスの起動やキルなどのプロセス操作
  • 簡単な記述による独自ウインドウの生成...

などなど、デスクトップで起こることはほとんどAHKで記述できます。これらの機能を実現するため、AHKでは、キー入力やタイマによる割り込み動作が可能となっています。つまり、大げさにいうならば、AHKとは、「デスクトップインタフェースを対象とした、イベントドリブン型疑似マルチタスク環境」であるといえるのです。

この過剰ともいえる多機能ぶりに、なまずのおたく心はすっかりトリコとなってしまいました。世の中には沢山のスクリプト言語がありますが、デスクトップインタフェースの改善というテーマに、キーバインドという切り口から入っていったという点で、AHKは非常にユニークで、おもしろいソフトだと思います。ちょこちょこっとスクリプトを書いたら、普段のデスクトップ作業の不満が解消される。これは、病みつきになる楽しさです。なにかおもしろいスクリプトはないものかとお思いのコンピュータ言語マニアの皆さん、是非一度、AHKに触れてみてください。

今後も、「なまず日記」では、AHKを用いた事例紹介や、なまずの自作スクリプトなどを、公開していくつもりです。

本日のツッコミ(全7件) [ツッコミを入れる]
_ viagra (2010-03-08 [月] 11:02)

http://www.stlouisbusinesslist.com/business/5021837.htm?info=viagra viagra 袤袤

_ viagra (2010-03-08 [月] 11:04)

この間も俊太郎の詩をお http://www.stlouisbusinesslist.com/business/5021837.htm?info=viagra viagra 8-[[[

_ slot80 (2013-08-29 [木] 05:42)

покер холдем менеджер, либо игровой автомат lucky haunter.

_ azart9 (2013-08-30 [金] 06:04)

новости покера, а также игровые автоматы играть бесплатно и без регистрации пробки 9 баллов.

_ ruletka25 (2013-09-10 [火] 05:17)

бесплатные игры автоматы казино, рубикон игровой клуб.

_ casino33 (2013-09-13 [金] 06:57)

интернет казино мтс пополнить яндекс деньги, либо онлайн казино бесплатно играть!

_ casino81 (2013-09-20 [金] 06:17)

как заработать деньги в казино онлайн отзывы сотрудников, казино риц покер турнири!

[]