menuHacker

menuhacker_ss.png

menuHackerについて

作者様
folia(◆WoqZr951YI)
作者様ホームページ「B@r09u3⇔Style Op.2」
http://hp.vector.co.jp/authors/VA026310/
最新バージョン
Ver.1.10a [08/10/01]
ソフトのコンセプト
readme.txt より

システムメニューを拡張し、以下の機能を追加するソフトです。

「プログラムのフォルダを開く」
「最前面」
「シェード」(ウィンドウをタイトルバーのみにしたり戻したりする)
「このウィンドウを除外して全て閉じる」

システムメニューとは、タイトルバーの左端のアイコンをクリックしたときに表示されるメニューのことです。タイトルバー右クリックやAlt+Space、タスクバーのボタンを右クリックし たときにも表示されます。

最新バージョンの変更点

  • 透明度を取得するWindowsAPI(GetLayeredWindowAttributes)が安定して動作しないので、各ウィンドウの透明度をmenuHacker側で管理するようにした。

更新履歴

概要

  • 常駐し、システムメニューを変更
  • 外部exeとの連携で色々と自由にできる
  • ランチャとしても便利

書式説明

注意

  • 列順に、上からシステムメニューに追加されていく
  • 行頭にセミコロンがある行はコメント行
  • 各トークン周囲の空白文字(半角スペース、タブ文字)、空行は無視される (ファイルパスなどの半角スペースは考慮される)
  • &を英字または数字(2バイト文字はダメ)の前に書くと、メニュー表示中でのホットキーになる

基本的な書き方

基本的に以下のような書き方になる。

{コマンド名}, {コマンド}, {オプション1}, {オプション2}

オプションに何も書かなかった場合、そこは無視されて次のオプションが考慮される。

セパレート

行頭が- (ハイフン)の場合、セパレータが追加される。行頭に一個でも、沢山書いても同じ。

-
--------------------------

この二つは同じ動作をする。

縦のセパレート

行頭が= (イコール)の場合、縦のセパレートとなる。 (縦にセパレートが引かれ、右に列が追加される)

=
==========================

階層化

[]で囲み、改行することで、メニューを階層化する。制限数は通常の使用ならば特にない模様。 (10層ほど作成してみたが、問題なし)

[{メニュー名1}
	{コマンド名}, {コマンド}, {オプション1}, {オプション2}
	[{メニュー名2}
		[{メニュー名3}
		{コマンド名}, {コマンド}, {オプション1}, {オプション2}
		]
	{コマンド名}, {コマンド}, {オプション1}, {オプション2}
	]
]

3層にした例。

コマンド一覧

ファイル実行

指定したファイルを起動する。

書き方

{コマンド名}, run, {ファイルパス}, {コマンドラインオプション}, {作業フォルダ}, {起動時のウインドウの状態}

書式例 (readme.txtをメモ帳で最大化して開く)

メモ帳でmenuHackerのreadmeを開く (&N), run, C:\WINDOWS\NOTEPAD.EXE, E:\app\menuHacker\readme.txt, ,3

起動時のウインドウの状態は、以下のようになっている。

  • 0 ... 非表示
  • 1 ... ノーマル (デフォルト)
  • 2 ... 最小化
  • 3 ... 最大化
  • 6 ... 最小化
  • 7 ... 最小化

PostMessage

指定したウインドウにメッセージをポスト(PostMessage)する。

書き方

{コマンド名}, postmessage, {ウインドウの指定}, {メッセージ(10進)}, {WPARAM}, {LPARAM}

書式例 (Proxomitronのバイパスのオンオフ)

&ProxomitronのバイパスをOn/Off, postmessage, PrxTronCls, 273, 1007, 0

ウインドウの指定は以下の通り。

  • this ... 現在のウインドウ
  • other ... 現在のウインドウ以外の全てのウインドウ
  • all ... 全てのウインドウ
  • {ウインドウクラス名} ... このクラス名を持つウインドウ全て

なお、PostMessageなどは少々高度なので、いろいろなサイトを参考に。

ウィンドウの位置やサイズを変更

現在のウインドウの位置やサイズを変更する。単位はpx。

書き方

{コマンド名}, setwindowpos, {X}, {Y}, {横幅}, {高さ}

書式例 (現在のウインドウをX250に移動し、320*240にリサイズ)

移動とリサイズ (&W), setwindowpos, 250, , 320, 240

最前面のトグル

現在のウインドウを最前面化または解除。オプションはない。

書き方

{コマンド名}, topmost

シェードのトグル

現在のウインドウをシェード(タイトルバーのみの状態)または解除。オプションはない。

書き方

{コマンド名}, shade

強制終了

現在のウインドウを強制終了。オプションはない。

書き方

{コマンド名}, exitprocess

自爆は気をつけてること。

タスクトレイにウインドウを格納

現在のウインドウをタスクトレイに格納する。オプションはない。

書き方

{コマンド名}, settray

こんな感じに格納される。 menuhacker_settray_ss.png

なお、LiteStepの互換シェルでも動く。(0.24.7.0 + systray2で確認) menuhacker_settray_ss2.png

クリップボードにコピー

渡されたオプションの文字列をクリップボードにコピーする。置換文字列を組合せて使うと便利。

書き方

{コマンド名}, setclip, {クリップボードにコピーしたい文字列}

書式例 (ウインドウのクラス名をクリップボードにコピー)

クラス名をコピー(&c), setclip, %class%

プロパティを表示

渡されたオプションのプロパティダイアログを表示する。

書き方

{コマンド名}, fileproperty, {表示したいもののフルパス}

書式例 (タイトルバーに表示されているフルパスのプロパティを表示する)

タイトルバーのファイルのプロパティ(&P), fileproperty, %titlepath%

プライオリティの設定

CPU の優先度の設定。

書き方

{コマンド名}, setpriority, {優先度の数値}

優先度の数値は以下の通り。

  • 0 = IDLE_PRIORITY_CLASS (アイドルクラス)
  • 1 = BELOW_NORMAL_PRIORITY_CLASS (通常クラスよりやや低い)
  • 2 = NORMAL_PRIORITY_CLASS (通常クラス)
  • 3 = ABOVE_NORMAL_PRIORITY_CLASS 通常クラスよりやや高い)
  • 4 = HIGH_PRIORITY_CLASS (優先クラス)
  • 5 = REALTIME_PRIORITY_CLASS (リアルタイムクラス)

書式例

[&Priority
IDLE_PRIORITY_CLASS, setpriority, 0
BELOW_NORMAL_PRIORITY_CLASS, setpriority, 1
NORMAL_PRIORITY_CLASS, setpriority, 2
ABOVE_NORMAL_PRIORITY_CLASS, setpriority, 3
HIGH_PRIORITY_CLASS, setpriority, 4
REALTIME_PRIORITY_CLASS, setpriority, 5
]

ウィンドウを実行しているプログラムを再起動

プログラムを再起動する。なお、引数や作業フォルダも受けつがれる。

書き方

{コマンド名}, restart

ウィンドウを最後尾に移動

ウインドウを最後尾に移動させる。

書き方

{コマンド名}, sendtoback

ウィンドウの透明度の設定と表示

ウインドウの透過を行う。なお、Windows2000 以降の OS で使用可能。

書き方

{コマンド名}, transparent, {透明度の数値}

透明度の数値は、0 から 255 となっている (数値が大きいほど透明になる)。また、-1 を指定すると完全に透明になる (WS_EX_LAYERED 属性を解除)。

書式例

[透明度
0, transparent, -1
10, transparent, 230
20, transparent, 204
30, transparent, 179
40, transparent, 153
50, transparent, 128
]

置換文字一覧

文字説明
%exe%システムメニューを表示しているプログラムのパス
%exename%システムメニューを表示しているプログラムのファイル名
%dir%システムメニューを表示しているプログラムのディレクトリ
%curdir%システムメニューを表示しているプログラムのカレントディレクトリ
%arg%システムメニューを表示しているプログラムに渡された引数
%class%システムメニューを表示しているウィンドウのクラス名
%title%システムメニューを表示しているウィンドウのタイトルバー文字列
%titledir%ウィンドウのタイトルバー文字列から抜き出したディレクトリパス
%titlepath%システムメニューを表示しているウィンドウのタイトルバー文字列から抜き出したパス
%hwnd%システムメニューを表示しているウィンドウのハンドル(十進)
%homedir%menuHacker.exeがあるディレクトリのパス
%menuini%menu.iniのパス
%menu_setclip_controltext%コントロールテキスト (アプリケーションに表示されている文字) をコピーするための置換文字。setclip と組み合わせて使ったりする
%comma%, (コンマ)

ソフトウェア別メニュー

Ver.1.03から、ソフトウェア別に設定が可能になった。これにより、特定のアプリケーション専用のメニューを表示できるようになる。

設定は、アプリケーションのファイル名.iniをmenuHacker.exeがあるディレクトリに作成し、menu.iniと同様に編集すればよい。

例えば、Mame5.exeの設定ファイルは

Mame5.ini

となる。なお、Explorerの場合は、

explorer.ini

となる。


添付ファイル: filemenuhacker_settray_ss2.png 279件 [詳細] filemenuhacker_settray_ss.png 311件 [詳細] filemenuhacker_ss.png 294件 [詳細]

Top   Edit Freeze Diff Backup Upload Copy Rename Reload   New List Search RecentChanges   Help   Hatena Bookmark   RSS of RecentChanges
Last-modified: 2009-11-16 (月) 23:56:47