過去記事
PC操作を早くする4:ウインドウをキーボードで操作する
アプリの瞬間起動
で、紹介しましたが、ウインドウはキーボードで切り替えたほうが素早く切り替えられます。
しかし、ここでひとつ問題が。
■どのウインドウがアクティブかわかりにくい
Windows10でちょっと改善しましたが、現在アクティブ(キーボード入力を受け付ける)なのかがわかりにくいんです。
できたらアクティブウィンドウはウインドウの枠の色が派手になるとかになってほしいのですが、Windows は VISTA あたりから、アクティブウィンドウの色があまり変わらなくなっちゃいました。たくさんのウインドウが重なっている時には、アクティブウィンドウは一番前にあるウインドウなのである程度わかるのですが、広い画面や2画面などを使っていると、ウインドウが重なっていないので、「入力してみたら別のウインドウだった」みたいなことが時々起きます。
そこで、どのウインドウに切り替えたかをちょっとだけわかりやすくしています。
人間の目は動きのあるものに惹きつけられるので、そのウインドウに着目していなくても、画面に動きがあれば自然にそこに目が行きます。
■UWSCで実現する
実現方法ですが、UWSC で常駐プログラムを作りました。
★――――――――――――――――――――――――――ActiveShow.uws
sPrevWin = "" // 直前に開いていたウインドウの名前
while (1)
nID = GETID(GET_ACTIVE_WIN) // 全面にある WindowID
sWin = STATUS(nID, ST_TITLE) // タイトル名
if nID < 0 then CONTINUE // Window そのものの場合は -1 になる
ifb sPrevWin <> sWin and POS("-", sWin) > 1 then
// アクティブウィンドウのタイトル名が変わった時, "-" があればアプリケーション
// 一部アプリには "- (app name)" がないものがある(nexus)が、それは諦める
for i=0 to 2
FUKIDASI("New Window " + sWin, STATUS(nID, ST_CLX), STATUS(nID, ST_CLY))
sleep(0.1)
FUKIDASI()
sleep(0.1)
next
// 最新の状態を記憶
sPrevWin = sWin
endif
sleep(1)
wend
――――――――――――――――――――――――――★
■インストール方法
この★で囲まれた領域(★の行は含まない)をコピーして、ActiveShow.uws という名前(なんでもいいですが、拡張子は uws 推奨)で保存してください。
uwsc.exe に拡張子 uws を関連付けておいて、これをスタートアップに登録してください。
起動させておくと、常駐して、アプリ名が変わるごとに、そのウインドウの端っこで、黄色のメッセージがフラッシュします。
ただし、ウインドウタイトルに "-" を含まないウインドウには反応しません。
もし、全てのウインドウに反応させたい時には、
ifb sPrevWin <> sWin and POS("-", sWin) > 1 then
を
ifb sPrevWin <> sWin then
に置き換えてください。
さすがに、全てのアプリの切替でメッセージが表示されると、私にとっては結構鬱陶しいですが。
まあ、お好みで。