後継の UIAssistant を公開しました。今後はそちらに注力します。
u338steven/UIAssistant: Assist UI for Windows
UIAssistant を公開(Hit-a-hint とか) - B(ug)log
また、Migemize Windows は今後メンテナンスする予定はありません。
Q. Migemize Windows の目的って何?
A. ウィンドウ内の 「あれ?どこにあるんだっけ?」 を "できるかぎり" 解消することです。
Q. どうやってそれを解消するの?
A. テキストエディタの検索機能のようなイメージで、ウィンドウ内の "モノ" を検索することで解消します。
Q. "モノ" って何?
A. テキストや、メニュー、ツールバー、リボン UI の要素など、ウィンドウ内にある要素のほとんどを指します。
Q. 検索した後は?
A. 検索した "モノ" の場所を枠線で示したり、選択したり、実行することができます。
以下に 3 種類の動作イメージを示します。
例えば、下図のウィンドウで、「"タイムズームの拡大" の機能ってどこにあるんだっけ?」という状態になったとします。
普通であれば目視で探すと思いますが、"モノ" が多いのでシンドイです。
そこで Migemize Windows を起動して、リボン UI 内の検索を開始してみましょう。
すると、最初は以下のように リボン UI 内のコマンド一覧が表示されます。
# その際、実行不可のコマンド(無効なコマンド)は通常とは別の文字色で表示されます。
# 下図のクイック アクセス ツール バー | やり直し
が、それです。
"タイムズームの拡大" を探すため、taimu
と打ちこみます 1。
すると、以下のように検索結果が絞り込まれます。
表示 | タイムズーム | 拡大
となっているので、"表示" タブにあることがわかります。
そして Migemize Windows 上で 表示 | タイムズーム | 拡大
を選択して実行すると……
実際に拡大ボタンを押したときと同じ動作をします。
この、実行可能なコマンドを検索するモードを コマンド検索モード と呼びます。
このモードで検索対象となるのは、メニュー、ツールバー、リボン UI です。
以下のような設定画面があったときに、
「"ホイール操作"の設定を変えたいんだけど、どこ?」 と思ったとします。
普通であればタブを一つ一つ切り替えて探すことになります。シンドイです。
そこで Migemize Windows を起動して検索します。
まず、hoi-ru
と入力して絞り込みます。
すると、名称の末尾に>
がついているものがあります。
これは、 "モノ" が子の要素を持っていることを示していて、子の要素を列挙する 展開 という操作が可能です。
「全般タブにある "ホイール操作した時横スクロールする"、これを展開してみよう」 と思って展開してみると……
タブが"全般"に自動で切り替わり、選択した "モノ" (今回はコンボボックス)の中の要素が表示されます。
CONTROL キー
を選択して、実行してみます。
すると、以下のように検索した "モノ" の場所が枠線で示されます。
この、ウィンドウ内の文字列を検索するモードを テキスト検索モード と呼び、
検索した "モノ" の子の要素を検索することを 展開 と呼びます。
# 展開はテキスト検索モードだけでなく、コマンド検索モードでも使用できます。
特定のコントロール内のみを検索するモードを リスト内検索モード と呼びます。
検索範囲が絞られるので、動作が一番軽いという特徴があります。
以下は、コンボボックス内を検索している例です。
han
と入力して、"半角空白" が結果として選択されています。
以下は、テーブルを検索している例です。
gene
と入力して、"GenerateMember" が結果として選択されています。
また、このモードでは、エクスプローラ上で表示されているファイルの検索や、
ファイル検索ソフトの Everything との連携ができます。
特殊なウィンドウだと、検索できない場合があります。
(例えば、ブラウザなど独自のウィンドウを用意しているアプリケーションなど)
Emacs / Vim に詳しい方向けに説明すると、
ウィンドウ内の様々な要素を検索対象とした Anything / helm / Unite の劣化版みたいなものです。
あるいは、アプリケーション限定にした Ubuntu Unity の HUD の劣化版とも言えるかもしれません。
# どれもすばらしいインタフェースなので、気になる方は検索してみてください。
Windows10(64bit), Windows 7 SP1(64bit) でのみ動作確認しています。
※ Windows 7 以前でエクスプローラ上でのみ使用するのであれば、MigemizeExplorer の使用をおすすめします。
Windows 7 より前の OS の場合は、下記のアップデートが導入できれば動作すると思います。
上記を導入可能なOS:
ダウンロードしたファイルを解凍後、作成されたフォルダごとお好きな場所に配置し、
そのフォルダ内に C/Migemo の migemo.dll と dict フォルダを配置してください。
注意事項:
ログオン時に自動起動させている場合は、タスクトレイアイコンを右クリックし、
「ログオン時に自動起動する」をクリックして、チェックをはずした状態にしてください。
その後、フォルダごと削除してください。
MigemizeWindows.exe を実行すると常駐します。
可能であれば、管理者権限有りでの起動が推奨です。
終了はタスクトレイアイコンを右クリックし、終了(X)
をクリックしてください。
ログオン時に自動起動させたい場合は、タスクトレイアイコンを右クリックし、
「ログオン時に自動起動する」をクリックしてチェックがついた状態にしてください。
詳細な操作方法は、下記、操作方法をご覧ください。
括弧内は、デフォルトのキーバインド。
コマンド検索モード (Alt+K
)
実行できるコマンドを検索します。
検索対象: メニュー、ツールバー、リボン UI
検索後の動作: 選択したコマンドの実行
テキスト検索モード (Alt+T
)
ウィンドウ内に存在する文字列を検索します。
検索対象: たくさん(ただし、エディットボックスは除く)
検索後の動作: 選択した要素にフォーカス移動し、枠線で場所を指し示す
リスト内検索モード (Alt+L
)
フォーカスのあたっているコントロールの中を検索します。
検索対象: リスト、ツリー、コンボボックス、グリッド、テーブル
検索後の動作: 選択した要素にフォーカス移動
このモードでのみ以下が可能です。
括弧内は、デフォルトのキーバインド。 Ctrl+○
、Alt+○
の方のキーバインドは変更できます。
Enter
, Ctrl+M
)TAB
, Ctrl+I
)ESC
, Ctrl+G
)↑
矢印キー上, Ctrl+P
)↓
矢印キー下, Ctrl+N
)PageDown
, Ctrl+V
)PageUp
, Alt+V
)括弧内は、デフォルトのキーバインド。 Ctrl+○
の方のキーバインドは変更できます。
↑
矢印キー上, Ctrl+P
)↓
矢印キー下, Ctrl+N
)Backspace
, Ctrl+H
)ESC
, Ctrl+G
)Enter
, Ctrl+M
)コンボボックス内を検索したい場合の例
Alt+L
を打鍵して Migemo 検索開始Enter
で確定Everything の検索エディットボックスにフォーカスがある状態で、
Migemize Windows を起動 (デフォルトのホットキー:Alt+L
)
その後、キー入力すると、Everything の検索エディットボックスに自動で文字列が挿入されます。
(例として kou
と入力)
検索結果が出力されたら、Enter
なり Esc
で Migemize Windows による検索を終了してください。
使用時の注意:
ホットキー、フォントや配色などをカスタマイズできます。
タスクトレイアイコンを右クリックして設定(S)
をクリックすると、
設定ウィンドウが表示されますので、お好みに変更してください。
以下のようなことができます。
MigemizeWindows.exe のプロパティで以下のように「管理者としてこのプログラムを実行する」にチェックしてください。
動作条件を確認してください。
2 つ理由が考えられます。
権限が足りない場合
Migemize Windows を 管理者権限 で起動しなおしてみてください。
アプリケーションが特殊なウィンドウを持つ場合
ブラウザ等、独自にウィンドウを作成しているアプリケーションの場合、
Migemize Windows が要素を取得できない場合があります。
この場合は、残念ながら対処方法はありません。
全部の要素を取得するために必要なので、そういった処理をわざと入れています。
タブを切り替える際に何か特殊な処理をしているアプリケーションでないかぎり、
通常は問題ありません。
Migemize Windows が他のウィンドウの背面に回った場合、自分のウィンドウを閉じるようにしています。
ウィンドウを残すようにすると、不慮の事故が起こる可能性があるためです。
たとえば、検索対象にしていたウィンドウの状態が変わってしまい、存在しなくなったボタンを実行しようとしたり等
Ctrl+○
形式のショートカットキーを取得できないWindows Automation API で取得できないので、他の取得方法を知っている方がいたら教えていただきたいです。
# 個人的に一番どうにかしたいポイントです
おそらく、スクロールしないと見えない場所に "モノ" があるのだと思われます。
要素が画面内に入るように自動でスクロールする実装をしていますが、
スクロールできない場合もあります。(例えばラベルが検索対象の場合とか)
Version.1.0.66.18
Version.1.0.65.17
Version.1.0.62.14
Version.1.0.61.13
Version.1.0.58.10
Version.1.0.57.9
Version.1.0.56.8
タイム ではなく taimu
でいい理由は、Migemo による検索を行っているためです。 ↩
Migemo はローマ字のまま日本語をインクリメンタル検索するためのツールです。
link: Migemo: ローマ字のまま日本語をインクリメンタル検索 ↩