miauのブログ

はてなダイアリー「miauの避難所」をはてなブログに移行しました

TClock でスタートボタンを消したりとか

メインの開発機ではタスクバーをデフォルトの二倍の高さで使ってるんですが、こうしてるとスタートボタンの領域が結構無駄になるんですよね。常駐アイコン 20 個ぶんくらいのスペースをとっている感じ。

「下半分のスペース無駄だよ!」とは思ってたんですが、よく考えたらスタートメニュー開くときは Windows キーで開くので、これは完全に無駄なスペースということに。

で、たまたま TClock というソフトで消せると教えてもらって・・・最近ようやく試せたので、そのお話。

TClock について

ということで、もともと時刻表示を切り換えられるためのソフトで、補助機能としてスタートボタンをカスタマイズしたりできるみたいです。

AHK で WM_CLOSE を送ってみる

ちょっと引っかかるのは TClock が常駐ソフトだということ。x64 環境では、常駐ソフトが多い状態で Eclipse 使うと、描画がうまく行われなかったりするんですよね。

常駐させずにスタートボタンを消す方法を調べてみると・・・

それよりはいっそスタートボタンウィンドウを永久に消してしまおう。スタートボタンウィンドウに WM_CLOSE を送りつけるとスタートボタンは完全に消え去った。復活の呪文は存在しない。

とのことなので、試しに AutoHotKeyスクリプトを書いてみました。

^#k:: ;Ctrl+Windows+K: スタートボタンを消す
IfWinExist, ahk_class Shell_TrayWnd
{
	SendMessage, 0x10, 0, 0, Button1 ; 0x10: WM_CLOSE
}

確かにスタートメニューは消えたんですが、「ファイル名を指定して実行」(Win+R)ウィンドウの出現位置が毎回変わって鬱陶しい・・・。
あと、Windows キーを押したときの動作は、厳密には「タスクバーにフォーカスする」ということのようで。スタートボタンがない状態だと、その右側のコントロール(Quick Launch がないのであればウィンドウ一覧)にフォーカスすることになるっぽいです。へー。

AHK でサイズを変えてみる

さきほどのページに書いていた元々の方法

後は、非表示にする、位置、サイズを変えるなど自由に変えられるようだ。

こちらも試してみます。

^#k:: ;Ctrl+Windows+K: スタートボタンの幅、高さを 0 にする
IfWinExist, ahk_class Shell_TrayWnd
{
	ControlMove, Button1, , , 0, 0, ahk_class Shell_TrayWnd
	ControlMove, ReBarWindow321, 0, , , , ahk_class Shell_TrayWnd
}

ReBarWindow32 というのはスタートボタンの右側の領域で、これもずらしてやらないとスペースが有効活用されません。この辺の厚生は上記のページ&TClock の解説ページが詳しいです。

で、この方法も

ただし、位置、サイズについては、タスクトレイの「アクティブでないインジケータを隠す」ボタンを押したり、タスクバー全体のサイズを変更したりすると、再調整されてしまうため元に戻ってしまう。

という欠点があり・・・インジケータは常に全表示しているので問題ないかと思いきや、常駐アイコンが増減するタイミングでもサイズが元に戻ってしまうので、あまり有効ではありませんでした。

TClock Light x64 版

やはりなんらかの常駐ソフトは必要そうですが、TClock は x64 な環境でうまく動作しませんでした。探してみると x64 用にビルドしなおしてくれている方がいるので、こちらを使ってます。

タスクバーを左側に

ついでにタスクバーを左側に置くようにもしてみました。最近 Android 使ってて「同じ幅を取るのであれば、長さが短い面を使ったほうが占めるスペースが少なくなる」という当たり前の理屈に気づいたので。

これだとタスクバーの高さを広くしていても、スタートボタンの下に余計なスペースができたりしないですし。はじめからこうしてれば TClock を入れることもなかったような・・・。