2009/12/01

発掘 ! ・・・


去年春に作成し、HDDの何処かにロストしていたブツが見つかった。

先頃にも話題にした、Arcsoft の RAW Thumbnail Viewer [日本語解説]を使い、
各社カメラのRAWデータの画像チェックや選択を容易にする為に、
Windowsのエクスプローラの縮小版(サムネイル)画像のサイズ変更をレジストリ操作で行う・・・
コレ、確かに簡単な手順で出来るのだが、意外に、手動で ちまちまヤるのは結構メドイさんだったので、
過去に それっぽいスクリプトを組んでいたのだよ・・・


で、今回はソレを うpすることにした。


まずは、ソースなど ひけらかしw・・・

'***** ↓↓↓Title↓↓↓ *********************************************************

'ThumbnailSettings
'Developed by LazwardFox
'Release 20080507_0410


'◆◆◆ Information ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

'本スクリプトでは、エクスプローラでの画像のサムネール(縮小版)表示の
'サイズと表示品質を任意に設定できます。



' VBScriptでは、クォーテーション [ ' ] が、行頭にある部分は実行されません。
' 正しくは、クォーテーション以降は注釈扱いとなります。念の為…

'本スクリプトは、コマンドライン ないし ショートカット中に
'パラメータ /t を付加することで、テストモードで動作します。

'ショートカット中の記述 ▼
' "C:\Documents and Settings\[Account]\デスクトップ\Thumbnail Settings.vbs" /t




'***** ↓↓↓Decralations↓↓↓ *********************************************************

On Error Resume Next

Const vbWq = """"
Const strRootKey = "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\"
Const strTgtKeys = "ThumbnailQuality,サムネイルのクオリティを数値で指定してください。,50,100,90,DWORD*ThumbnailSize,サムネイルのサイズを入力してください。,32,256,96,DWORD"

'----- ExtendConstantLiterals
Dim vbWCrlf
vbWCrlf = vbCrLf & vbCrLf
'--------------------------

Dim strCL1stPar, arTgtKeys, strTgtKey, arTgtValues, strKey
Dim numMin, numMax, numDef,valType, strErr, strMsg, strStVal, numStrVal
Dim strInVal, numVal, strVal, intDig, strWtVal, strEnd

Set WSHArguments = WScript.Arguments 'コマンドラインパラメーター取得
Set WshShell = WScript.CreateObject("WScript.Shell")
Set FS = WScript.CreateObject("Scripting.FileSystemObject") 'レジストリキー作成に使用。

'***** ↓↓↓MainRoutine↓↓↓ *********************************************************

strCL1stPar = WSHArguments(0)
arTgtKeys = Split(strTgtKeys, "*")
For Each strTgtKey In arTgtKeys
arTgtValues = Split(strTgtKey, ",")
strKey = CStr(Fs.BuildPath(strRootKey, arTgtValues(0)))
numMin = arTgtValues(2)
numMax = arTgtValues(3)
numDef = arTgtValues(4)
valType = arTgtValues(5)
strErr = ""
strMsg = arTgtValues(1) & vbWCrlf & vbTab & "指定可能な値は、" & numMin & "~" & numMax & " で、" & vbCrLf & vbTab & "既定値は " & numDef & " です。"
strStVal = WshShell.RegRead(strKey)
numStrVal = CInt(strStVal)
Do
strInVal = InputBox(strErr & strMsg, arTgtValues(0), numStrVal)
If strInVal = "" Then
If strEnd = "" Then
strEnd = "処理を中止しました。"
End If
Exit Do
End If
numVal = Cint(strInVal)
strErr = "◆ 入力値が誤っているか、範囲を超えています。◆" & vbWCrlf
Loop Until numVal < numMin or numVal > numMax
If Not strInVal = "" Then
Pc = Pc + 1
strEnd = UCase(Pc) & "つの設定を"
If valType = "DWORD" Then
strVal = CStr(numVal) 'Cstr(Hex(numVal))
intDig = 8 - Len(strVal)
strWtVal = String(intDig, "0") & strVal
Else
strWtVal = strVal
End If
valType = "REG_" & valType
If LCase(strCL1stPar) = "/t" Then
msgbox "RegKey - " & strKey & vbCrlf & "SetValue - " & strWtVal & vbCrlf & "ValueType - " & valType
strEnd = "テストモードです。" & vbWCrlf & strEnd & "表示しました。"
Else
WshShell.RegWrite strKey, strWtVal, valType '対象となるレジストリキーへ、値を書き込む。
strEnd = strEnd & "変更しました。"
End If
End If
Next
WSHShell.Popup strEnd, 5, "Thumbnail Settings", vbInformation


結構前に組んだので、ブログ幅全く気にしてなかったり、余計な解説入ってたり、変数名の付け方違ったり と、
最近のとは かなり趣が異なっているのだが、このトコロ、とんと公開していないので、
殆どの閲覧されている諸兄には、何のコトやらサッパリなコトかとオモワレw


で、コレ▼ が、アーカイブ。 中身の実行ファイルがインストーラなので、手間はナイ。

ThumbnailSizeSettings.zip

設定が済み、端末を再起動すると、変更が適用されます。
以後は、管理ツール内にできる [ThumbnailSize Settings] を使い、何度でも設定変更可能です。


まぁ、スクリプトベースの"なんちゃってGUI"も、インストーラ仕立てで なんとなく様になってて、
この程度仕上げてあれば、なんとかまだ、使い良いほうかと・・・

・・・って、ホントは VB2k8でスライダ使った仕様のを用意していたのだが、
結局同時期に、途中のまま放置されていると云う事実もあったりww


なにせ 一度設定してしまえば要らないモノなんでねぇ、そりゃモチベーション揚がらない罠(´ヘ`;)-----
今年夏に発行されたばかりの、RAW Thumbnail Viewer2 な、サイトから消えてるw
やっぱりExif取得失敗バグの修正、容易には出来なかったか・・・

あと、RAW Thumbnail Viewer のほう、DLサイトはEnglishのみなのだワ、コレが。
それに、同画面には、"Download Trial" とあるが、無償ツールだ。
疑うなら コチラを観てもらえば判る、一覧中の このアプリには、購入ボタンはナイのだよ。
<そのまま使えるVBscript インストーラ仕様w>