MouseGestureL.ahk 更新履歴




Ver.1.30 (2014/06/25)
  1. 旧アクションタブを1ページ目に移動し、ターゲット選択リストを追加
  2. ターゲットリストのアイコン表示に対応
  3. ターゲットの階層管理機能を追加
  4. ターゲット、ジェスチャー、アクションの各リストの右クリックで、コンテキストメニューを表示する機能を追加
  5. ターゲットリスト、およびジェスチャーリストのダブルクリックで、対象タブへ切り替える機能を追加
  6. 設定画面のショートカットキーを追加
  7. 組み込み変数「A_ProgramFilesX86」を追加
  8. MG_Edit.ahkにMG_User.ahkをIncludeする仕様に変更
  9. 設定画面の各種リストのサイズをMG_User.ahkから変更できる仕様に変更
  10. ユーザー名とパスワードを簡易的に暗号化して設定ファイルへ保存するよう修正
  11. ターゲットリスト、およびジェスチャーリストの項目選択時に、サブリストの先頭項目を初期選択しない仕様に変更

【変更点についての補足説明】
  ◆メインタブ(変更点 1)
1ページ目はターゲット、ジェスチャー、アクションの関係を俯瞰できるメインタブとし、ターゲット、ジェスチャーの具体内容をそれぞれのタブで設定する構成としました。

  ◆ターゲットのアイコン(変更点 2)
アイコンのパス名は、入力補助によるターゲット情報の取得時に自動入力されますが、「アイコン適用」ボタンを押すまでは適用されません。
他の設定項目と異なり、設定画面のOKボタンを押しただけでは適用されないので注意してください。

  ◆ターゲットの階層管理(変更点 3)
ターゲットリストのコンテキストメニューから「サブターゲットを追加」を選択することにより、選択中のターゲットにサブターゲットを追加できます。
サブターゲットは親ターゲットの条件と、サブターゲット自身の条件の両方を満たした場合にターゲットとして認識されます。また「親ターゲットの条件を継承しない」にチェックを入れることで、親ターゲットの条件を無視することもできます。
本機能は以下の点に注意してご利用ください。

【親ターゲットの条件を継承する場合】

 Chrome (Exe=chrome.exe)
  │
  └ タイトルバー (Custom=MG_CursorInRect(0,0,0,20))

上の例で「タイトルバー」はChromeのタイトルバー領域をターゲットとして認識しますが、ターゲットとしての優先順位はユーザーの設定に依存します。 従って「Chrome」と「タイトルバー」の同じジェスチャーに別々のアクションを割り当てた場合、「タイトルバー」の割り当てアクションをリストの上位へ配置しないと、タイトルバー上でジェスチャー操作を行っても「Chrome」の割り当てアクションが発動します。

【親ターゲットの条件を継承しない場合】

 タイトルバーでタブ切替え (Custom=MG_CursorInRect(0,0,0,20)
  │           and Include=タイトルバーでタブ切替え/対象アプリ)
  └ 対象アプリ (Exe=chrome.exe
          or WClass=MozillaWindowClass)

上の例は、親ターゲットにジェスチャーを割り当てて、サブターゲットはジェスチャーの対象としたいアプリケーションを登録する入れ物としてだけに使うパターンです。このケースでは「親ターゲットの条件を継承しない」にチェックを入れておく必要があります。
この例のような使い方であれば、本来はサブターゲット化する必要もないのですが、Includeしているターゲットを配下へ置くことで、視覚的に分かりやすく管理できるというメリットがあります。

  ◆設定画面のショートカットキー(変更点 6)
Ctrl+数字:対象番号のタブへ切り替える (1:メイン、2:ターゲット、3:ジェスチャー、・・・)
Ctrl+G:選択中のターゲットへ割り当てられているジェスチャーの一覧をメニュー表示
Ctrl+↓:選択中のターゲットへ割り当てられている次のジェスチャーを選択
Ctrl+↑:選択中のターゲットへ割り当てられている前のジェスチャーを選択
Ctrl+E:アクションスクリプトをエディタで編集
Ctrl+F:サブターゲットの表示/非表示を切り替える
F1:ヘルプを表示
※その他のショートカットキーは、コンテキストメニューの右側へ表示されます。

  ◆組み込み変数「A_ProgramFilesX86」(変更点 7)
「A_ProgramFilesX86」の値は、64-bit環境では「C:\Program Files (x86)」となり、32-bit環境では「C:\Program Files」になります。
アイコンファイルのパス名、スクリプト編集用エディタのパス名、またはプログラムを起動するアクションで指定するパス名に %A_ProgramFilesX86% を含めると、その部分が前述の条件に従って実際のフォルダパス名へ置き換わるので、複数の異なる環境で設定ファイルを共有する場合に利用できます。
なお、AutoHotkey標準の組み込み変数である「A_ProgramFiles」や「A_WinDir」なども同様に利用できます。またアイコンに関しては、アイコンライブラリファイルなどを作成して「A_ScriptDir」からの相対パスで指定し、設定ファイルと一緒に管理するという方法もあります。

  ◆MG_User.ahk(変更点 8)
既にMG_User.ahkを利用している場合は、先頭へ以下の3行を追加してください。
if (MG_IsEdit) {
    Goto, MG_User_End
}

なお既存のMG_User.ahkでMouseGestureL.ahk内の関数やサブルーチンを呼び出している場合、MG_Edit.ahkの起動時にエラーとなりますが、以下のような変更で対処可能です。
【関数】
  MG_Move()
    ↓
  Func("MG_Move").()

【サブルーチン】
  Gosub, MG_OpenPluginsFolder
    ↓
  Gosub, % "MG_OpenPluginsFolder"

  ◆設定画面のカスタマイズ(変更点 9)
MG_User.ahkのMG_Edit.ahk用初期化処理内で、以下の数値を変更すると各種リストのサイズを変更できます。
ME_ListH   := 460     ; 各ページのリストの高さ
ME_TListW1 := 180     ; [P.1] ターゲットリストの横幅
ME_GListW1 := 150     ; [P.1] ジェスチャーリストの横幅
ME_AListW  := 300     ; [P.1] アクションリストの横幅
ME_AListH  := 215     ; [P.1] アクションリストの高さ
ME_AListR  := 50      ; [P.1] アクションリストのターゲット列幅の比率(%)
ME_TListW2 := 200     ; [P.2] ターゲットリストの横幅
ME_GListW2 := 200     ; [P.3] ジェスチャーリストの横幅
ME_ListPad := 8       ; 各ページのリストの横間隔
※ME_ListHは「12の倍数+4」にすると、ターゲットリストとジェスチャーリストの高さを揃えられます。

  ◆ユーザー名とパスワード(変更点 10)
設定済みのユーザー名とパスワードは文字化けしているので、設定し直してください。
なお、MG_User.ahkの共通初期化処理に以下のような行を追加しておくと、少しだけ安全になります。

MG_EncKey := "KU9z759*YmbuV%rD^2tgnbH%9VuNZEx・・・"   ; ← 適当な文字の羅列

  ◆項目の初期選択(変更点 11)
リスト選択時の挙動が変わっていますが、バグではありません。 既存のアクションを元にした新規アクション割り当ての追加や、ターゲット間での条件定義のコピーを楽にするための仕様変更です。
ただしジェスチャーパターンのリストだけは、選択と同時にジェスチャーの矢印表記が見られるよう、先頭パターンが初期選択されるようになっています。



Ver.1.20 (2014/03/17)
  1. ターゲットの名称に日本語と記号およびスペースを使える仕様に変更
  2. ターゲット名、ジェスチャー名の入力後、変更ボタンを押さなくても自動保存される仕様に変更
  3. 4方向、8方向モードの設定変更時に、定義済みジェスチャーの方向モードを自動変換する機能を追加
  4. ジェスチャー操作ログの表示オプションを追加
  5. アクションテンプレートに「アクティブウィンドウをターゲットにする」を追加
  6. Windows 7以降のエクスプローラ右ペインのアイテムを、MG_TreeListHitTest()で判定できるよう修正し、テキストラベルを除外して判定するパラメータ指定を追加
  7. MG_Send()の関数名称をMG_Click()に変更
  8. MG_Move()にアクション開始座標へ移動するパラメータ指定を追加
    (アクションテンプレートの「カーソルを移動」で、基点の選択肢に「アクション開始座標」を追加)
  9. MG_ActivatePrevWin()に最小化ウィンドウの復元/無視を指定するパラメータを追加
    (MG_ActivatePrevWin(0)で最小化されたウィンドウはアクティブ化しない)
  10. MG_Scroll2()のターゲット互換性を改善
  11. 既存のターゲット、またはジェスチャーと重複する設定をクリップボードからインポートした場合は、別名のエントリを新規作成する仕様に変更
  12. アクション割り当てリストのダブルクリックにより、割り当てスクリプトをテキストエディタでオープンする機能を追加
  13. ジェスチャーの認識処理を改善
    (稀にストロークの認識漏れが発生する問題への対応)
  14. MouseGestureL.iniに保存するアクション文字列の書式を変更
    (アクションスクリプト内に挿入したタブが改行に変換されてしまう問題への対応)
  15. Windows 8環境において、一部のダイアログBOX内にあるコントロールのハンドルが正しく取得できない不具合を修正
  16. 設定画面のサイズを拡張し、内部のデザインを変更

【変更点についての補足説明】
  ◆ジェスチャーの操作ログ(変更点 4)
操作ログを表示しておけば、ジェスチャーが思うように認識されなかったり、意図と異なるアクションが発動した時などに、ジェスチャーがどう認識されたのかを確認することができます。
ログを見ていると、縦または横方向の移動距離が、「認識設定」の「ジェスチャーの入力とみなされるカーソル移動量」に満たなくても、1ストロークとして認識されていることに気付くと思います。 これは、4方向モードであっても直線距離のカーソル移動量がストロークの判定対象となっているためで、バグではありません。

  ◆エクスプローラの右ドラッグの有効化(変更点 6)
以下の設定をインポートすると、エクスプローラおよびデスクトップのアイコン上では右ボタン始動のジェスチャーが無効化され、即座に右ドラッグができるようになります。

[Explorer]
WClass=CabinetWClass
WClass=ExploreWClass
WClass=Progman
WClass=WorkerW

[Explorerのアイコン]
And=1
Include=Explorer
Custom=MG_TreeListHitTest()

[RB_]
G=RB_
Explorerのアイコン=MG_Abort()

上記の設定に使用されている関数「MG_TreeListHitTest()」は2個のパラメータを受け取ります。
1つ目はリストビュー、2つ目はツリービュー(それぞれエクスプローラの右ペインと左ペイン)に対応しており、1を指定するとテキストラベル上でもジェスチャーが無効化され、0の場合はアイコン上のみで無効化されます。(未指定の場合は「MG_TreeListHitTest(1,1)」と同じ)

  ◆設定項目の複製(変更点 11)
既存項目と重複する設定のインポートができるようになったため、「C」ボタン →「クリップボードからインポート」ボタンを順に押すことで、既存項目の複製ができるようになりました。
項目を複製した後は、内容が重複しないよう一方の項目を修正してください。登録内容が重複したまま設定を適用した場合、リストの下位にある項目は無視されます。



Ver.1.19 (2013/12/05)
  1. アクションテンプレートへ新規アイテムを追加
  2. アクションテンプレートの既存アイテムの入力補助画面を刷新
  3. アクションテンプレートからアイテムを追加した際、項目名がコメントとして挿入される仕様に変更
  4. ジェスチャーの設定内容が自動保存される仕様に変更
  5. ターゲット、ジェスチャーおよびアクションスクリプト入力欄のクリアボタンを追加
  6. 設定確定時にMouseGestureL.iniをバックアップする機能を追加
  7. スタートアップへの登録、削除ボタンを追加
  8. スクリプトの編集に使用するエディタの指定オプションを追加
  9. プログラム起動用のユーザー情報指定オプションを追加 (Vista以降)
  10. 中央ボタンおよび第4、第5ボタンのデフォルト動作を無効化するオプションを追加
  11. 設定画面のレイアウトおよび項目名を一部変更
  12. 設定画面の高さをアイテム登録数に合わせて調節するオプションを追加
  13. 64ビットOSに未対応だったユーティリティー関数の64ビット対応
  14. 自動インストールVBスクリプト「Setup.vbs」を添付

【変更点についての補足説明】
  ◆アクションテンプレートに追加された項目(変更点 1)
・マウスクリックを発生させる
・カーソルを移動
・ウィンドウの位置とサイズを変更
・直前のアクティブウィンドウを復元
・時間待ち
・指定時間の経過後にボタンを放したら実行
・ジェスチャーの認識終了後に実行
・「カーソルを開始位置に移動」は「カーソルを移動」へ統合
・「縦(横)スクロール」、「縦(横)ページスクロール」は「スクロール」へ統合
・「その場スクロール」は「ドラッグスクロール」へ統合

  ◆ジェスチャー設定内容の自動保存(変更点 4~6)
設定画面では「更新」ボタンを押さなくても、記述内容が自動保存されるようになりました。以前の操作に慣れていると、破棄したつもりの内容が設定に反映されてしまう可能性もあり、注意が必要です。
ターゲット、ジェスチャーおよびアクションスクリプトの各入力欄は、空欄になっていると自動保存の対象にならないため、間違えたと思ったら右側の「×」ボタンを押して編集内容をクリアしてから、一旦他のアイテムを選択すれば自動保存を回避できます。
逆に何もしないアクションを登録したい場合には、空欄にした後で明示的に「更新」ボタンを押す必要があります。
また誤ってOKボタンを押してしまった場合は、直前の設定が「Config」フォルダ内に「MouseGestureL.ini.bak」というファイル名で保存されているので、これを「MouseGestureL.ini」にリネームしてからメニューの再起動を実行してください。

  ◆管理者権限での起動(変更点 7~9)
Windows Vista以降で、管理者の権限で実行されているプログラムをマウスジェスチャーで操作するためには、MouseGestureL.ahk自身を管理者の権限で起動する必要があります。本バージョンより、設定画面からMouseGestureL.ahkをスタートアップへ登録できるようになりましたが、その際に管理者権限での起動を選択できます。
ただしMouseGestureL.ahkを管理者権限で起動した場合、割り当てアクションから起動したアプリケーションも管理者権限になるため、不都合が生じる場合もあります。 これを回避するには「その他」タブにある「プログラム起動用のユーザー情報」にログインユーザー名とパスワードを設定しておき、アクションテンプレートから「プログラムを起動」を追加すれば、プログラムを一般ユーザーの権限で起動するアクションが登録できます。
また上記で設定したユーザー名とパスワードは、「スクリプトの編集に使用するエディタ」を起動する際にも参照され、指定のエディタを一般ユーザー権限で起動することができます。



Ver.1.18 (2012/08/16)
  1. 条件定義の「カスタム条件式」および「他定義との一致」に対する「不一致」オプションが機能しない不具合修正
  2. クリップボードからジェスチャー定義をインポートする際に、既存のジェスチャーと競合がある場合は、インポートしたアクションを既存のジェスチャーへ割り当てる仕様に変更
  3. 英語環境での互換性を改善



Ver.1.17 (2012/07/07)
  1. 動作割り当て画面に「 E 」(エディタで編集)ボタンを追加
  2. 完全一致に設定した条件定義が大文字/小文字を区別しないよう修正
  3. WClass、CClass、Title、Exeで始まる名前の条件定義に動作が割り当てられない不具合を修正



Ver.1.16 (2012/06/17)
  1. スクリプトファイル名およびフォルダ構成を変更
    (MouseGesture.ahk ⇒ MouseGestureL.ahk)
  2. 条件定義内の個別条件に対する「不一致」オプション設定を追加し、「どれかに不一致」、「全てに不一致」を廃止
  3. 条件定義のウィンドウクラス、コントロールクラス、実行ファイル名、およびタイトルに対して、一致判定方法のオプション設定を追加
  4. マルチディスプレイ環境での画面端接触認識に対応
  5. 画面端接触認識関連のオプション設定を追加
  6. ホイール回転メッセージを発生させる関数MG_SendWheel()を追加し、アクションテンプレートに「ホイール回転を発生させる」を追加
  7. MG_CursorInRect()のパラメータに分数、小数を指定できるよう変更
  8. MouseGesture.ini内の各行末にコメントを記述できる仕様を廃止
    (Sendコマンドで修飾キーにWindowsキーを使用する際、#の前にスペースを挿入できない問題への対応)
  9. 設定画面の一部挙動を改善



Ver.1.15 (2012/05/07)
  1. 初回起動時にサンプルジェスチャーの登録を選択できるよう変更
  2. 同一内容の条件定義の重複登録、および同一条件を対象とした動作割り当ての重複登録ができないよう修正
  3. クリップボードから条件定義、ジェスチャー定義をインポートする際、既存設定と重複する定義は無視するよう修正
  4. タスクトレイのメニューにアイテムを追加するためのプラグイン用API関数「MG_AddPluginMenu()」を追加
  5. サブトリガが設定されていない環境で、アドバンスドナビ、リアルナビを選択してもナビが表示されない不具合を修正
  6. MG_Scroll2()でMicrosoft Office 2007のスクロールができるよう修正



Ver.1.14 (2012/05/01)
  1. ナビの種類に「矢印ナビ2」を追加
  2. ナビの設定画面に矢印ナビのトリガ操作別矢印色の設定を追加
  3. カスタム条件式のテンプレートにアイテムを追加するためのプラグイン用API関数 MG_AddConditionCategory()、MG_AddCustomCondition()、MG_SetRuleValue() を追加



Ver.1.13 (2012/04/12)
  1. アクションテンプレートに縦/横スクロール、および縦/横ページスクロールを追加
  2. アドバンスドナビ、リアルナビ表示位置のオプションを追加
  3. 軌跡をオーバーラップウィンドウへ描画する設定にした際、2台目以降のディスプレイ上でも軌跡が表示されるよう修正
  4. アドバンスドナビ、リアルナビの表示で、追加トリガボタンの名前が矢印に置換される不具合を修正
  5. チルトホイールのトリガ定義ファイルを標準添付



Ver.1.12 (2012/04/04)
  1. プラグイン方式による、アクションテンプレートへのアイテム追加機能を実装
  2. ナビ、軌跡の詳細設定項目をGUI化
  3. 右ボタン始動のジェスチャー完了時、低頻度でコンテキストメニューが表示される不具合を修正



Ver.1.11 (2012/03/25)
  1. 条件定義の複合条件に「どれかに不一致」と「全てに不一致」を追加
  2. ジェスチャー有効/無効のホットキー、およびナビON/OFFのホットキーを実際のキー入力で設定できるように変更
  3. 軌跡関連の設定が反映されない不具合を修正
  4. アクションの1行目にダブルコーテーションが含まれていると、設定更新時にエラーが発生する不具合を修正
  5. 条件定義の編集後、「追加」または「更新」ボタンを押しても確認メッセージが表示される不具合を修正



Ver.1.10 (2012/03/22)
  1. 条件定義、ジェスチャー定義、および動作割り当ての設定編集後、未保存のままフォーカスを移動しようとした場合に、確認メッセージを表示するよう変更
  2. マウスボタンのリリースイベントの取りこぼし監視処理を追加
  3. アクションの1行目に特定の文字が含まれていると、設定更新時にエラーが発生する不具合を修正



Ver.1.09 (2012/03/18)
  1. アドバンスドナビ、リアルナビにターゲットごとの対応アクションが表示されるよう変更
  2. アドバンスドナビ、リアルナビでウィンドウサイズが変化した際、環境によっては余白部分に表示のゴミが残る不具合を修正
  3. ジェスチャータイムアウト時に本来のクリックイベントが発生しない不具合を修正
  4. 言語ファイルが壊れているとスクリプトのリロードが無限に繰り返される問題に対応



Ver.1.08 (2012/03/16)
  1. オーバーラップウィンドウ使用時の軌跡描画のパフォーマンスを改善
  2. 矢印ナビ、アドバンスドナビ、リアルナビの描画処理を最適化
    (処理負荷の軽減)
  3. トリガボタンに設定されているマウスボタンのダブルクリックが効かなくなる不具合を修正



Ver.1.07 (2012/03/14)
  1. ナビの種類に「アドバンスドナビ」を追加
    (現在のジェスチャー操作内容と、ボタンを放した時点で発動する割り当てアクションを表示)
  2. ナビの種類に「リアルナビ」を追加
    (入力中のマウス操作にマッチする全てのジェスチャーと割り当てアクションを、逐次絞り込みながら一覧表示)
  3. MG_User.ahkのテンプレート内にアドバンスドナビ、リアルナビの設定項目を追加
  4. ジェスチャー有効/無効切り替え、およびナビON/OFF切り替えのホットキー設定を追加



Ver.1.06 (2012/03/11)
  1. カスタム条件式の「マウスカーソル」にジェスチャー開始時のカーソルを判定するオプションを追加
  2. カスタム条件式の「矩形領域判定」にジェスチャー開始時のカーソル位置を判定するオプションを追加
  3. 矢印ナビの透明度の設定(MG_ExNaviTranspcy)、および軌跡の透明度の設定(MG_TrailTranspcy)を追加し、MG_User.ahkのテンプレート内にも同設定項目を追加
    (軌跡の透明度は「軌跡をオーバーラップウィンドウに描画する」がONの場合のみ有効)
  4. ナビの表示更新間隔(MG_NaviInterval)と残存表示時間(MG_NaviPersist)の設定が、矢印ナビとツールチップナビの双方へ適用されるように変更
  5. ナビの表示更新タイマーをジェスチャー中以外は止めるように変更
    (待機時の常駐負荷軽減)



Ver.1.05 (2012/03/08)
  1. 条件定義の「カスタム条件式」に「矩形領域判定」を追加
  2. 「キー操作を発生させる」の入力補助の仕様を改善
    (文字キーは小文字に変換、非文字キーは{ }で囲むよう変更)
  3. 条件定義リスト、およびジェスチャー定義リストにソートボタンを追加
  4. ジェスチャー定義画面のレイアウトを変更



Ver.1.04 (2012/03/04)
  1. ジェスチャー軌跡のオプションに「軌跡をオーバーラップウィンドウに描画する」を追加
  2. 動作割り当てに「軌跡の表示を一時停止」を追加



Ver.1.03 (2012/03/01)
  1. ジェスチャーの軌跡表示機能追加
  2. MG_User.ahkのテンプレート内に、軌跡関連のパラメータ初期化処理を追加
  3. MG_Language.ahkの保存先をLanguagesフォルダ配下へ変更



Ver.1.02 (2012/02/28)
  1. 多言語化、および多言語化に伴うダイアログBOXレイアウトの変更
  2. 動作割り当て「キー操作を発生させる」の入力補助で、直接キー入力を取得できるよう変更
    (文字キー以外は従来通り)



Ver.1.01 (2012/02/12)
  1. 64bit環境でカスタム条件式のカーソル判別、および矢印ナビが機能するよう修正
  2. 矢印ナビ更新間隔の設定(MG_ExNaviInterval)追加
    (数値が小さいほど滑らかになるが、CPU負荷は増大する)
  3. 矢印ナビ残存表示時間の設定(MG_ExNaviPersist)追加
  4. 矢印ナビの背景透過指定の方法を変更
    (MG_ExNaviTransBG=1で背景が透明になり、MG_ExNaviBGに文字色と近い色を指定することで、矢印の境界色が目立たなくなる)
  5. 矢印ナビの設定変更方法を分かり易くするため、MG_User.ahk のテンプレート内に、矢印ナビ関連のパラメータ初期化処理を追加



Ver.1.00 (2011/11/19)
  1. AutoHotkey 1.1 Unicode版への対応

by ぴょんきち