ファイル読込時や保存時に表示を縮小版にする
相方が仕事でDreamweaver、Photoshop、Fireworksを良く使うのですが、Dreamweaverで画像を挿入する時、Photoshopで画像を保存する時、Fireworksで画像を保存する時の3パターンで読み込みと保存のダイアログが出た時に、ファイルの一覧の表示を常に縮小版で開くようにできないかと聞かれました。レジストリを弄ればできそうな気もするのですが、ググって見たけど同様の質問は見かけたのだけど解決してるのはなくて、的外れな回答とかエクスプローラーでの方法などが回答として挙がっていました。(関係ないけどこれはちょっと勉強になりました。エクスプローラーで縮小版にしてからコントロールキーを押しながらフォルダを移動するか閉じると次にそのフォルダを開いた時は縮小版で開くというものでした。) しょうがないのでもっと色々調べてみるとWindowsメッセージを送ることでできそうなので、とりあえずのもっといい方法が見つかるまでの妥協策でプログラム作ってみました。
お気軽にHSPで作成しました。
▼利用法
ダウンロードして、実行するだけです。XPとWindows2000動作します。実行すると小さい画面が表示されますので、利用しない時はプログラムを終了してください。
▼既知の問題
Windows2000の場合My Picturesを開いた時にちょっとおかしくなる問題があります。 Windows2000の場合縮小版になってもフォルダを移動すると通常の一覧に戻ってしまいます。(フォルダ・オプションの設定かもしれない) ▼機能
Dreamweaverでは画像の挿入時のダイアログのファイル一覧を自動で縮小版にします。
Fireworksではファイルの保存時のダイアログのファイル一覧を自動で縮小版にします。
Photoshopではファイルの保存時のダイアログのファイル一覧を自動で縮小版にします。
▼ソースコードは以下の通り
#uselib "user32.dll"
#cfunc FindWindow "FindWindowA" sptr, sptr
#cfunc FindWindowEx "FindWindowExA" int, int, sptr, sptr,
#define WM_COMMAND 0x0111
#define THUMBNAIL_XP 0x702D //XP
#define THUMBNAIL_W2K 0x7031 //W2K
screen 0,200,100,1
title "縮小版にしちゃう"
a = sysinfo(0)
;mes a
b = instr(a,0,"NT")
c = instr(a,0,"5.0")
d = instr(a,0,"5.1")
if(b > 0){
mes "NT系"
}else{
mes "NT系以外"
mes "利用できません。"
stop
}
if( c > 0){
mes "Win 2K"
THUMBNAIL = THUMBNAIL_W2K
}else{
if( d > 0){
mes "Win Xp"
THUMBNAIL = THUMBNAIL_XP
}else{
mes "Vista?"
mes "利用できません。"
stop
}
}
while(1)
hwnd1 = FindWindow("#32770", "イメージソースの選択")
if(hwnd1 == 0){
hwnd1 = FindWindow("#32770", "別名で保存")
}
if(hwnd1 == 0){
hwnd1 = FindWindow("#32770", "名前を付けて保存")
}
hwnd2 = FindWindowEx(hwnd1, 0, "SHELLDLL_DefView",0 )
if(hwnd2){
sendmsg hwnd2,WM_COMMAND,THUMBNAIL,0
while(FindWindowEx(hwnd1, 0, "SHELLDLL_DefView",0 ))
wait(50)
wend
}
wait(50)
wend
▼縮小版ダウンロード 縮小版
◆関連記事:縮小版 ちょっとバージョンアップhttps://blog.kumacchi.com/2007/06/post_194.html
●2010.08.21 記事修正
画像のリンク切れやソースに見やすさを修正。
コモンダイアログを開いたときに縮小版にしたい
職場で事情によりネットショップ・オーナーというソフトを使うことがあるんですけど、画像選択するコモンダイアログがいつもアイコンでしか開かない。Windows…