ZTop ver1.72の追加機能(2008/04/25) ZTopには、特定の操作やiniファイル編集により設定できる追加機能がいくつかある。 これらの機能について説明する。実験的な要素も含まれているので、安定動作しないかもしれません。 【 フックの無効化 】 すべてのアプリケーションにおける特定のフックを無効化することができる。 ZTopもフックを使うアプリであるので、この機能により正常に動作しなくなる。 特に用途はないと思われるが、フックを使うアプリケーションがどのような種類のフックを 使ってるかわかるかもしれない。WH_MOUSE_LLのように無効化できないフックもある。 ○ 使用方法 メニュの「設定」または「個別設定」を右Shiftと右Ctrlを押しながら選択する。 「ZTop デバッグ設定」が表示されるので「フックの無効化対象」から無効化するフックの 種類をチェックして、メニューの「フックの無効化」を選択する。 ○ 設定説明 ・「ForWndのみフック無効化」 無効化開始時に作業中のスレッドのみを対象とする ・「無効化の起動時スタート」 ZTop起動時にフック無効化を開始する(無謀) ・「フックの無効化対象」 無効化するフックの種類を選択する ・「フック無効化ホットキー」 フック無効化を開始/停止を行うホットキーの設定 設定にある「〜表示」のチェックボックスは、本当のデバッグ用なので気にしないこと。 【 メイン音量の替わりにWAVE等の音量制御を行う 】 タスクトレイアイコン上でのホイールやホットキーでの音量制御をWAVEやシンセを対象にする。 (XPまでで動作する、Vistaでは動作しない) ○ 設定方法 iniファイルを開き、以下の設定を追加する。(WAVEの例) [FLAGS] MxType=0x1008 設定できる数値は、MSDN の MIXERLINE.dwComponentType を参照すること。 以下に有効に使えるかもしれない設定値例をあげる。 4 : メインスピーカー(デフォルトと同じ) 0x1002 : ライン入力 0x1002 : マイク入力 0x1008 : WAVE この設定を行うと、トレイアイコンのツールチップにデバイス名が表示されるようになる。 このため4のメインスピーカーを設定した場合もデバイス名がシステムから取得したものに変わる。 【 タスクトレイアイコン登録遅延 】 設定した時間だけタスクトレイの登録を遅延することができる。 ZTopの動作開始(フック)を遅延するわけではない。 ○ 設定方法 iniファイルを開き、以下の設定を追加する。(10秒遅延の例) [FLAGS] IconDelay=10000 ms単位で設定できる。最大値は60000msである。 【 ホットキーでファイル実行 】 「ホットキー」タブの左下に「ExecFileの実行」が隠されている。右ダブルクリックで 表示することができる。ここでホットキーを設定して、iniファイルに実行するファイルを 書き込むとホットキーでファイルの実行が行えるようになる。 ランチャ等を起動する設定をすると常駐するソフトを減らすことができるであろう。 ○ 設定方法 「ホットキー」タブの「ExecFile1の実行」「ExecFile2の実行」にホットキーを設定する。 iniファイルを開き、以下の設定を追加する。(エクスプローラ起動の例) [HotKey] ExecFile1=%windir%\EXPLORER.EXE /e,/select,%exe% ExecFile2= 実行ファイル名には環境変数を適用できる。また、ホットキーを押したときに作業中である ウインドウの実行ファイル名フルパス、もしくは実行ファイルのフォルダ名を%exe%、%dir%に 置き換えることができる。上の例のように設定すると作業中の実行ファイルが選択された状態で エクスプローラが起動する。 ウインドウの実行ファイル名、フォルダ名はフックを使って取得している。そのため、 他ユーザにより実行されているウインドウや、コマンドプロンプトのようなフックの効かない ウインドウがアクティブの場合は、置換に失敗する。 実行ファイル以外の指定は不可、ドキュメントを開くとかはできません。 【 ホットキーでシャットダウンメニューを表示 】 ホットキーの「ウインドを閉じる」はAlt+F4と同じ動作であるが、ウインドウのクラス名を 指定することで閉じる対象をデスクトップに切り替えることができる。 デスクトップを閉じると、シャットダウンメニューが表示される。 付箋紙ソフト等を設定すると、付箋紙ソフトを閉じることなくシャットダウンメニューを 表示することができる。 ○ 設定方法 iniファイルを開き、以下の設定を追加する。(クラス名"BaseBar"を指定する例) [HotKey] CloseProgmanCls=BaseBar クラス名は、トップレベルウインドウのクラス名を指定する。セパレータ(初期値"|")で 区切ると複数のクラス名を設定できる。 クラス名の代わりにセパレータを先頭に指定した場合、常にデスクトップを閉じることになる。 このとき、ホットキーを複数回押してしまうとシャットダウンメニューのキャンセルしても ホットキーを押した回数だけシャットダウンメニューが表示され、うっとうしいので注意すること。 セパレータの指定は以下の通り("*"をセパレータに設定する例) Separator=* 通常使うことはないが、クラス名に"|"がある場合にこの設定を行う。 【 ホットキーの設定可能キーの制限を解除する 】 ホットキーの設定は、修飾キーとしてShiftのみやCtrlのみを禁止している。これを解除する ことができる。 ○ 設定方法 iniファイルを開き、以下の設定を追加する。 [HotKey] KeyLimit=0 制限解除を行うと、ホットキー「なし」の表示が「none」に変わる。 「F1」等の単一キーの設定もできるようになる。 ホットキーウインドウの右クリックでメニュを表示し、修飾キーの選択も可能となる。 【 タブを指定して設定ダイアログを開く 】 トレイアイコンのメニューから設定を表示するとき、Shift,Ctrlを押しながら設定を開くと 初めに表示されるタブ変わる。 ・Shiftを押しながら「設定」 「ウインド」タブを表示 ・Ctrl を押しながら「設定」 「その他」タブを表示 ・Shiftを押しながら「個別設定」 「ウインドウ個別設定」タブを表示 ・Ctrl を押しながら「個別設定」 「ホットキー」タブを表示 ・CtrlとShiftを押しながら「個別設定」 「マウスボタン」タブを表示 【 変換時のCtrlでページスクロール 】 ホイール個別設定で設定できる「変換時のCtrlでページスクロール」は、全体設定ではデフォルト 動作となっているが、これをOFFにすることができる。あまり活用される機能ではないのでONでも OFFでも変わりないと思われる。 ○ 設定方法 設定ダイアログ「ホイール」タブの「Scrolllockキーの…」上の空白を右ダブルクリックすると 「変換時のCtrlでページスクロール」チェックボックスが表示される。このチェックをはずすと OFFになる。 【 ホイール転送先のWOW64同一チェック 】 マウスフックは、64bitアプリ、32bitアプリ関係なくフックが可能である。(XP64bitでのみ確認) このため、フックしているアプリが違うbitのアプリの場合、マウスフックの機能を使わないように することができるかもしれない。64bit実行環境がなくなってしまったために放置されている機能なので 思惑通りに動作しないかもしれない。 ○ 設定方法 設定ダイアログ「ホイール」タブの「Scrolllockキーの…」したの空白を右ダブルクリックすると 「ホイール転送先のWOW64同一チェック」チェックボックスが表示される。これをチェックする。 ZTopは64bitでもコンパイルできるようにしているのだが、実行環境がないため動作確認ができていない。 ver1.58では、64bitexplorerで動作することは確認したことがある。そのときは、32bitアプリは32bitの ZTopで処理し、64bitは64bitのZTopで処理すればうまく動くかもしれないとの印象を受けたが実用には 至っていない。 【 個別設定クラス名の前方一致 】 ホイールやウインドウの個別設定でクラス名を指定できるが、この指定を前方一致で指定する ことができる。.netのアプリは、特殊なクラス名を使用するため前方一致で名前の比較をする 必要がある。 ○ 設定方法 個別設定ダイアログを開き、クラス名指定Editの右下空白を右ダブルクリックをすると 「クラス名を前方一致」チェックボックスが表示されるので、これにチェックを入れる。 【 ウインドウタイトルによるウインドウの指定 】 ホイールやウインドウの個別設定で、ウインドウタイトルもチェック対象にすることができる。 しかし、ウインドウタイトルは随時変化する可能性があるためウインドウ特定の条件には適さない。 クラス名と同じように前方一致でのチェックも可能である。 ○ 設定方法 個別設定ダイアログを開き、「この設定を使用する」の右側の空白を右ダブルクリックすると 「Caption」「PrefixCap」のチェックボックスが表示される。「Caption」にチェックをいっれると 「タイトル」に指定した文字列をウインドウタイトルと比較を行うようになる。「PrefixCap」に チェックを入れると、ウインドウタイトルを前方一致でチェックを行う。 【 ウインドウスナップのオプション 】 設定の「ウインド」タブ右下の空いている部分には、以下の6つのウインドウスナップに 関する設定が隠されている。該当箇所を右ダブルクリックすると表示される。 ・SnapHide ウインドウに隠れている辺にもスナップする。 ・SnapRgn XP VisualStyleでのすき間を検出する。非矩形ウインドウにも対応する。 ・NoSnapLay 透過ウインドウにスナップしない。メニューの影等にくっつかなくなる。 ・NoSnapDWM vistaのDWMによるウインドウ枠サイズ取得を行わない。 ・NoSnapChildWnd MDI等の子ウインドウでのスナップを行わない。 ・NoSnapRgnClient MDIClientの枠に対して、SnapRgnの処理を行わない。 XP VisualStyle適用時にMDIClientの枠からウインドウがはみ出ると スクロールバーが表示されてしまう場合に使用する。 デフォルトの設定から変更する必要はないと思われる。 【 ホイールを直下のウインドウへ送る 】 LowLevelMouseHookでのホイール転送を行うことができる。実験用なので使う意味はまったくない。 ウインドウアクティブ化や個別設定などの通常のホイール転送の機能が使えなくなるので使うべき ではない。 ○ 設定方法 設定ダイアログ「マウスボタン」タブの「起動時にマウスボタン変更を開始する」の右側を右ダブルク リックすると「ホイールを直下のウインドウへ送る」チェックボックスが表示される。これにチェックを 入れる。 【 マウススピードの一時的な変更 】 マウスボタン変更機能に「Report」というチェックボックスが「変換時ボタンの無効化」の 右に隠されている。これにチェックし、さらに以下のiniファイル設定を行うとマウスボタンを 押している間だけマウスカーソルの移動速度を変更することができる。 ○ 設定方法 iniファイルを開き、以下の設定を追加する。 [MouseBtn] MouseSpeed=5 設定できる数値は、1〜20である。1が最遅で20が最速となる。 「Report」の右にさらに「Msg」が隠されているが、チェックしないこと。 Windowsが正常に操作できなくなる場合があります。(実験用です) 【 マウスボタン変換時に実行 】 マウスボタン変更時に「Report」が設定されていてファイルが指定されているとそのファイルを 実行する。 [MouseBtn] ExecFile0=D:\Windows\system32\rundll32.exe DwmApi #105 ExecFile1= vistaのフリップをマウスで発動させたくて実装したがおもしろくなかった。 使い道がないし、設定方法もよくないのでので削除するかもしれない。 【 プロセスのサスペンド 】 機能一時停止ホットキーの機能を切り替えることで、アクティブウインドウのプロセスの サスペンドを行うことができる。サスペンドしているプロセスがある場合に、 もう一度ホットキーを押すと再開する。Win2000以降で使用できる。 これも使い道があるようでない機能です。 以下の設定をiniファイルに追加する。 [HotKey] PauseProc=1 もとがサスペンド状態のスレッドがあっても再開してしまうので安全な操作ではない。 【 デスクトップのダブルクリックでファイルの実行 】 デスクトップの空き領域をダブルクリックしてファイルを実行することができる。 ○ 設定方法 iniファイルを開き、以下の設定を追加する。(メモ帳起動の例) [FLAGS] ClickRunFile=C:\WINDOWS\NOTEPAD.EXE 実行オプションが必要な場合は,実行ファイル名の後ろに追記する。 アクティブデスクトップを使っている場合は機能しない。 ランチャなんかを設定すると便利かもしれない。 【 「ウインドウフレームドラッグを使用する」の機能 】 右クリックしながらウインドウの枠を左クリックしてサイズ変更を開始したとき, ウインドウの移動を行うようになる。キャプション部が他のウインドウに隠れている 場合などに使用する。 また,ウインドウの移動中に右クリックすると移動のキャンセル(ESC押しを発行)や, 子ウインドウクライアント領域を右Ctrl + 右クリック + 左クリックするとウインドウ の移動,さらに右Shiftを加えるとウインドウのサイズ変更が行える。 ちなみにウインドウ移動中に右クリックでチャンセルする動作がかなり気に入っている。 【 vistaのアプリケーション別音量制御ホットキー 】 vistaではアプリケーション別で音量を制御することができる。これを行うホットキーを 設定することができる。 アプリごとの音量変更を行うとタスクトレイアイコンの音量を示す数字の背景が透明ではなく 緑色(透過処理を行わない)になります。 ○ 設定方法 iniファイルを開き、以下の設定を追加する。 音量UP:Alt+Win+UP、音量DOWN:Alt+Win+DOWN、ミュート:Alt+Win+LEFT の例 [HotKey] HHkVolUp=0x01480A26 HHkVolDown=0x01500A28 HHkVolMute=0x014B0A25 HHkFlags=1 HHkStep=5 後ろの数値はわかりにくいので、一度システムの音量設定を設定ダイアログから行い、 その設定値をコピーしたほうが良いです。 アプリ外部からアプリ別の音量制御の方法がわからないため、アプリの中でキー入力を 検知する擬似的なホットキーの実装です。 アプリ別の音量設定は、アプリを終了してもシステムが保持し続けるので注意してください。 以上です。 ここまで読んでくれた方に感謝します。 by TOA 2008/04