トップページに戻る
tokix.netはネットワーク・セキュリティ周辺から半径rな雑文を垂れ流す不定期更新個人サイト>>このサイトについて

マウス派はマウ筋を使い倒せ

<<トップカテゴリー「ScriptKiddies」に戻る

マウス派はマウ筋を使い倒せ(0) (>>この記事のみを表示)

コンピューターインターフェイスというのは実際難しい問題で、例えば「タイプライター」というモノは、ブラインドタッチの出来る人間にとっては「完璧なインターフェイス」です。しかしそこにマウスが加わった時、少し話は変わってくる。右手がキーボードの右半分を担当する部位であるのと同時に、マウスを動かす道具にもなった。ここで僕らには三つの選択肢があって

  1. まぁ、いいじゃん
  2. なるべくマウスを使おう
  3. なるべくキーボードを使おう

三番目を選んだ人は、例えばbluewindみたいなコマンドラインランチャーとかホットキー強制割り当てツールを使うと良いでしょう。マウス派とキーボード派というのは別に「選ぶ道が違った」というだけの話で、例えば僕はマウス派ですが何らキーボード派を否定するつもりはないですし否定される気もない。

問題なのは一番目を選んでいる人で、その人々に対しマウスジェスチャー(かキーボードランチャー)を勧めたいのですよ。

  1. なるべくマウスによる微細な動きで全てを制御する
  2. なるべくキーボードによるミニマムなタイピングで全てを処理する

どちらかを、選んでみませんか?僕らはキーボードとマウスという、相容れが簡単なようで難しい二つのインターフェイス機器を前にして戸惑っている。例えば、ページをスクロールさせ見ている時、「戻る」を行うには「戻る」ボタンをクリックするのと「Alt+←」をクリックするのとではどちらが早いんだろう?昔「サイトで更新しまくってサーバーに負荷を与える」という、通称「F5アタック」という攻撃(ギャグ)がありましたが、その際「更新」ボタンを連打するのとF5を連打するのはどちらがいいんだろう?


そうした問いに対して「マウス」と答えるのならば、全ての問いに対して同じ答えを行うべきだ。「戻る」に限らず「更新」に限らず、様々なアプリの様々な機能・Windows自体の各種制御をマウスによる制御・・・可能な限り微細なマウスの動きによる制御・・・で行うべきなのです。

マウス派はマウ筋を使い倒せ(1) (>>この記事のみを表示)

と、いうことでマウス派はマウスによる微細な動きでWindows全体を制御するという道を選んでみましょう。


フリーソフト「マウ筋」はピロ製作所からダウンロード可能です。

ピロ製作所

インストールや初期設定は特に必要ないので、ダウンロードしたファイルを解凍し適当なフォルダに移動させて「MauSuji.exe」を起動すればタスクトレイにマウ筋アイコンが表示されるはずです。

・・・一応このテキストは「マウスジェスチャーって何だ」という人でもOKなレベルで、特に今回は初歩の初歩から逐一設定方法を解説しますが(ただ、常に前回までの内容を理解しているということを前提にするので回を追うごとにレベルは上がる予定です)、この説明でインストール〜起動の流れが分からない方は一ヶ月後くらいにもう一度読んで下さい。


で、とりあえず「?」と思うポイントがあっても無視して下記の通りに設定を行ってみて下さい。

まず、タスクトレイに表示されたマウ筋アイコンを右クリックし「設定」をクリックします。

すると、マウ筋のメインウインドウが表示されるはずです。左メニュー「Target」に表示されている「Default」をクリックして反転させ、「Action」の下にある「追加」をクリックします。「Default」の意味は後で書くのでとりあえず気にせずに。

するとアクション設定ウインドウが開くので、「Rボタン」が押されていることを確認し「↓」「←」の順序でボタンをクリックする。と、上の「アクション」に「R↓←」と表示されるはずなので、「実行コマンド」の下にある「追加」ボタンをクリック。

「コマンド設定」ウインドウが開くので、「コマンド」から「ウインドウ表示方法変更」を選択。

さらに、「表示方法」から「最小化」を選択。

そして、「対象」が「アクティブウインドウ」になっていることを確認し「OK」をクリック。

「コメント」に「最小化」と入力し「OK」をクリック。

するとマウ筋メインウインドウの「Action」に「R↓← 最小化」という表示が加わります。「OK」を押してマウ筋メインウインドウを閉じる。

この後、適当なウインドウ(ここではIE)の上で

  1. マウスの右ボタンをクリックし
  2. クリックしたままマウスカーソルを右図のように動かし
  3. そして右ボタンを離す

という一連の動きを行ってみましょう。ウインドウが最小化されるはずです。


さて、これがマウスジェスチャーです。今、マウ筋を使って

  1. 全てのアプリケーションを対象に
  2. 右クリックを押しながらマウスを↓←と動かし右クリックを離すと
  3. ウインドウが最小化される
  4. 「最小化」という名前の

ジェスチャーを追加した。マウ筋では、一つのジェスチャーを

  1. 全てのアプリケーションを対象に
    「ターゲット」
  2. 右クリックを押しながらマウスを↓←と動かし右クリックを離すと
    「アクション」
  3. ウインドウが最小化される
    「実行コマンド」
  4. 「最小化」という名前の
    「コメント」

の組み合わせで定義する。


即ち、上で説明した手順追いは

マウ筋のメインウインドウで追加するジェスチャーの「ターゲット」を選択する。「Default」は「全てのアプリケーション」の意味。

「R↓←」という「アクション」を設定した。マウスジェスチャーとは、とりあえず一般化しておくと「あるボタンを押しながらマウスを動かし、そのボタンを離す」というアクションで特定の処理を行わせる行為。「R↓↑」にすれば「右クリックを押しながらマウスを↓↑と動かし右クリックを離した時の動作」になるし、「R」を「M」「L」に変えれば右クリックだけでなくホイールボタンや左クリックでの動作を設定することも可能です。5ボタンマウスの場合、第四ボタンが「X1ボタン」で第五ボタンが「X2ボタン」。

「コマンド設定」ウインドウでは、まず最初に「コマンド」を選択します。色々並んでますが次回以降適宜紹介します。これはいわば「行う処理内容のカテゴリー」。「ウインドウを最小化させたい」=「ウインドウの表示方法を変更したい」。

「コマンド」を選択すると、行う処理の具体的内容を設定することが可能になります。

「コメント」というのは、あくまでマウ筋上での識別名なので何でもいいですし、空欄でも構いません。ただジェスチャーが増えてくると設定変更時に探しにくくなるので空欄はオススメできない。


と、いう意味でした。マウ筋は非常に使い勝手のいいソフトなんですが、唯一難を言うと、ジェスチャー設定画面が使いにくいです。「使いにくい」というか最初悩む人も多いだろうなぁ、という感じなのです。なのでとりあえず最初だけ超詳細解説にしてみたので、上を参考にとりあえずいくつかジェスチャーを設定してみて下さい。

マウス派はマウ筋を使い倒せ(2) (>>この記事のみを表示)

前回は「とりあえずジェスチャーを一個登録し使ってみる」という場所から話を始めたので、マウ筋の基本的な設定と、前回の補足を今回で終わらせておきます。次回から数回で「様々なアプリに基本的なジェスチャーを登録する」というレベルまで、その後応用編に入る予定です(が、その頃ネトランが来月号制作に入るので年末進行で死に始める気もする)。


マウ筋メインウインドウ右側のスライドバーでは、マウ筋によるジェスチャー認識の各種感度を設定することが可能です。

  • ジェスチャー感度
    ジェスチャーのアクションは「R↓←」といった感じなんですが、この一つ一つの矢印、すなわち「↓」や「←」を認識する感度。簡潔に言えば、数値を大きくした方が暴発しにくいですがマウスを大きく動かす必要があります。個人的な好みとしては20くらいに下げるのがオススメですが人によるかもしれない。
  • タイムアウト
    ジェスチャーが始まってから最初の動きを認識するまでの時間。デフォルトでは500ミリ秒ですが、つまりこれは例えば上記のジェスチャーを使う場合「右ボタンを押して(=ジェスチャー開始)からマウスカーソルを↓と動かす(最初の動き)」までを500ミリ=0.5秒以内に行わないと時間切れになる*1。最初は長目にした方がジェスチャーを起動させやすいかもしれないし、慣れてきたら短い方が使いやすいかもしれない(無駄に長いと暴発の原因になる)。というか基本的にデフォで良いような気もする。
  • 開始移動量
    ジェスチャー感度と似ているんですが、これはジェスチャーを起動させるための感度。どういうことかというと、基本的に人間って「大きめにマウスを動かしてジェスチャーを起動させよう」と思っても、最初の動き(例えば上記ジェスチャーなら「↓」の部分)ってそんなに大きくならないのです。なので「大きめにマウスを動かさないとジェスチャーが起動しないようにして暴発を防ごう」と思った場合でも「開始移動量」はデフォルトからあまり増やさない方が良いでしょう。また、「小さめにマウスを動かした場合でもジェスチャーを起動させよう」と思った場合でも、この数値を下げすぎると「ジェスチャーとかでなく右クリックメニューを表示させたい」と普通に右クリックした時にもジェスチャーが始まってしまって不便かもしれません。
  • コーナー認識時間
    マウ筋には「コーナーを認識して特定の処理を行わせる」という機能もあるんですが次回以降で解説。


また、マウ筋は「認識したアクション」をチップ表示させています。例えば、適当な場所で適当なウインドウを前回登録したジェスチャーで最小化させると、ウインドウ左上にチップが表示されるはずです。

これを見れば、例えば「R↓←と動かしたつもりだったのにR↓←↑になってた、感度が良すぎるので設定を変えねば」とか気付けるんですけど、デフォルトの表示場所では見づらいので変更をオススメします。

マウ筋メインウインドウで「マウ筋ナビ設定」をクリックし、開いたウインドウで「ツールチップ表示」を選択し「OK」。これで上記のチップ表示(のことを「マウ筋ナビ」という)がマウスカーソル周辺に表示されるので分かりやすくなったと思います。


さて、前回は「最小化」のジェスチャーを登録したところで終わりましたが、一つのターゲットに対して複数のアクションを定義することも可能です。そして、一つのアクションに対して複数のコマンドを定義することも可能です。今回はこれを使っておきます。

「Target」の「Default」を選択し、「Action」では何も選択せずに(「R↓← 最小化」を選択状態にしていてはいけない)「追加」をクリックする。

アクションやコマンドの設定方法は省略しますが、「M↑↓」に対して「ウインドウ表示方法変更」「常に手前に表示」と、「ウインドウ半透明化」「45」を、コメント「最前面/透明化」として設定しましょう。

同様にして「M↓↑」に対して「ウインドウ表示方法変更」「常に手前に表示を解除」と、「ウインドウ半透明化」「0」も、コメント「最前面/透明化解除」として設定しておく。

何に使うかというと、画像を見ながら解説を書く場合に便利なんです。

まぁここで紹介した設定例を「便利だ!」と思う人が何人いるのかは謎ですが、例えば「一つのターゲットに対して複数のアクションを定義することも可能」ある以上、例えばターゲット「Default」に「最小化」だけでなく「最大化」「閉じる」などのジェスチャーも設定することが可能だな、ということを察してもらえると助かります。そして「一つのアクションに対して複数のコマンドを定義することも可能」なので発想次第で色々できるでしょう。続く。


  • *1: 公開当初から2005年1月25日までこの部分に説明間違いがありました。コメント欄でご指摘頂きありがとうございます。

マウス派はマウ筋を使い倒せ(3) (>>この記事のみを表示)

(1)で載せたスクリーンショットなんですが、マウ筋実行コマンドの一番上は「キーを送る」です。このコマンドを何に使うのかというと、王道はホットキーとの組み合わせ。

今回は、二つの話を同時進行させます。

  • ターゲット「Default」で全てのアプリに対するジェスチャーを指定するのではなく、単一アプリでのみ有効なジェスチャーを定義する
  • 「キーを送る」を利用してホットキーを送りアプリを制御する


とりあえず下記ジェスチャーは登録して損はないと思うので、例によって意味が分からなくてもとりあえず登録してみて下さい。

まず、マウ筋メインウインドウで「Target」の「Default」を選択状態にせず「追加」をクリックする。

ターゲット指定ウインドウが開くので、「ファイル名」を設定する。「C:\Windows\explorer.exe」を選択しましょう。・・・一応書いておくと、explorerというのはWindows標準ファイラー。「マイコンピュータ」とか「マイドキュメント」とかをダブルクリックした時開くアレです。

さらに、「継承」で「Default」を選択して「OK」。

マウ筋メインウインドウの「Target」に「explorer.exe」が加わります。クリックして反転させると、「Action」には最初から三つのジェスチャー(前回Defaultに定義したジェスチャー)がグレーで表示されている。これが上で行った「継承」の意味。「explorer.exeをDefaultから継承させた」ということは、「Defaultに対し定義した全てのジェスチャーがexplorer.exeにも引き継がれた」ということ。

とりあえず「追加」をクリックします。

アクション「R←」、実行コマンド「キーを送る」「Alt + Left」を、コメント「戻る」で定義しましょう。

「キーを送る」「Alt + Left」の定義方法ですが、「キーを送る」を選択して「キー入力」の入力欄をマウスクリックし、「Alt」と「←」のキーボードを同時押しすれば「Alt + Left」と入力されるはずなのでその状態で「OK」をマウスクリック。

「explorer.exe」に「R← 戻る」のジェスチャーが追加されました。こっちは黒文字で表示されていることに注意。グレーのジェスチャーは「他のターゲットに対し定義されていて継承を使ってこのターゲットにも引き継がれているジェスチャー」の意味で、黒のジェスチャーは「このターゲットに対し定義されているジェスチャー」。

これで、エクスプローラ上で「R←」を行うと「戻る」が起動するはずです。そして、他のアプリ上で「R←」を行っても何も起こらないはずです。「R←」を行った時に何が起こっているかというと

  1. マウ筋によりコメント「戻る」のジェスチャーが起動
  2. 実行コマンド「キーを送る」「Alt + Left」により、「Alt + Left」というキーボードが押されたことになる(「キーを送る」=「そのキーを押したことにする」)
  3. エクスプローラでは、「Alt + Left」は「戻る」のホットキー(エクスプローラ上で「戻る」をマウスクリックしたのと同じ効果)
  4. エクスプローラにおいて「戻る」が発動

ということです。「ホットキー」は「ショートカットキー」とも呼ばれますが、この連載内では以後「ホットキー」で統一します。

勘が良い人なら分かってくれたと思いますが、マウ筋を使いこなす、つまりマウスジェスチャーを様々な機能に対し定義するには、ホットキーに関する情報が必要不可欠です。「Alt + Leftがエクスプローラにおいて戻るのホットキーである」ということを知らなければジェスチャーを定義しようがない。何故マウス派になったのにホットキーのことを調べなくてはいけないのか疑問かもしれませんがそういうものなので諦めて下さい。

ホットキーの調べ方ですが、

  • 「アプリ名 ホットキー」「アプリ名 ショートカットキー」などで検索する
    例えばエクスプローラのホットキーは「碧落」内解説ページとかを参考にどうぞ
  • アプリ自体のメニューから調べる
    「ファイル」「編集」と並ぶアプリメニューをよく見ると書いてあることも多いです。右のスクリーンショットは秀丸ですが、主要機能には大体全部ホットキーが定義されています。
  • アプリ自体のヘルプファイルを調べる

などを駆使して下さい。

つまるところ、前回まで書いてきたような「最小化」とかそういう基本的なジェスチャー以外の、アプリの各種機能に対するジェスチャーを作成したい場合は

  1. まず、その機能を司るホットキーをどうにかして調べる
  2. マウ筋でそのアプリをターゲットに登録する(Defaultに対して定義したジェスチャーを引き継がせたいなら「継承」を利用)
  3. 「キーを送る」「そのホットキー」を実行コマンドにしたジェスチャーを作成

という手順で行うのが「基本」です。


上記の方法論だけで大体のことは出来ると思うんですが、数点補足を。

□1:ターゲットに登録したいアプリのファイル名が分からない場合

新しいターゲットを登録する時、登録したいアプリのファイル名が分からない場合もあると思います。その場合は、「ターゲット指定」ウインドウで「ウインドウから取得」を利用しましょう。「ファイル名」にチェックを入れ、「クラス名」のチェックを外し(「クラス名」の解説は後々)、「取得」をクリック。そして、登録したいアプリのウインドウをクリックします。

すると「ファイル名」に当該アプリが設定されます。

□2:「継承」機能の多重引き継ぎ

次に、IEをターゲットに追加してみて下さい。IEの実行ファイルパスですが、□1の方法を使えば仮に分からなくても構わないので省略。この時に、「継承」を「explorer.exe」にします。

すると、IEには

  • Defaultに対して定義した最小化などのジェスチャー
  • エクスプローラに対して定義した「戻る」などのジェスチャー

が両方とも継承されているはずです。つまり、この時「Default → explorer.exe → IEXPLORER.EXE」という、二重の継承が行われている。IEでも「戻る」のホットキーは「Alt + Left」なので、同じジェスチャーを作成する手間を省くことが出来た。

この上で、さらにIEに対して「IEに対してのみ定義させたいジェスチャー」を定義すれば良い。「更新」のホットキーは自分で探してみて下さい。

□3:「継承」機能の最終補足

現在、登録した三つのターゲットは「Default → explorer.exe → IEXPLORER.EXE」という順序で継承関係にあります。

この時、例えばexplorer.exeに対して「進む」を定義すると

IEXPLORER.EXEにも「進む」が(グレー表示で)追加されます。

継承関係というのは、このようにマウ筋を使い続ける課程で常に機能している。Defaultに対してジェスチャーを追加すれば、そのジェスチャーはexplorer.exeにもIEXPLORER.EXEにも両方に継承される。これを利用すると様々なアプリに対しジェスチャーを登録する作業がかなり楽になるはずです。

マウス派はマウ筋を使い倒せ(4) (>>この記事のみを表示)

前回でマウ筋の基本的な解説は終わっています。今回書くのは、ホットキーが設定されていない機能に対して「強引に」ジェスチャーを定義する方法。実際のところ、アプリというモノは大抵主要機能に対してはホットキーを定義しています。あるいは、設定などによりユーザーが自由にホットキーを定義することが可能なように設計されています。しかしそれでも、どうしてもジェスチャーで行いたい機能にホットキーが定義されていない場合もある。そんな場合に使える「強引な」テクニックを紹介します。


・・・どうしても話の順序的にこの話はここでせざるを得ないんですが、割と「実用性」は無いかもしれません(上述のように大体ホットキーは存在するので)。ただ、この方法論+次回以降で書く話の組み合わせで可能な制御は結構実用的だったりもしますし、とりあえず話として聞いて下さい。

□1:右クリック→キーでの制御

例えば、IEでウェブページ上で右クリックを行うと、いわゆる「右クリックメニュー」が表示されるんですが、「ソースの表示(V)」という記述に注目して欲しいのです。この「(V)」なんですが、これは「このメニュー上でのみ有効なホットキー」です。どういうことかというと、

  1. 右ボタンをクリックして右クリックメニューを表示させる
  2. (別にマウスを動かすとか一切せず)キーボードの「V」をクリック

で、ソースの表示が行われるはずです。ただし、IE上で右クリックメニューが表示されていない状態で「V」を押しても何も起こらない。

・・・と、いうことを踏まえ、「ソースの表示」をジェスチャーで行ってみましょう。

まず、あるアクションが行われた時に右クリックが押されたことにしなければならない。「キーを送る」はキーボードだけでなくマウスボタンを送ることも可能です。

で、その後「V」を送れば、これで「右クリック→V」の順にキーが送られることになり、ソースが表示される。

・・・というので正しいと思うと思いますが、実際このようにジェスチャーを定義してもソースは表示されないはずです。何故かというと、「キーを送る」で送った右クリックがジェスチャーの一部として認識されてしまうから。どういうことかというと

  1. (例えば上のスクリーンショットでは「R←→←」をアクションにしています)「R←→←」というアクションによりコメント「ソースの表示」なジェスチャーが起動する
  2. コメント「ソースの表示」なジェスチャーの最初で右ボタンが押されたことになる
  3. 「R←→←」の後に右クリックが押される、というアクションが認識される
  4. そんなアクションはマウ筋に登録されていないので何も起動しない

という事態が発生しているからなのです。

環境次第で問題なくジェスチャーが認識される(上記のような問題が発生しない)場合もあるみたいなんですが、マウスボタンを送るジェスチャーを定義する場合は下記の方法を癖にすることをオススメします。

最初に「アクション終了後に実行」を挿入する。「アクション設定」ウインドウの「↑」「↓」を使えば、設定した実行コマンドの実行順番を入れ替えることが出来るので、「アクション終了後に実行→マウスに対する制御→・・・」という順番で実行コマンドを定義しましょう。こうしておくと、マウ筋によるアクションの認識が終了してから以後のコマンドが実行されるので、上記のように「コマンドで実行したマウスクリック(やマウスカーソル移動)がアクションの一部として認識されてしまう」という事態を防ぐことが出来ます。

□2:メニューに対する制御

「メニュー項目(アルファベット)」という記述は、「フォーカスがそのメニューにある時『アルファベット』を押すと『メニュー項目』が実行される」の意味です。□1ではIEの右クリックメニューを対象にしてこの機能を利用し「ソースの表示」にジェスチャーを追加したんですが、別にこれは右クリックメニューに限定した話ではなく、「メニュー項目(アルファベット)」という記述がある全てのメニューで言える話です。

例えば、IEのメインメニューにも同じような記述があります。「ツール(T)」とか「WindowsUpdate(U)」とか。ということは

  1. メインメニューにフォーカスを移す
  2. キーボード「T」をクリック
  3. これにより「ツール」メニューが開かれる
  4. キーボード「U」をクリック

でWindowsUpdateを実行することが出来る。

Windowsアプリでは、Altキーを押すとメインメニューにフォーカスを移すことが出来ます。普通にIEを使っている時にAltキーを押すと「ファイル(F)」に、Alt+Tを押すと「ツール(T)」にフォーカスが移るはずです。

・・・ということで、「キーを送る」「Alt+T」、「キーを送る」「U」でWindowsUpdateのジェスチャーを作成することも可能です。

□3:一つのキーが複数項目に定義されている場合

タイトルの日本語が分かりにくいんですが、右のスクリーンショットみたいな状況です。「左のビューを閉じる」を行いたいのに「(C)」が「ビューを閉じる」「右のビューを閉じる」にも定義されている。

試してみれば分かるとは思うんですが、こういう場合は

  1. 「Alt + F」で「ファイル」にフォーカスを移す
  2. 「C」をクリックすると「ビューを閉じる」にフォーカスが移る(「ビューを閉じる」が実行される訳ではない)
  3. 「C」をクリックすると「左のビューを閉じる」にフォーカスが移る(「左のビューを閉じる」が実行される訳ではない)
  4. 「Enter」をクリックすると「左のビューを閉じる」が実行される

というようにメニュー内項目を実行します。

従って、右のようなジェスチャーを定義すれば良い。

・・・実はSyleraはこんなことしなくてもSyleraの設定で様々な機能にホットキーを定義できるんですが、まぁ、万一こういうことが必要なケースに遭遇した場合のために、ということで。


正直、ジェスチャーを定義したいくらい使用頻度が高い機能には大体ホットキーが定義されているor設定で定義できると思いますが、もし「ホットキーがどうしても定義できない機能に対しマウスジェスチャーを登録したい」という状況に遭遇したら、今回の話を思い出して下さい。

マウス派はマウ筋を使い倒せ(5) (>>この記事のみを表示)

(3)の□1で載せたスクリーンショットなんですが、「取得」を使ってウインドウからファイル名を得る(実行中のアプリのファイルパスが分からなくてもアプリをターゲットに指定できる)時、「クラス名」というチェックボックスがあります。今回はこれを使ってターゲットを指定してみます。この「クラス名」というモノを使うと、マウ筋はいわゆる「マウスジェスチャー」を超えて、マウス派にとって必要不可欠なツールへと変貌していくのです。

□1:クラス名指定

まず、何も言わずにOEのメール一覧カラム(とでも言うのでしょうか、メール一覧が表示されているエリア)を「取得」して欲しいのです。この時「ファイル名」だけでなく「クラス名」にもチェックを入れておくのを忘れずに。

すると、右のスクリーンショットに載せているような文字列が「ファイル名」「クラス名」に記述されるはずです。ファイル名が「msimn.exe」で、クラス名が「ATLSysListView32」。

OEメインウインドウの様々な部位を同様の方法で「取得」すれば分かると思うんですが、部位によって「クラス名」が異なる。「ファイル名」は全て「msimn.exe」でも、部位によってクラス名は右スクリーンショットのようになっています。・・・まぁ分かりにくいスクリーンショットですが、上記の方法で調べれば調べられるので・・・。

マウ筋を使いこなす、という連載なのであまり深くは触れませんが、「クラス名」というのはこういうモノです。あるアプリが提供するインターフェイスでも、部位によって「クラス名」は異なる。マウ筋のクラス名指定とは、「あるアプリ内で共通となるジェスチャーではなく、あるアプリのある部位でのみ共通となるジェスチャーを定義するためのターゲット指定方法」なのです。

と、いうことで、OEのメール一覧上でメールをホイールクリックするとそのメールに返信できる、という「ジェスチャー」を定義してみましょう。

OEにおける「返信」はホットキーが定義されています。「Ctrl + R」。なので、「ホイールクリックするとそのメールへの返信」を実現するには

  1. まず左ボタンをクリック(することによりマウスカーソル下のメールを選択状態にする)
  2. ホットキー「Ctrl + R」で「そのメールに返信」を行う

という手順を踏めば良い。

で、つまり、右のようなジェスチャーを定義すればよいのです。一番最初の「アクション終了後に実行」の意味が分からない人は(4)の□1を参照。

□2:ターゲットの優先順位

さて、せっかくOE(のメール表示欄)に対してジェスチャーを定義したので、OE全体にもジェスチャーを定義してみましょうか。例えば「メール送受信」をジェスチャー定義しておくと便利ですね。

もう深く書かなくてもこの程度のジェスチャーは定義できるはずなので、普通にターゲットを追加します。

で、普通にアクションとコマンドを定義します。

・・・この後、メール一覧ウインドウでメールをホイールクリックしてみて下さい。先ほど定義して有効に機能していたはずのジェスチャー「メール一覧でメールをホイールクリックすると返信」が無効になっているはずです。

実は、マウ筋の「Target」一覧に表示されているターゲットは、特に意味が無くこの順序で表示されているわけではない。これは、上から順に優先順位なんです。今メール一覧上でメールをホイールクリックした時何が起こっているかというと

  1. ホイールクリックされた場所は優先順位1位「explorer.exe」ではない
  2. ホイールクリックされた場所は優先順位2位「IEXPLORER.EXE」ではない
  3. ホイールクリックされた場所は優先順位3位「msime.exe」である
  4. 「msime.exe」にアクション「M」のジェスチャーは定義されていない
  5. 未定義アクション

と、いうことです。クリックされた場所が優先順位3位の「msime.exe」であるという時点で、優先順位4位の「msime.exe ATL:SysListView32」は候補にもなっていない。だから「msime.exe ATL:SysListView32」に対して定義したジェスチャーは完全に無視されている。

だから補足として書いておくと、□1で書いた

「ターゲット」を選択する。「Default」は「全てのアプリケーション」の意味。

というのは厳密には嘘です。正確には、「Default」とは「上位のターゲット以外の全てのアプリ」。

「Target」の下にある↑↓のボタンを使えば、ターゲットの優先順位を入れ替えることが出来ます。これを使って優先順位を変えてみる。

・・・補足として書いておくと、「Default」に関しては↑↓のボタンを使っても優先順位が変更できないはずです(最下位以外の順序には設定できない)。故に、本当に正確に書くと「Default」とは「その他のターゲット以外の全てのアプリ」。

で、優先順位を変えると、今度はメール一覧上で「送受信」のジェスチャーを起動することが出来なくなります。理由は省略しますが、上で書いたことの逆が起きている。

と、いうことで、正解は右スクリーンショットです。

  • まず、「msime.exe ATL:SysListView32」を「msime.exe」から継承させる
  • その上で優先順位は「msime.exe ATL:SysListView32 > msime.exe」

このように設定しておけば、ここまで書いた両方の問題が同時に解決されます。実際に手を動かしていないと(スクリーンショットを見ているだけでは)分かりにくいかもしれないです。ここまでの話は実際に設定しておいて貰えると理解が早いと思います。

□3:タスクトレイに対する制御

で、オマケですが、「クラス名」というモノを使えるようになると、意外な場所にも「ジェスチャー」を定義することが出来るようになります。例えばタスクトレイ。MSNメッセンジャーは、タスクトレイのアイコンを右クリックして「状態」→「取り込み中」をクリックすると「取り込み中」になるんですけど、取り込み中にしなくちゃいけないくらい忙しい時にこんな作業をするのは面倒なので、アイコンをホイールクリックしただけで「取り込み中」になるようジェスチャーを定義してみましょう。

例によって「取得」でタスクトレイのMSNメッセンジャーアイコンをクリックします。

ファイル名が「Explorer.EXE」で、クラス名が「ToolbarWindow32」。勘がいい人なら分かったと思いますが、実は、Windowsのタスクトレイとはエクスプローラが提供するインターフェイスの一部なんです。ここらへんの解説は本筋と離れるので一瞬で終わらせますが、エクスプローラとはただのファイラーではなく、Windowsの各種インターフェイスを提供する「シェル」である。ただ「シェル」としてどうかと考えるとメモリー消費量が多いし機能は低いし、他の代替シェルに変えた方が良いんでない?と思い始めるとLitestepとかBlackboxとかになるんですがそこらへんはネットランナーでも良く扱うネタなので、まぁ興味のある方は調べてみて下さい。

要は、意外なモノが意外なアプリの「一部」だったりすることもある(が故に「クラス名」指定でジェスチャーのターゲットに出来る場合もある)、という話です。

ということで、ここまでの内容を踏まえた上で右のようなジェスチャーを定義すれば、タスクトレイのMSNメッセンジャーアイコンをホイールクリックしただけでMSNメッセンジャーが「取り込み中」になるはずです。

ただ、ここまで書いておいてこんなことを書くのは酷いんですが、タスクトレイアイコンに対してジェスチャーを定義するのは推奨しません。何故かというと、まぁこれも勘がいい人は気づいたと思いますが、今やったことは

  • 「Explorer.EXE ToolbarWindow32」に対して
  • ホイールクリックすると「右クリック→M→B」を送る

ジェスチャーを定義した、ということです。問題はターゲットで、これって「タスクトレイのMSNメッセンジャーアイコン」ではなく、「タスクトレイ」なんです。早い話、他のアイコンをホイールクリックしても同じジェスチャーが発動します。故に

  • 「M」が何らかの機能に定義されているアイコンをホイールクリックした場合は思わぬ動作が起こります
  • 他のアイコンに対して似たようなジェスチャーを定義することは不可能になりました

なので、タスクトレイに対してはなるべくジェスチャーを定義しない(誤動作を防ぐ意味で)・仮に定義するにしても、何か一つしか定義できない(例えばMSNメッセンジャーアイコンを想定してジェスチャーを定義してしまうと、他のアイコンに対する同アクションでのジェスチャーは定義不能になる)ことを念頭において、「どうしても定義したいジェスチャー」を慎重に選ぶべきです。

一般化して書くと、ある「場所(例えばタスクトレイ上のMSNメッセンジャーアイコン)」に対してクラス名取得でジェスチャーを定義しようと思った場合は、そのジェスチャーが適用されて欲しくない別の場所(例えばタスクトレイ上の別のアイコン)を「取得」し、双方のクラス名が一致しないかどうかを確認する癖をつけるべきです(で、一致してしまった場合は上記のような思考を行うべきです)。


次回は中級編の最後。

マウス派はマウ筋を使い倒せ(6) (>>この記事のみを表示)

※この後少しずつ応用編に入っていくんですが、僕が個人的に用意しているネタ以外にも「こんなことをジェスチャーでしたいんだがどうすれば?」というのがあったらコメントで投稿下さい。(僕が方法を思いつけるネタであれば)紹介させて頂きます。


前回まで、「あるアプリの上でジェスチャーを行うとそのアプリに対する制御が行われる」というジェスチャーを紹介してきました。今回紹介するのは、「あるアプリの上でジェスチャーを行うと別のアプリに対する制御が行われる」というジェスチャー。これは割とマウ筋の問題と言うよりはWindowsアプリやWindowsに関する知識の問題になるんですが・・・。

□1:プログラム実行

マウ筋の実行コマンド一覧には「プログラム実行」という項目があります。これの使い方なんですが、一番単純なことを言えば、簡易ランチャー。「M上下左右」などのアクションに対して使用頻度の高いアプリの起動をジェスチャー割り当てしておくと起動が早くなって良いでしょう。ちなみに僕の場合は「M→」がまめFile起動で「M←」が秀丸起動です。もちろんランチャーも使ってるんですけど、特に使用頻度が高い2アプリのみは瞬間的に起動できるようにしてある訳です。

□2:コマンドラインオプション

アプリというモノは、プログラムファイル名の後ろに特定の文字列を付加して起動することで、「そのアプリに対する何らかの制御」が可能である場合が多いです。「コマンドラインオプション」というんですが、これはWindowsをGUIで操作していると見えにくいのでいくつか例を紹介しておきます。

画像ビューア「ViX」のコマンドラインオプション

ダウンローダー「Irvine」のコマンドラインオプション

と、いうことで、コマンドラインオプションを利用すると□1より高度な制御・・・単純な「簡易ランチャー」以上の意味合いで各種アプリを制御すること・・・が可能になります。「特定の文字列」は基本的に「-アルファベット」であることが多いです。

例えば、ランチャー「Orchis」のヘルプファイルには下記のような記述があります。

使っていない人には意味が分からない記述かもなので補足しておくと、Orchisって常駐して「デスクトップ上の何もない場所をダブルクリック」で出現するランチャーなんです。便利なんですが、例えば何かのアプリを最大化しているとランチャーを表示させることが出来ない(一度最大化を解除してデスクトップを空けてから表示させないといけない)。そこで、「デスクトップの何もない場所をダブルクリック」以外の方法でも・・・つまりマウスジェスチャーによっても・・・Orchisを表示させてしまおう、という訳です。

で、上で載せたヘルプファイルの通りに、右のスクリーンショットのように実行コマンドを設定すれば

こんな感じでOrchisが表示されます。

コマンドラインオプションの探し方ですが

  • ヘルプファイルを読む
  • 「アプリ名 コマンドラインオプション」「アプリ名 コマンドオプション」などを検索

で探して下さい。有名なアプリには大体存在します。

で、これを使うと、Proxomitronの設定ファイル切り替えも可能です。とりあえず「何をしているのか分からん(Proxomitron使ってない)」という人はごめんなさい、分かる人だけ分かって下さい、という程度に省略説明をすると、Proxomitronってウェブページ上の広告などを除去してくれるフィルタリングツールなんですけど、例えばメニューとか必要な部分までもが「広告」と判断され除去されてしまうページもあるんです。で、そういうページにアクセスした場合は一時的にProxomitronの設定ファイルを切り替えて除去させないようにすればいいんですけど、設定ファイル切り替えが面倒臭い。そこで、マウスジェスチャーを使ってブラウザ上から(普通Proxomitronはタスクトレイに格納して起動しているので、設定切り替えのために表示させるのが面倒)Proxomitronの設定ファイルを切り替えてしまおう、という訳です。

Proxomitronはコマンドラインオプションに設定ファイルを指定することで「その設定ファイルを読み込み起動」が可能です。既に起動している場合は二重起動せず設定ファイルが切り替わる。

従って、例えば設定ファイルを

  • いわゆる「default.cfg」
  • 最小限のフィルタのみを適用させる設定

という具合に複数用意し、マウスジェスチャーで二つの設定ファイルを切り替えながら利用することが可能なのです。ここではターゲットを「Default」にしてありますが、使用するブラウザが一種類ならばブラウザ(のページ表示クラス)に適用させても良いでしょう。

□3:グローバルホットキー

(4)でIE右クリックメニューに対する制御を紹介した際に、僕は

例えば、IEでウェブページ上で右クリックを行うと、いわゆる「右クリックメニュー」が表示されるんですが、「ソースの表示(V)」という記述に注目して欲しいのです。この「(V)」なんですが、これは「このメニュー上でのみ有効なホットキー」です。

という記述を行ったんですが、グローバルホットキーというのは強弱関係において上記と逆にあるホットキーです。どういうことかというと、いわゆるホットキー(例えばIEでは「Alt + Left」が「戻る」のホットキー)というのは、「そのアプリがアクティブになっている場合のみ有効なホットキー」です。特に意識せず「ホットキー」という言葉を使ってきましたが、例えばIEを開きながらメモ帳で作業を行い、メモ帳上で「Alt + Left」をクリックしても、背後のIEで「戻る」が行われる、なんてことはない。

グローバルホットキーは、Windows全体で有効になるホットキーです。仮にIEの「Alt + Left」がグローバルホットキーだとしたら、上記のようにメモ帳上で「Alt + Left」をクリックしても背後のIEで「戻る」が行われる。

グローバルホットキーの設定が可能なアプリに対しては、□2のようにコマンドラインオプションを使わなくても制御が可能です。例えばWinampは「Options」「Preferences」の「Global Hotkeys」でグローバルホットキーの設定を行うことが出来ます。

この機能を使えば、右のようなジェスチャーを定義することでWinampの「ファイルを開く」を起動させることが出来る。アルバム単位でBGM再生を行う分には「開く」さえ出来ればWinamp自体を最小化させてても別に不便は無いような気が、僕はします。

ただ、グローバルホットキーなんですが、設定で有効にしないと利用できない場合が多いです。Winampもデフォルトでは無効で、上で載せた設定画面の「Enabled」にチェックを入れると初めて有効になる。結局、グローバルホットキーというのは各アプリが「勝手に」設定しているホットキーなので、他のアプリとかぶってしまう危険性があるんです。故に勝手に有効になっていると困るわけで、デフォルトでは無効になっている場合が多い。各アプリの設定をあまり気にしていない人は存在自体気づきにくいと思います。

また、グローバルホットキーを定義するためのソフトというのもあるんですが、それはさすがに「マウスジェスチャー」から離れすぎていく話なので、ここではHotkeycontrol XPの公式サイトにリンク貼るだけで後は省略します。


今回までの内容で、大体のことが可能になったと思います。中級編では「ホットキーのない機能を呼び出すジェスチャー」「クラス指定によりアプリの一部のみで有効になるジェスチャー」「他のアプリに対するジェスチャー」という三つの話を書きました。ここらへんは、いわゆる「戻る」「進む」を素早く行うためのマウスジェスチャー、というレベルを少し抜けて、Windowsの操作系統自体を作り込む作業でもあります。例えば、Windowsでは左クリックと右クリックには統一的な役割が与えられている。

  • 選択のための左クリック
  • メニュー表示のための右クリック

しかし、ホイールクリックには上記のような明確な役割が与えられていない。そこで、これは本当に「例えば」の話ですが

  • 使用頻度の高いウインドウを表示させるためのホイールクリック

というような「役割」を与えてしまおう、と。

  • メーラのメール一覧上でホイールクリックした場合は「このメールに返信」
  • タブ型ブラウザのリンク文字上でホイールクリックした場合は「新しいタブでリンク先ページを開く」
  • 画像ビューア上でホイールクリックした場合は「名前を付けて保存」ウインドウの表示

そういった「統一的な」操作系統を作成してしまえば、Windowsの操作性がかなり上がるはずです。「統一的な」というのはもちろんジェスチャーのアクションでも言えることで、例えば

  • ブラウザにおける「更新」
  • ファイラーにおける「再描画(更新)」
  • メーラーにおける「送受信」

など、似ている役割は同じアクションで起動できるようジェスチャーを組むべきです。


次回から「マウ筋ハック」という意味で「上級技」だと思われるテクニックを紹介します。ただ、今回までの話でもほとんどのことは出来ると思う&ぶっちゃけそろそろ年末進行なネトラン来月号が忙しくなりそうなので少し空くかもです。

dammy

Credit

SeeAlso

OtherSubCategory

Footprint

Navigation