ID:???前に雑記を書いていたサイトが完全に消滅してしまったので、AutoHotkey関連の記事をこちらに再掲載することにする。内容は当時のままなので、現在のAutoHotkeyとは異なっている場合があるかも。■AutoHotkeyを流行らせるページ(http://lukewarm.s41.xrea.com/AutoHotkey/)更新1.0.22で追加/更新されたコマンドの説明を書いた。Tabコントロールの説明が多くて苦労した。Changes(http://www.autohotkey.com/forum/viewtopic.php?t=1189&sid=11103392786bd75b8d727644971a3743)タブコントロールがいろいろ修正されたほか、ホットキー動作中にホットキーをON/OFFしたときの挙動が改良された。これにより、マウスジェスチャスクリプトが大幅に簡略化できる。通常字に左ボタンをフックしなくなるので、ペイントソフトなどで引っ掛かりがあるということもなくなる。今までは、右クリック中に他のマウスボタンのホットキーをON/OFFすると、なぜか右クリックが一瞬離されてしまい、ジェスチャが正確に入力できなかった。そこで、マウスボタンのホットキーは常に有効にしておいて、右ボタンが押されているかどうかで通常のボタン操作動作かジェスチャ動作かを分岐していた。今回の変更で、右クリック中に他のマウスボタンのホットキーをON/OFFしてもそのままジェスチャを入力できるようになった。マウスボタンのホットキーは右ボタンを押している間だけ有効にすればよく、マウスボタンのホットキー内に通常の動作を発生させるコードを書く必要がなくなった。■AutoHotkeyマウスジェスチャスクリプト改良http://lukewarm.s41.xrea.com/AutoHotkey/up/file/003.zipとりあえず改良したものをアップロード。作りかけの設定GUIも入れておいた。mginiedit.ahkで作成したmg.iniをmgini2ahk.ahkで処理すると、マウスジェスチャスクリプトが出力されるという寸法。アプリケーションルールでは、ルールに含めるウィンドウタイトル、ウィンドウクラス、プロセス実行ファイル名を列挙できる。アプリケーションルールは優先順位を設定できる。ジェスチャルールでは、ひとつのルールに複数のジェスチャを登録できる。円を書くようなジェスチャは、↑→↓←だけでなく→↓←↑や↓←↑→や←↑→↓も同じルールに登録しておけば認識しやすくなるかもしれない。mginiedit.ahk実行中に何かジェスチャを行うと、アプリケーションルールとジェスチャルールの編集画面の入力欄にそのときのウィンドウタイトル、ウィンドウクラス、プロセス実行ファイル名、ジェスチャが入力され、追加ボタンで一覧に追加できる。メイン画面でアプリケーションルールやジェスチャルールを選択すると、選択したルールに割り当てられているスクリプトが表示され、編集できる。続きは週末に作るかもしれないので、何か意見があれば流行らせるページの掲示板あたりに。■Vector新着よりWSChanger(WindowsNT_2000_XP_ユーティリティ)(http://www.vector.co.jp/soft/winnt/util/se347032.html)指定したウィンドウのウィンドウスタイルを無理やり変更してしまうツール。■AutoHotkeyを流行らせるページ(http://lukewarm.s41.xrea.com/AutoHotkey/)インクリメンタルサーチフレーム版コマンドリファレンスにJavaScriptでインクリメンタルサーチ機能をつけた。インプットボックスにテキストを入力すると、先頭が一致するコマンドが下にリスト表示される。インプットボックスにフォーカスがあるままEnterキーを押すと、最初の一致項目を開く。検索部分にフォーカスがある場合、上下キーは画面のスクロールではなく、項目間のフォーカス移動になる。あと、ついでにコマンド種別の見出しをクリックすると下位項目を折りたためるようにした。IE以外で動くかは不明。低スペック環境でも使い物にならないかも。■マウスジェスチャスクリプトGUI進捗状況とりあえず、メイン画面のINI読み書きだけ作った。■AutoHotkeyを流行らせるページ(http://lukewarm.s41.xrea.com/AutoHotkey/)マウスジェスチャスクリプト設定GUIスクリプトは多分完成。設定からスクリプトを作成するスクリプトはとりあえず動いたがあまり試してない。インクリメンタルサーチ部分一致検索に対応した。大量にあると遅いので、オプションとする。そのうち、キーワード類をソートして列挙しておいて、変数などもまとめて検索できるようにしたい。■AutoHotkey用マウスジェスチャ(設定GUI付き)http://lukewarm.s41.xrea.com/AutoHotkey/myscripts/mousegesture.zip完成したような気がする。スクリプトが出力され正常に動作した。十分にテストしてない。http://lukewarm.s41.xrea.com/AutoHotkey/myscripts/mousegesture.pngジェスチャ中にCPUパワーの約半分を食うので、Sleepの時間を調整してやる必要がありそうだ。あと、Optionで#NoTrayIconをつけるように設定できるようにもしたい。ウィンドウタイトルのつづりが1文字抜けてたり、いろいろと間違っているので修正が必要。■AutoHotkey(http://www.autohotkey.com/)1.0.23いろいろ更新されている。ID:???■AutoHotkeyを流行らせるページ(http://lukewarm.s41.xrea.com/AutoHotkey/)更新マウスジェスチャスクリプトにループ毎に挿入されるSleepの長さを設定する機能と、トレイアイコンの非表示を設定する機能を追加。その他、細かい表示の修正。1.0.23がリリースされたので、変更されたところの説明を書こうと思ったが、GUIのProgress、Sliderコントロールの説明が多くて挫折。GUIコマンドの説明が肥大しすぎているので、コマンドやコントロールごとにページを分けようと思う。書き直したところだけアップロード。■AutoHotkeyを流行らせるページ(http://lukewarm.s41.xrea.com/AutoHotkey/)更新GUIのスライドバーとプログレスバーの説明を書いた。Guiコマンドの説明が増えすぎているので、サブコマンドごとにページを分けた。Addサブコマンドはさらにコントロールごとに分けた。・今後の構想キーワード、URL、コメントの組をファイルに列挙しておき、フレーム型インデックスのインクリメンタルサーチに埋め込んで検索できるようにする。Speeeeedの置換リストを生成して、HTML中のキーワードにリンクをつけるようにする。■xrea.comのs101サーバが募集開始Perl/PHP/Python/RubyなどのCGIやMySQL/PostgreSQLなどのデータベースを使用でき、広告の挿入を手動で行うようにもできるパワーユーザー向けな感じの無料Webスペースの新規募集が開始された。AutoHotkeyのページを移転すべく取得。なんかs70あたりから募集しているところ見てないんだが、有料会員用に使われたとかだろうか?そういえば、このあたりのサーバはたまに見かけたことがあるがどこも広告がなかったような気がする。http://lukewarm.s101.xrea.com/」みたいに追加すればいいのかなとりあえず301が来て飛ばされた。2chブラウザのほうが301を追跡してくれなくて困る。大体できたような気がする。■AutoHotkeyマウスジェスチャスクリプト更新http://lukewarm.s101.xrea.com/myscripts/mousegesture.zip2chのマウスジェスチャスレで右D&Dをどうするかの話題があった。http://pc5.2ch.net/test/read.cgi/software/1082888350/868-896このスクリプトや、参考にしたStrokeItでは、ジェスチャ中に一定時間カーソルを動かさないとジェスチャがキャンセルされ、普通のD&Dになる。小さな目標に右D&Dする場合などは、目標にカーソルがあっていることを確かめている間にタイムアウトになるので、ストレスは感じにくい。開始位置からまったく動かないでいると、タイムアウトは発生しない。(ホイール系操作を使いやすくするため)一方マウ筋では、右ボタンを押した直後にカーソルを動かさないでいた場合にしかタイムアウトにならないらしく、ストレスを感じやすくなっている模様。スレッド内では、右+中クリックなどに「ジェスチャ開始位置から終了位置まで右D&Dする」という動作を割り当てることで解決する案が示されていた。マウスジェスチャスクリプトでは、どのジェスチャパターンにもマッチしなかった場合、単に終了位置で右クリックをする仕様になっていた。ここを、開始位置から終了位置まで右D&Dすると言う動作に変更することに。一致しないジェスチャのときだけこんなことされても役に立つかどうかは不明だが。MouseClickDragを使ってみたら、まめFile4間でのD&Dでなぜか右D&Dのメニューが出ずに左D&Dの動作になってしまう。エクスプローラでは反応さえしない。MouseClick,MouseMoveを組み合わせて、最後にボタンを放す前にSleepを入れることでまともな動作になった。Sleep,0では駄目で、Sleep,1でなければうまく行かなかった。原因はよくわからんが、WM_DROPFILESではどのボタンでドラッグされていたかがわからないので、実際にボタンが押されていることを何らかの方法で監視して知る必要があるからだろうか。ボタンを離す直前にカーソルの動きがあったかどうかなどでジェスチャかD&Dかを判別するというのはどうだろうか。Changes(http://www.autohotkey.com/forum/viewtopic.php?t=1282&start=30&sid=7c18d71b785fd01a4d702c9912d6bf25)久しぶりにいろいろと更新された模様。FileGetShortcutでショートカットファイルの情報を取得可能に。「実行時の大きさ」を指定するオプションが追加されたりした。■AutoHotkey(http://www.autohotkey.com/)1.0.24久しぶりに正式版に。・2chスレで話題になっていた""で囲まれたスペースを含むコマンドラインパラメータがおかしくなる問題が直っている模様。Unlock"で光学ディスクドライブのトレイをロックできるようになったらしい。・Sortでランダムソート(シャッフル?)ができるようになったらしい・TransformでUnicode変換ができるようになったとか。■AutoHotkey用マウスジェスチャスクリプト(http://lukewarm.s101.xrea.com/myscripts/index.html#mousegesture)更新なんか複数のアプリケーションルールを登録すると、設定の適用に失敗するというので調べてみた。Loop,PARSEのデリミタがカンマではなく改行になっているところがあった。修正したらなおったっぽい。■AutoHotkeyを流行らせるページ(http://lukewarm.s101.xrea.com/)更新ようやく1.0.24更新分の説明を書いた。・TransformでUnicode変換なんかクリップボード→Unicode文字列変数/Unicode文字列変数→クリップボードの変換しかできないようで使い道は微妙。・FormatTimeロケールを指定できたりしてかなり高機能。説明を書くのがしんどかった。GUIコマンドと合わせて時計などを作るのが楽になるだろう。・GUI関連の改良ウィンドウへのファイルドロップを受け取れるようになったし、PictureコントロールがEXE/DLLアイコンリソースを表示できるようになったので、ボタン型ランチャが作れそう。Changes(http://www.autohotkey.com/forum/viewtopic.php?t=1555&sid=f8206599e1f77f5598c93c82a1c548dc)なんかいろいろと更新されているらしい。各種修正のほか、パフォーマンスがいろいろと改善されている。テキストファイルを丸ごと読み込むFileReadコマンドが追加された。■AutoHotkeyでCygwinのXWinをどうにかする暇だったのでCygwinの全パッケージをインストールしてXWindowsを弄ってみた。XWinのマルチウィンドウモードで、余計なコンソールウィンドウを出さず、すべてのウィンドウを閉じたらXWin.exeも終了してくれるようなスクリプトが欲しかったが、.batや.shで作るのが面倒だったのでAutoHotkeyでやることに。\tmp\.X11-unix\X0の削除はなくてもいいような気がするが、いくつかのサイトで見かけたので入れておく。Xwinの終了は、タスクトレイアイコンのメニューで「Exit」を選んだときの動作にした。いちいち確認ダイアログが出るが、ここで終了をキャンセルしておけば次回実行時にXWinの起動待ち時間をなくせる。後、強制終了だとタスクトレイアイコンが残ってしまう。■AutoHotkey(http://www.autohotkey.com/)1.0.25いろいろと細かい修正が多い。なんか数値を扱う部分で計算式を使用できるようになったらしい。次はサブルーチンで引数と返り値が使えるようになるらしい。■AutoHotkeyを流行らせるページ(http://lukewarm.s101.xrea.com/)更新1.0.25の説明を書いた。コマンドの説明の変更箇所が大量にあってしんどかった。半分以上が引数に式を使えるようになったことの説明だった。式を指定できるようになったのは数値を単独で指定するタイプの引数すべてだろうから、式の説明の部分にその旨を書いて後は省略することにした。■AutoHotkey(http://www.autohotkey.com/)1.0.25.13最近細かいバージョンアップが続いていたが、どうでもいい修正が主だったので無視していた。今回の更新では、GUIウィンドウ周りの機能が追加された模様。GUIウィンドウに対して最小化や最大化などの操作をできるようになったほか、使用不可ウィンドウ化や常に最前面表示などにするオプションや、他のウィンドウ関連コマンドで操作するためにLastFoundWindowに記憶する機能などが追加された。■AutoHotkey(http://www.autohotkey.com/changelog/)1.0.26なにやらマイナーバージョンアップを繰り返していたが、ようやくメジャー(?)バージョンアップが。・WinGetで透過関連を取得可能に・WinSet,Redrawで任意ウィンドウを強制再描画させられるように・WinSetおよびControlで任意ウィンドウのStyle・ExStyleを変更可能に・チェックボックスのチェックの有無を「Checked1」「Checked0」のように指定可能に。「Checked%chk%」のようにして使うと便利らしい。WinSetのスタイル関連。■AutoHotkey(http://www.autohotkey.com/)1.0.27GUIウィンドウの数の上限が大幅に増えていた。released(http://www.autohotkey.com/forum/viewtopic.php?t=2480&sid=bb86d282e3bb0de2a27964f84c1768a8)ホットキーに押し上げイベントが追加された。Up}とやってもCapsLockCtrl入れ替えは実現できず。フックでは無理なのか?ウィンドウ指定でプロセスIDを指定するahk_pidが追加。プロセス名や実行ファイルパスを指定する機能はまだか。SoundBeepでビープ音を鳴らせるように?SoundPlayでシステムのメッセージ音を鳴らせるようにFileAppendでテキストを指定しなかった場合、からのファイルを作成するか、既存のファイルの更新日時を更新するように。忙しいので流行らせるページはしばらく更新できない。v1.0.29(http://www.autohotkey.com/forum/viewtopic.php?t=2571&sid=d7fa5e237ebba85a1161571b63983b6b)クリップボードのテキスト以外のデータも読み書きできるようになったらしい。クリップボードの内容の変更に反応する機能はいつ付くのか。■AutoHotkeyのサイト更新中2ヶ月放置してたんで死ぬほどある。・ClipboardAll多分一時的にクリップボードの内容を退避したいときのためのものだろうが、かなり中途半端な感じ。・ahk_groupControlSendやSendMessageでは一括処理できない模様。■今日こそAutoHotkeyのページを更新するしばらく本体が更新されていないので、この隙に日本語説明の更新を追いつかせたい。WinMergeがいつの間にか行内の変更箇所の表示に対応していた。これでRekisaと併用しなくてもかなり楽に変更箇所がわかる。■AutoHotkey(http://www.autohotkey.com/)v1.0.31・なにやら引数と返り値とローカル変数を使える関数がついたらしい。仕様じゃなかったのか。・式中の文字列内の「(」「)」で構文解析がおかしくなるのが直ったらしい。A_LineFileで現在実行中のファイル名・行番号を取得可能に・#ClipboardTimeout指令でクリップボードにアクセスするときの最大待ち時間を指定可能に忙しいのに説明書くのしんどいなと思っていたら、なにやらバグだらけらしくしばらく様子見することに。最近追加された関数機能の説明を書いた。新学期やゴールデンウィーク進行で色々と忙しいが、なぜかやった。関数内では、デフォルトですべての変数がローカル変数になる。同じ関数内で共有されるスタティック変数も存在する。期待していなかったが、再帰呼び出しも可能な模様。39回再帰呼び出しをすると、不正終了してしまう。長くなったのでファイルを分割したい。式の説明なども分割したい。各ページのリンクを修正するのが面倒なので後回し。■AutoHotkeyのページ(http://lukewarm.s101.xrea.com/)更新したかも。