Windows7のコマンドバーネタ(備忘録)です(^^ゞ
会社のPCがやっとXPからWindows7になりました。ええ、やっとです。XPのサポートが完全に終了したので、たぶん、仕方なくです(笑) どうせなら、Windows8.1にして欲しいものです。
さて、Windows8以降はエクスプローラシェルにもリボンUIが採用され、Vista/7のフォルダウィンドウの上部にくっついていたコマンドバーが消えてしまいました。Windows8以降のフォルダウィンドウはなかなか使い勝手よく、色んな設定をわざわざコントロールパネルを辿らずとも変更できるのですが・・・Windows7ではその辺使い勝手が悪いです。まぁ、見た目は圧倒的にWindows7の方が好きなのですが・・・。
あ、そうそう、フォルダウィンドウ内で、CTRLキーを押しながらマウスホイールを回すとアイコンサイズが変わるって知ってました? おいら、今日初めて知った・・・。ちょー便利。
と、そんなことは、どーでもよく。。。
隠し属性のファイルの表示・非表示を簡単に切り替えるようにしたくて、コマンドバーにスクリプトを登録しました。
コマンドバーへのボタン追加は、3年ぐらい前にコマンドバーの記事を書いていたので、隠し属性のファイルの表示・非表示を行うスクリプトを書いて、レジストリに登録するだけ。
/* 隠しファイルの表示・非表示トグル スクリプト ちょいと変更 at 2014/4/28 */ (function() { var wShell = WScript.CreateObject("WScript.Shell") try { var Key="HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\Hidden"; var Value = parseInt(wShell.RegRead(Key)); // レジストリ・キー(Key)の値(Value)が、1の時は非表示、2の時は表示なので入れ替え。 // ・・・逆だったっけ?ま、いいや。 wShell.RegWrite(Key,(Value & 1) + 1,"REG_DWORD"); //現在開いているフォルダウィンドウのコレクションを得る。 var sWindows = WScript.CreateObject("Shell.Application").Windows(); /* 現在開いているフォルダの数だけ、ループを回して更新する。 Itemメソッドで得られるオブジェクトはInternetExplorerオブジェクトなので、 Refresh()メソッドで表示を更新させる(F5キーを押すのと同じ)。 */ var i = sWindows.Count - 1; while(i >= 0) sWindows.Item(i--).Refresh(); } catch(e) { WScript.Echo(e); } })();
レジストリへの登録は「エクスプローラー(Windows7)のコマンドバーにボタンを追加する」をご参考に。