shohei blog

コモンダイアログを開いたときに縮小版にしたい

職場で事情によりネットショップ・オーナーというソフトを使うことがあるんですけど、画像選択するコモンダイアログがいつもアイコンでしか開かない。Windowsって不便です。

でも毎回縮小表示にするのが面倒なので、何とかしたいと思った。そもそもコモンダイアログだろうとSendMessageでなんとか出来るとだろうと思い検索。すると既に公開されている方がいた!それでソースをそのままコピーして、利用するWindows2003とネットショップ・オーナーでも動作するように変更しただけです。ソール公開しているくまっちさんに感謝。

ここにバイナリ置いてきますね。主に自分のため。

以下改変したソース

#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 別にとめない
	THUMBNAIL = THUMBNAIL_XP
	}
}

while(1)
hwnd1 = FindWindow("#32770", "イメージソースの選択")

if(hwnd1 == 0){
	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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください