WheelMouseWindowManager version 20030201 Copyright(c) 2002 Yamanobe Kiichiro. 1. 要約しすぎ はじめはホイール(中央ボタン)クリックにウィンドウ切り替えを割り当てる ソフト。 ついでに非アクティブなエディタをクリックしてもキャレットが移動しないよう にする機能。 同じ原理で非アクティブウィンドウの端をクリックしてもリサイズにならないよう にする機能。 さらにTweak UI(PowerToys)のXMOUSEの機能を補完する工夫。 設定ファイルがすごいことになっている。 MDI対応はこれから。 略称はwmwm。 2. 初期設定 中ボタン: 98以降を普通にインストールした状態や95にMS純正インテリポイントドライバを インストールした状態なら特に問題ありません。 サードパーティー製のドライバをお使いの場合、[コントロール パネル] - [マウス のプロパティ]でホイールクリックの動作を中央ボタンクリックに設定できるなら 設定してください。 XMOUSE: 95用PowerToysのXMOUSEを使う場合はXMOUSEを先に常駐させるようにしてください。 後から常駐させるとうまく動きません。 98以降では特に設定はありません。(実はXMOUSEはIEシェルの機能で、TweakUIは 設定画面を用意しているだけなんですね。ですからTweakUIがインストールされて いる必要はありません。一応は。) 設定ファイルwmwm.iniは1. windowsディレクトリ、2. wmwmd.exeのあるディレクト リ、の順で検索します。 サンプルとして(ホイールクリックの機能2通り)×(XMOUSEを使わない or PowerToysかTweakUIでXMOUSEを使う)の計4通りの設定ファイルを同梱して あります。どれかをwmwm.iniにリネームしてください。 wmwmd.exeを実行すると常駐します。 すでに常駐している時にさらにwmwmd.exeを実行すると、wmwm.iniを読み直して設定に 反映されます。(大量に書き加えたりしたときは使わないでください。) wmwmd.exe --stopとやると常駐を解除します。 3. 動作 3.1 中ボタン(ホイール)クリック 設定ファイル |タイトルバー、ウィンドウ枠|タスクバー、デスクトップ −−−−−−−−−+−−−−−−−−−−−−−+−−−−−−−−−−−−−−−− LowerAndRaise |そのウィンドウを一番奥に |一番奥にあるウィンドウを手前に | | (最小化ウィンドウは無視) −−−−−−−−−+−−−−−−−−−−−−−+−−−−−−−−−−−−−−−− MinimizeAndRestore|そのウィンドウを最小化 |一番奥にある(最小化)ウィンドウ | |を元に戻す アクティブでないか一番手前にないウィンドウをクリックした場合、まずそのウィン ドウをアクティブにし、かつ一番手前に移動させます。 ウィンドウのクライアント領域でのクリックは処理しません。MS標準ならパンやオート スクロールがそのまま使えます。 3.2 左クリック アクティブでないか一番手前にないウィンドウの上下左右のサイズ変更枠をクリック した場合、マウス操作を伝えずに単にウィンドウをアクティブにします。よって リサイズされません。 アクティブでないか一番手前にないエディタのエディットボックス部分をクリックした 場合、(同上)よってキャレットが移動しません。とりあえず手元にあったエディタを 一応対象に設定してありますが、ユーザー各自でお使いのエディタの情報を調べて 設定していただく必要があります。XMOUSE環境だとむしろこの機能いらないかも。 詳しくはwmwm_ini.txt参照。 3.3 XMOUSEアシスト PowerToysのXMOUSEは、たとえば手前にないフォルダウィンドウからDnDしようと した時に、ボタンを押したウィンドウ(主にエクスプローラ)が必ず手前にきて しまい、せっかく手前にあった目的地ウィンドウが後ろに隠れてしまいます。この ソフトではこの問題をを改善します。 タスクバーやAlt+Tabなんかでウィンドウをアクティブにしたときに、マウスカーソルが そのウィンドウ上になければ、マウスカーソルが別のウィンドウに乗ってもその『別の ウィンドウ』がアクティブにならないようにします。 (2000以降で?TweakUIで?XMOUSE設定にするとAlt+Tabなどで切り替えたときにカーソル が勝手にそのウィンドウの上に移動するみたいですね。てことはこのソフトはタスクバー 周辺でしか意味がないわけか。) 3.4 現在の問題点 全般: 2000 Professional + Tweak UI 1.33 XMOUSEオンで確認した限りにおいて、 XMOUSE自体に、『ウィンドウ間を高速移動すると途中のウィンドウにフォーカスが 取り残される』という問題があるのですが、このソフトを入れると処理が重くなるせいか この現象が多くなるような気がします。 95 + PowerToys XMOUSE 1.2 で、 MS-IME95のツールバーが常にIMEオフの状態の表示になって移動もできなくなります。 まだ不安定。 かちゅ〜しゃが勝手に手前にくるのをいつか阻止できるようになりたい。 4. コンパイル BCC5.5用です。 5. 著作権 このソフトの全ソースの著作権は私いちごじゃむ(Yamanobe Kiichiro)が有します。 たぶん有します。そう主張します。 このソフトを使ったことによりユーザーに何らかの損害が発生したとしても私は 責任を負いません。 参考にさせていただいたサイト。 猫でもわかるプログラミング http://www.kumei.ne.jp/c_lang/ Visual C TechTips http://techtips.belution.com/ja/vc/ Assemblage Laboratry. http://www.asahi-net.or.jp/~uk8t-ktu/ API別 Win32 サンプル集 http://www.geocities.co.jp/SiliconValley-PaloAlto/5920/api_index.html MSDN Online Japan http://www.microsoft.com/japan/msdn/default.asp Borland - Q&A:C++Builder http://www.borland.co.jp/qanda/cbuilder/ 窓使いの憂鬱 http://mayu.sourceforge.net/ Absurd Technology Lab http://www5b.biglobe.ne.jp/~hokko2nd/ Welcome to KuroSoft http://hp.vector.co.jp/authors/VA003122/index.htm でしょ? http://www.parkcity.ne.jp/~yoshi223/ といっても今のこのソフトの70%はSpy++のおかげでできたようなものです。 6. 連絡先 e-mail: yamky@cocoa.freemail.ne.jp webpage: http://hp.vector.co.jp/authors/VA021953/ 7. 更新履歴 20030204 泥臭い方法で95エクスプローラ問題にけりをつける (しかし中には右ボタンドラッグを多用する人もいるんだろうな) (泥臭いだけにこれ以上進めたくない) 20030201 動作調整中 wmwm.iniにも少々変更 Shell32.dllバージョン判定組み込み 単純な修正漏れを直したらMozillaのメニューで固まる問題が解決 共有メモリー使用量をまったく確認してなかったのが内部告発 35個に増やしたつもりが増えてなかったのを修正 20020804 TweakUI環境でのXMOUSEマスク方式を変更 2000のエクスプローラでDnD中にAlt+Tabなどするとおかしくなるのも解決 20020627 XMOUSE環境を考慮してタスク切り替え機能を修正、MDI動作改善 なんでWH_SHELLなんか使ってるんだよ自分(呆) 2000+Tweak UIで本格的に動作確認、大幅修正 20020613 ウィンドウ枠書き換え機能実装中 (非公開) .NotForegroundの仕様変更の際エンバグしていたのを修正? TopmostなウィンドウをLowerするとTopmostが解除されてしまう、ってこの 部分はmayuから丸ごとコピーなんだけど。修正に大苦戦 WH_CALLWNDPROC(RET)を使うとProxomitronがページ違反で落ちる場合が あるのをむりやり対策 今度はCraftLaunchのホットキーが効かなくなってしまった Visual C++でカスタマイザ開発中 20020601 個人的事情でしばらくブランクがありました つーかソースを分割整理したい 20020510 細かいところ (非公開) del ActivateIfNotForeground MDI対応試行錯誤 XMOUSE的機能自前実装断念 MS純正XMOUSEのアシストソフトとして方針決定 20020501 IntelliPointドライバ対応開始 スクロール中誤クリック対策はとりあえず一段落 WH_CALLWNDPROC問題はまあまあ解決 20020418 FileMappingとDllMainの関係がめちゃくちゃなことに気づき保留 new IfNextIsMinimized 20020416 new NCHitTest 20020413 ren Parent.Class Active.Class new Parent.Class, Invoked.Class fix wmwm.iniの場所 fix たぶんNT系に対応 fix コード書き忘れで2つ以上の[List?]から1つの[Match.*]を利用……あれ? 20020405 ネット上に公開 20020309〜 Alt+Tab類似品をでっち上げるのに丸3日ぐらいかかった