過去の桐井戸端BBS (桐ver.9)
21922 サムネイル表示から画像ファイル名を取得したい 悲しげ 2003/08/19-21:59
入力支援ボタンの「ファイル名選択」のような操作で、画像ファイル名を取得したい。
その際に、画像の内容ががサムネイルで表示されていて欲しい──このことで何かうまい方法はありますでしょうか?

 類似の公開作品(by桐)もうまく見つけることができませんでした。(※1)
あるいは、何か使い勝手のよい画像表示アプリ(フリーウェア)を
利用する方法なんかもあるかもしれません(もしあれば教えて下さい)。(※2)

なおこれらを探す時間的余裕も無かったので、取り急ぎ試作してみました
(結局、足掛け2日ほど費やしてしまったので、どちらが早かったかは微妙なところです)。
それをLZHにしてこちらに挙げました

元々の用途の関係でちょっと余計な処理も入っていますが(^^;)、
その辺は無視して戴くとして、以下はこのファイルを基に質問させて戴きます。

今回の主題たる画像ファイル名取得の部分ですが、操作方法は次のような感じになっています。
一覧表的画面の[画像]項目で、入力支援ボタン(もどき)をクリックすることで
(指定したフォルダ内の"*jp*"を#ファイル検索して得たファイルの)サムネイルもどきを表示して・・・・

しかし、これはハッキリクッキリ操作性がかなり悪いのです。
特に気に喰わないところのひとつは、サムネイル的画像の表示が非常に遅いこと。
これなんかはどうしようも無いような気もしますが、高速化のテクニックは有り哉?(※3)

ふたつめは、ピクチャオブジェクト自体にはフォーカスを設定できないみたいなので、
画像ファイル名を指定するには項目テキストの場所をクリックするしかないこと。
できればピクチャオブジェクト自体をクリックすることでファイル名を取得したいのですが、
クリック自体は可能ながら、フォーカスやレコードポインタがそこに移動してくれる訳ではないので、
どうにもうまく行きません。
ここを何とかできる方法は如何?(※4)

以上の※印4点が質問です。

21923 Re:サムネイル表示から画像ファイル名を取得したい うにん 2003/08/19-23:09
記事番号21922へのコメント
とりあえず、

>ふたつめは、ピクチャオブジェクト自体にはフォーカスを設定できないみ
>たいなので、画像ファイル名を指定するには項目テキストの場所をクリッ
>クするしかないこと。できればピクチャオブジェクト自体をクリックする
>ことでファイル名を取得したいのですが、クリック自体は可能ながら、フ
>ォーカスやレコードポインタがそこに移動してくれる訳ではないので、ど
>うにもうまく行きません。ここを何とかできる方法は如何?(※4)

テキストを画像の上までずい〜っと伸ばして、縦位置を下にすれば?
現状のだと、どっちみちファイル名がほとんど表示されてませんし。
(無論指定したフォルダによるんですが、C:\Documents and S までしか見えません^^;)
あ〜、カーソルが入ると反転して画像がみえなくなっちゃった。

フォーカスが移動しなくても、押されたオブジェクト名と明細番号がわかるので
なんとかなるんでは?

21924 Re:サムネイル表示から画像ファイル名を取得したい たゆー 2003/08/19-23:20
記事番号21922へのコメント
悲しげさん

>入力支援ボタンの「ファイル名選択」のような操作で、画像ファイル名を
>取得したい。その際に、画像の内容ががサムネイルで表示されていて欲し
>い──このことで何かうまい方法はありますでしょうか? 類似の公開作
>品(by桐)もうまく見つけることができませんでした。(※1)

類似でも、公開作でもないので、直接メールさせていただきます。
今後要望次第では・・・と、いう状況です


21925 桐以外の方法で 佐田 守弘 2003/08/20-00:04
記事番号21922へのコメント
悲しげさん
目的とどの程度の数の画像数を扱うのか、そしてサムネイル表示の速度はどの程度を
求めるのかによっても変わると思うのですが、表示速度の点では桐を使って
サムネイル表示をさせるのは、やや重いのではないかと思います。

フリーウエアはあまり情報をもっていないので、有料オンラインソフトになりますが、
2つほど紹介します(どちらもご存知かと思います)。

●ACDSee
オンラインソフトとしては安くはありませんが、表示速度と操作性はトップと
思います。TABキーを押してパス名ボックスにフォーカスを移動すれば、Ctrl+Cで
フルパス名のコピーができます。
コピーしたフルパス名を表に張り付ければ、後は自在に加工できると思います。
マウスを使わずにサムネイル表示したり、フルパス名のコピーもできる点、
そして何よりも操作がスムーズな点がイチ押しでしょうか。

●FILEVISOR
付属のサムネイルバイザでもサムネイル表示とフルパス名付のファイル名のコピーが可能です(Ctrl+Fキー)。
サムネイル表示もそこそこ速いと思いますが、フルスクリーン表示とサムネイル表示の
切り替えの速度と操作性の点では、ACSSeeに今一歩です。

●その他
IrfanView(アーファンビュー)は個人利用はフリーです。
「各種マルチメディアに対応し、高機能なソフト」と書いた(書かされた?)事もありますけど、
サムネイルの表示速度やフォルダツリーの移動操作の点で、
ACDSeeに大きく引けを取ります。

また標準のExplorerで縮小版(サムネイル)表示とし、F・2のリネーム操作で
ファイル名の編集に入れば、コピーができますね。

佐田守弘(KS-00119)
21926 Re:サムネイル表示から画像ファイル名を取得したい hidetake 2003/08/20-07:51
記事番号21922へのコメント
>サムネイル表示から画像ファイル名を取得したい

これって,Windows2000 以降(Me以降)の Windows標準のエクスプローラ
あるいはファイルを開くの「縮小版」程度のものでも良いのですか?

あと,これを利用するのは自分だけですか? 他の人にも配布するものなのですか?

Windows標準のもので済ませられるなら,本来は桐が標準のコモンダイアログを
使用していればそのままで済む話なのですけれど・・・

で,簡単に?となると VBS でと言う手もあるのですけど,VBS の場合
コモンダイアログは誰にでも簡単にとはいかないのですよね! (;_;)

代わりに IE を使って開く方法もあるけど,少し使いにくいです。 (;_;)

下記の例ではタダメッセージボックスに選択したファイルを表示します
ので,これを桐に渡すにはテキストファイル経由で渡すとか・・・
クリップボード経由で渡す方法もあるけれど,これも IE に依存する
方法でないと,誰にでも使えないし,これを許すとセキュリティ上問題があるし・・・
 (IEのデフォルトは問題のある設定になっています)

Set IE = WScript.CreateObject("InternetExplorer.Application","IE_")
IE.Navigate "about:blank"
Do While IE.ReadyState<>4
WScript.Sleep 100
Loop

Set document=IE.Document
document.Write "<html><body><input type=file id=txtFile></body></html>"
document.all.txtFile.focus
document.all.txtFile.click

Set FS = WScript.CreateObject("Scripting.FileSystemObject")
fr = "result.txt"
If FS.FileExists(fr) = True Then
FS.DeleteFile fr, True
End If

If FS.FileExists(document.all.txtFile.Value) Then
Set f = FS.CreateTextFile(fr, True)
f.Write(document.all.txtFile.Value)
f.Close
Set f = Nothing
MsgBox document.all.txtFile.Value
End If

Set FS = Nothing
Set document = Nothing
Set IE = Nothing


21927 Re:サムネイル表示から画像ファイル名を取得したい hidetake 2003/08/20-08:19
記事番号21926へのコメント
>下記の例ではタダメッセージボックスに選択したファイルを表示します
>ので,これを桐に渡すにはテキストファイル経由で渡すとか・・・

メッセージボックスだけでなく result.txt もちゃんと保存するようにした奴でしたね! (^^;


21928 Re:サムネイル表示から画像ファイル名を取得したい hidetake 2003/08/20-09:30
記事番号21927へのコメント
ちなみに VBS からコモンダイアログを自由に使えるようにするには
comdlg32.ocx のライセンスが必要になりますが,
これはVisual Basic 5.0 Control Creation Edition(VB5CCE) が
MicrosoftのWebサイトで無償配布されていますが、この中に、comdlg32.ocx
およびそのライセンスが含まれているためので
これをインストールすると使えるようになるようです。
次のサイトの一番下の方に書いてあります。
http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list18.shtml

Visual Basic 5.0 Control Creation Edition(VB5CCE) の
現在のありかは
http://www.microsoft.com/downloads/details.aspx?FamilyID=1ceb1b0d-24ac-4c66-bf45-0c79aa500c22&displaylang=ja
です。

これをインストールすると次のようなスクリプトも通るようになります。

' Common dialog, Open file
Option Explicit

Const OFN_EXPLORER = &h80000
Const OFN_FILEMUSTEXIST = &h1000
Const OFN_PATHMUSTEXIST = &h800
Const OFN_HIDEREADONLY = &h4
Const OFN_DONTADDTORECENT = &h2000000
Const MAX_PATH = 260

Dim gsInitDir, giFilterIndex

Function getFileName(sPath, sTitle)
Dim cDlg
Set cDlg = WScript.CreateObject("MSComDlg.CommonDialog")

cDlg.InitDir = gsInitDir
cDlg.FilterIndex = giFilterIndex

cDlg.Filter = "All files (*.*)"
cDlg.DialogTitle = sTitle
cDlg.Flags = OFN_EXPLORER Or OFN_FILEMUSTEXIST Or _
OFN_PATHMUSTEXIST Or OFN_HIDEREADONLY Or OFN_DONTADDTORECENT
cDlg.MaxFileSize = MAX_PATH

cDlg.ShowOpen
gsInitDir = cDlg.InitDir
giFilterIndex = cDlg.FilterIndex
getFileName = cDlg.FileName
End Function

'============
Dim sFile

gsInitDir = "X:\"
giFilterIndex = 1

sFile = ""
sFile = getFileName(sFile, "開くファイルを選択のこと")

Call MsgBox(sFile)
'(EOF)

21930 Re:サムネイル表示から画像ファイル名を取得したい 悲しげ 2003/08/20-21:12
記事番号21923へのコメント
どもっ、うにんさん
ピクチャに透明コマンドボタンを被せることで、レコード移動が(視覚的にも)
可能になりました。
あとは、この牡丹(をファミリ化した奴)のフォーカスオブジェクト名を取得してフォーカスを移したら、
何とか格好がついたような。
(遅いけど)とり急ぎ。

21931 Re:サムネイル表示から画像ファイル名を取得したい 悲しげ 2003/08/20-21:16
記事番号21924へのコメント
どもっ、たゆーさん
メール拝受いたしました。ありがとうございました。
中味は、ちょっと難解と云うか、同梱exeの挙動を含めて、いまいち読み切れていません。
後刻、時間をかけて解析したいと思います。<(_ _)>

21932 Re:サムネイル表示から画像ファイル名を取得したい hidetake 2003/08/20-21:19
記事番号21923へのコメント
>ふたつめは、ピクチャオブジェクト自体にはフォーカスを設定できないみ
>たいなので、画像ファイル名を指定するには項目テキストの場所をクリッ
>クするしかないこと。できればピクチャオブジェクト自体をクリックする
>ことでファイル名を取得したいのですが、クリック自体は可能ながら、フ
>ォーカスやレコードポインタがそこに移動してくれる訳ではないので、ど
>うにもうまく行きません。ここを何とかできる方法は如何?(※4)

これって,ピクチャオブジェクト自体をクリックする事により,
そのピクチャのオブジェクト名等は取得できるけど,そのあとの行移動などを
どうしたら良いのかと言う事ですか?

ピクチャでもファミリにマウス左クリックを登録して使えば,&this は
取得できますよね。でも,レコード移動等はそのままでは発生しないので
どの段でクリックしても現在のカーソル行のデータしか取れないですけど・・・
#項目属性(#num(&this),0)

面倒な事を考えるより,ピクチャオブジェクト上に透明なボタンでもかぶせて,
それで制御した方が良いのでは無いでしょうか?
21933 Re:サムネイル表示から画像ファイル名を取得したい hidetake 2003/08/20-21:20
記事番号21932へのコメント
>面倒な事を考えるより,ピクチャオブジェクト上に透明なボタンでもかぶ
>せて,それで制御した方が良いのでは無いでしょうか?

あら? 書いている間に同じ事をされたのですね。 (^^;
21934 Re:桐以外の方法で 悲しげ 2003/08/20-21:48
記事番号21925へのコメント
どもっ、佐田さん
目的や取り扱う画像数については別コメントでふれますが、
ユーザが不特定となる可能性があるので、有料・シェアウェアは少々困難だと思います。

色々試す時間がないことも含めて、イチ押しの「ACDSee」なるアプリについては、
次の機会のために記憶にとどめておきたいと思います。つーか、
この掲示板の過去ログを備忘録代わりとしておきます。(^^;)

「FileVisor」については、私はv3からのユーザです。v5でサムネイルバイザーなる機能がつきましたね。
Ctrl+Fキー 云々は、実は使ったことがなくて、この度初めて試しました。
クリップポード経由でフルパス付ファイル名がコピペされますね。

ただ、この辺りの操作性がどうかな、と云う感じもあります。何せ使うのが私(だけ)ではないもので。



>また標準のExplorerで縮小版(サムネイル)表示とし、F・2のリネーム操作で
>ファイル名の編集に入れば、コピーができますね。

あぅ、エクスプローラの「縮小版」の表示のことは知らんかったとです(爆)。
そうか、こんなこともできたんですね。(^^;)(^^;)
初めていぢくってみましたら、画像を指定した後に、右クリックメニューで
「パス名をコピー」(フルパスも可)が出る場合と出ない場合があって、
この違いがよく判りません(ついでにここも教えて下さいませ)。
これが出ればクリップボード経由の Ctrl+V が使えますね。
操作が5〜6工程以上となってしまう難点と、著作権や使用料の問題から
自由である点とを勘案の上で、最終的な選択肢としては有りえますね。

21935 Re:サムネイル表示から画像ファイル名を取得したい 悲しげ 2003/08/20-21:52
記事番号21933へのコメント
どもっ、hidetakeさん

>あら? 書いている間に同じ事をされたのですね。 (^^;

7分差でした。きわどかったですね。(^^;)
21936 Re:サムネイル表示から画像ファイル名を取得したい 悲しげ 2003/08/20-22:40
記事番号21928へのコメント
どもっ、hidetakeさん
>これって,Windows2000 以降(Me以降)の Windows標準のエクスプローラ
>あるいはファイルを開くの「縮小版」程度のものでも良いのですか?

このことは#21934で触れたような按配です。(^^;)

>あと,これを利用するのは自分だけですか? 他の人にも配布するもの
>なのですか?

目的を少々詳しく書きます。
イベントの中味は「仮装盆踊り」。実行委員会的な運営です。
出場者は30〜50組くらい。出場者の仮装の模様を何台かのデジカメで撮る。
それを複数の人間が複数のパソコンに取り込んで処理する。

(画像をjpgに変換する必要があるが、これは私の関与する所ではない)
プリンタもパソコンの台数程度は用意。
今回は計4台くらいで、内1〜2台はオーバーヘッドプロジェクタで
静止画や動画を映す専用なので、入力系で使うのは2台程度。
「団体」受付と「個人」受付に分担する。
画像の主な用途は、次の2種類の印刷のため。
ひとつは審査員用で、採点用紙には仮装のタイトル(テーマ)名テキストしか無ければ、
しばしば出場者の実態と突合し難い場合もあるので、
タイトル&画像としての印刷物を用意する。
もうひとつ、これは多分におまけ的なのだが、賞状にも写真を印字したい。

画像の数は出場組数+αくらいでしょう。
撮り次第どんどんナントカカード(?)だったかでパソコンに送られて来ます。
で、それらの写真(ファイル名は当然脈絡無し)を、
一覧表画面上で出場者毎に間違い無く貼り付ける必要があります。
この作業を、サムネイル(あるいは拡大表示)画像で確認しながら、
間違いなくかつ効率的にやりたい。

以上が概ねの目的です。
一番の律速段階は写真撮影になろうと思います。次に印刷。
それ以外の、いわゆる入力系はできるだけ速攻で済ませたい訳で。

ps
しかしながら、既に今年のものにはなりませんでした。
だから来年までのノンビリ着手で構わないです。
ただ、細部を忘れない内に仕上げておいた方がいいと云う一点で
「いま」やっておこうと。(^^;)

ps2.
vbsは、後刻試させていただきますが、う〜ん、難しそう。(^^;)
21937 Re:桐以外の方法で うにん 2003/08/20-23:16
記事番号21934へのコメント
>あぅ、エクスプローラの「縮小版」の表示のことは知らんかったとです(爆)。
>そうか、こんなこともできたんですね。(^^;)(^^;)
>初めていぢくってみましたら、画像を指定した後に、右クリックメニューで
>「パス名をコピー」(フルパスも可)が出る場合と出ない場合があって、こ
>の違いがよく判りません(ついでにここも教えて下さいませ)。これが出れ
>ばクリップボード経由の Ctrl+V が使えますね。
>操作が5〜6工程以上となってしまう難点と、著作権や使用料の問題から自
>由である点とを勘案の上で、最終的な選択肢としては有りえますね。

桐の「形式を指定して貼り付け」が行挿入以外にも使えればいいのにねぇ。
あとは、もっと単純化して画像ファイルをドロップしたらいちいちできもしない
のに開こうとせずファイル名だけ取り込んでくれるとか(^^;
そういえば、オブジェクト型がないせいか、ドラッグ&ドロップイベントもないですね?

21938 Re:桐以外の方法で 佐田 守弘 2003/08/20-23:27
記事番号21934へのコメント
悲しげさん

>初めていぢくってみましたら、画像を指定した後に、右クリックメニューで
>「パス名をコピー」(フルパスも可)が出る場合と出ない場合があって、こ
>の違いがよく判りません(ついでにここも教えて下さいませ)。

スミマセン。そんな機能がある事はつゆ知らず。
と言うか、XpのExplorerはほとんど使ってないのです。95、98、NTはExplorerを使ってたのですが、
Xpになってフォルダツリーをデフォルトで表示する設定が分らず、
あきらめてFILEVISOR一辺倒に変わりました。
(今でもWin98のマシンを使う様な時にはExplorerですが)

FILEVISORの場合、キー割り当て機能を使うと、ファイル名およびフルパス名付の
ファイル名などをクリップボードにコピーする機能をファンクションキーなどに割り当てられます。
これが結構便利なんですね。
(マウスを使わずにファイル名のクリップボードへのコピーができる)

で、サムネイルバイザでも同じ様な設定ができないかと探してみたのですが、見つかりませんでした。

佐田守弘(KS-00119)


21939 Re:桐以外の方法で hidetake 2003/08/20-23:57
記事番号21938へのコメント
>Xpになってフォルダツリーをデフォルトで表示する設定
>が分らず、あきらめてFILEVISOR一辺倒に変わりました。

explorer.exe で(を)開くとか
マイコンピュータ,あるいは,現在あるアイコン上で右クリックして
エクスプローラ(X)で指定する。もしくは,Shift キーを押しながらダブルクリックする。
開いた後だったら「フォルダ」アイコンを押す。

マイコンピュータをダブルクリックした時のデフォルトの動作自体を変えたい場合は,
次のレジストリ部分で shell のデフォルトを通常の open から explore に変更してしまう事だと思います。

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell]
@="explore"

「窓の手」などを使えばできるし,間違いも少ないでしょうか?
あるいは,「フォルダオプション」の「ファイルタイプ」で
「フォルダ」に関する関連付け(詳細設定)で explore を標準に設定しても良いです。


21940 Re:サムネイル表示から画像ファイル名を取得したい hidetake 2003/08/21-00:08
記事番号21936へのコメント
>イベントの中味は「仮装盆踊り」。実行委員会的な運営です。

あまり詳しくは考えておりませんが,できるのならエクスプローラで
フォルダを開いておき,そこからドラッグ&ドロップで移せるものなら簡単そうですね? (でも無理)

できるなら XP の方が画像の表示や印刷なども自由が利くので,
できれば XP の方が使いやすいと思います。

桐との連携になると桐側が自由度が無く面倒そうですが,
もしエクスプローラと連携させるとなると,右クリックで,
メニューを出してそのファイル名を取得して,その結果を桐に渡す事になるでしょうか?
(一時的な使用なら関連付けを変更してダブルクリックして桐に渡す
と言う方法も取れない事は無いと思います。)

あとは,桐側での受け入れ態勢になった状態とエクスプローラ側からの
連携等考えねばなりませんが・・・ (^^;


21942 Re:桐以外の方法で 佐田 守弘 2003/08/21-00:50
記事番号21939へのコメント
hidetakeさん
ありがとうございます。さっそくいくつか試してみました。

マイコンピュータからの右クリックでExplorerを開くとツリー表示になりますね。
フォルダのショートカットアイコンも右メニューを使うと
Explorerがでてきますね。
私の場合、右メニューに出て来るACDSeeやFILEVISORはいつも使ってました、
2番目にあるエクスプローラは最近では使ってませんでした。

>マイコンピュータをダブルクリックした時のデフォルトの動作自体を
>変えたい場合は,次のレジストリ部分で shell のデフォルトを通常
>の open から explore に変更してしまう事だと思います。
>[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell]
>@="explore"
貴重な情報を教えて頂きましたが、これは訳があって止めておきます。

>「窓の手」などを使えばできるし,間違いも少ないでしょうか?

窓の手は使ってません。regeditで直接編集は結構やりますけど。
先日も必要ないものまで右メニューに勝手に登録されてしまい、プロパティの
メニューがスクロールしなければ表示できなくなってしまったので、
レジストリからばっさり削除しました。

>あるいは,「フォルダオプション」の「ファイルタイプ」で
>「フォルダ」に関する関連付け(詳細設定)で explore を標準に
>設定しても良いです。

さっそく調べて、あり場所を確認しました。
序でに「ファイル フォルダ」の詳細に、上記に書いた右メニュー項目があるのを見つけました。
でもここで不用なアクションを削除するのはできない様ですね。

佐田守弘(KS-00119)
21943 Re:サムネイル表示から画像ファイル名を取得したい 佐田 守弘 2003/08/21-01:01
記事番号21936へのコメント
悲しげさん
仮想盆踊りの写真ですか。
そう言った写真を多数集めたり分類するのだとしたら、やはり画像ツール
の出番でしょうか。

ところで、逆に桐の役割が見えなくなってしまっているのですが、
写真のリストを作る事でしょうか。
であるとしたら、写真の分類は全て画像ツールかExplorerの縮小表示で行い、
随時その時のファイルリストを桐に読み込みなおす方が簡単かと思います。

つまり、dirコマンドで写真のファイル名リストを作り、
これを桐に読むわけです。
新しい写真がコピーされたら、その度に表を作り直しても良いでしょう。
ファイルリストのテキスト出力と、桐への読み込みなおしは、
大した処理ではないと思います。

もちろん、最終的なマスタを別に持ち、ここに併合を掛けると言った方法も可能かと思います。

佐田守弘(KS-00119)
21944 Re:桐以外の方法で hidetake 2003/08/21-01:04
記事番号21942へのコメント
>>[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell]
>>@="explore"
>貴重な情報を教えて頂きましたが、これは訳があって止めておきます。

>>あるいは,「フォルダオプション」の「ファイルタイプ」で
>>「フォルダ」に関する関連付け(詳細設定)で explore を標準に
>>設定しても良いです。
>さっそく調べて、あり場所を確認しました。
>序でに「ファイル フォルダ」の詳細に、上記に書いた右メニュー項目がある
>のを見つけました。でもここで不用なアクションを削除するのはできない様
>ですね。

この2点は全く同じ内容ですよん!

レジストリを直接弄るか,ウィンドウズ標準のインターフェースを使うか,
あるいはなにがしのツールを使うかの違いだけで,
結果は全て同じところにあるレジストリに反映されるだけです。

理論さえわかれば,無駄なものはレジストリからガンガン消しても構わないし,
登録しても構いません。

ウィンドウズ標準のインターフェイスに関しては,とある所作に関してはバグがあるので,
それを直そうとすると,直接レジストリを弄らないと直らないものもあります。
ウィンドウズ標準のインターフェイスを使ったからと言って,
必ずしも安全で無い場合もあるのでお気をつけ下さい。

もちろん,上記内容は初心者向きではございませんので,自身の
無い方は無理をなさいませんように? > ALL (^^;


21947 Re:サムネイル表示から画像ファイル名を取得したい hidetake 2003/08/21-10:10
記事番号21940へのコメント
>あとは,桐側での受け入れ態勢になった状態とエクスプローラ側から
>の連携等考えねばなりませんが・・・ (^^;

少しだけ補足しておきます。

本来なら桐の入力支援のボタンで「ファイルを開く」ダイアログを出し
ファイルを指定する事を目的とした場合,
「コモンダイアログ」を使う方法が基本的には理にかなっていると思います。

ただ,桐のファイル操作では希望の表示などは望めないし,
本格的な開発ツールや使いやすい外部ツールを持ち合わせていない場合?
VBS に頼りたくなる場合(頼る必要?)が出てきます。

この場合で「コモンダイアログ」は VBS にとって結構難物なのです。

一番簡単で,IE さえ入っていれば,まず問題ない利用方法が最初に
示したスクリプトです。
これは IE を使い,表面上は IE は表示させませんが,
IE のファイルアップロードなどに使用する「ファイルの選択」を使用します。
これも「コモンダイアログ」ですが,IE が使用する設定(機能)を
呼び出しているだけなので,デフォルトのフォルダや,表示状態,
それにダイアログの大きさなどは設定できません。

次に示したのが VBS からでも「コモンダイアログ」をわりと簡単に
呼び出す方法ですが,これには COMDLG32.OCX のライセンス(キー)が必要になります。
これですと,タイトルやデフォルトのフォルダ,
それに使用するファイルタイプなどは自由に指定できるようになりますが,
それでも,最初に使用する表示形式やダイアログの大きさなどは指定できません。

これ以上の事を望むとなると,直接 COMDLG32.DLL 自体を呼び出す
(APIを使う)方法まで取らざるを得なくなって来ると思います。
でも,そうなると結構面倒な事になって来ると思われます。
本格的な開発ツールでそのためのアプリを作る事になってしまうと思われます。
VBS でも,ダイナコールと言う AxtiveX コンポーネントをインストールすれば
API も呼び出せるようになるので COMDLG32.OCX を使うより自由度は大きくなると思いますが,
そこまでするなら最初から VB や他の開発ツールを使った方がマシ?と言う話もあります。 (^^;

まぁ〜 Access や Excel だと,それらのアプリ自身で API も
呼び出して使う事ができるので,ユーザ自身の手によって,
やろうと思えば,それら自身のアプリ内でも完結できるとは思いますが・・・

桐の場合はそれはできないので,悲しげさんが取られたような
桐の機能を使って補助的なシステムを作るか,
あるいは,上記の事を考慮した上で,バランス面を考えると,
エクスプローラ + VBS で実現するのかどちらかになるだろうか?と言う判断です。

取られる写真は多いかも知れないけど,最終的に桐側で受け入れるべき
(取り入れる)写真は少ないのですよね・・・


何気なく考えているところでは,桐以外でやる方法としては,
入力支援ボタン(相当)で,該当フォルダをエクスプローラで開く!
それと同時に,桐側ではファイル名の入力待ち状態となる。
エクスプローラでファイルをダブルクリックしたら,VBS が走り
桐に対してファイル名を送り込む。そして,エクスプローラを
閉じると言う流れでしょうか?
桐側では,ファイル名を待ち続けるけど,キャンセル方法や,
あるいはエクスプローラの閉じられるのを監視していて,
入力待ちを終了させるとか,しないといけないですけど・・・

できない事では無いと思います。



不特定多数に,しかも自分の手に届かない範囲に配布する必要があったら,
スピード的な問題は別にしても,桐内で完了させた方が問題や面倒は少ない気もします?


21948 Re:サムネイル表示から画像ファイル名を取得したい hidetake 2003/08/21-10:22
記事番号21947へのコメント
>コモンダイアログ

最初に書こうと思っていたことを書き忘れていました! (^^;

コモンダイアログだと VBS 等からは,最初のダイアログの大きさや
表示形式の指定は難しいです。

でもエクスプローラだと,その辺の大きさ等は思えておいてくれるし
「表示」の「このフォルダのカスタマイズ」で設定しておけば
表示形式やプレビューをするとかまで指定(カスタマイズ)できるし
そうしておけば(XPと2000の場合とで違うけど)単に桐にファイル名を取り込むだけでなく,
そのまま「印刷」とか,イメージファイル管理の面など,いろんな面で便利かなと言う考えも含まれています。


21957 Re:VB5CCE 悲しげ 2003/08/21-21:21
記事番号21926へのコメント
とりあえず、ご紹介のものをダウンロードしてみました。(約8Mb)

>Visual Basic 5.0 Control Creation Edition(VB5CCE) が
>MicrosoftのWebサイトで無償配布されていますが、この中に、comdlg32.ocxお
>よびそのライセンスが・・・・・・・(以下略)

で、挙げていただいたvbsを動かしてみましたが、
最初に「X:\にはアクセスできません」と出てしまう(が、これは無視して)、
次に「開くファイル」としてエクスプローラをどうやって指定するのか、
あるいは手動指定ではなく自動的にエクスロプーラを立ち上げるにはどうするのか、
(ちなみにマイコンピュータで試してみたら、確かにクリックしたファイル名を取得できました)、
それとこのvbsと桐との関係はどうなるのか(桐の中から「シェル実行」させるのか?)・・・などがよく判りません。
でもツリーが伸びすぎてしまうようなら、この件は機会を改めるか、
あるいは個人的にやりとりした方がいいのか、などとも思っています。

それに、本件のそもそもの処理方法として、複数の人のパソコンの全てにこのVB5CCEなるものを
イントスールしてもらうようなことが妥当かどうかも、
ちょっと疑問になって来ました。
ならば、桐1本のインストールだけで間に合わせることの方が、
かなり遅いけど(^^;)、無難かも──に傾いて来ました。

21958 Re:VB5CCE hidetake 2003/08/21-21:33
記事番号21957へのコメント
>でもツリーが伸びすぎてしまうようなら、この件は機会を改めるか、あるいは
>個人的にやりとりした方がいいのか、などとも思っています。

これ以上の事はその方がイイかも知れません。 (^^;

取り敢えず今回の件まで・・・


>最初に「X:\にはアクセスできません」と出てしまう(が、これは無視して)、

これは,Xドライブが無いからですね! ここの初期フォルダを指定します。


>次に「開くファイル」としてエクスプローラをどうやって指定するのか、ある
>いは手動指定ではなく自動的にエクスロプーラを立ち上げるにはどうするのか、

これはコモンダイアログを使う方法ですので,エクスプローラとの関係はありません。
エクスプローラを使うのであれば,このコモンダイアログは必要なくなります。
ようはどちらを使うか?


>(ちなみにマイコンピュータで試してみたら、確かにクリックしたファイル名
>を取得できました)、それとこのvbsと桐との関係はどうなるのか(桐の中から
>「シェル実行」させるのか?)・・・などがよく判りません。

後の方のスクリプトでは桐との連携までは含めてありません。
やるとしたら,最初の方のようにテキストファイルでのやり取りなるでしょうか?


>それに、本件のそもそもの処理方法として、複数の人のパソコンの全てにこの
>VB5CCEなるものをイントスールしてもらうようなことが妥当かどうかも、ちょ
>っと疑問になって来ました。ならば、桐1本のインストールだけで間に合わせ
>ることの方が、かなり遅いけど(^^;)、無難かも──に傾いて来ました。

これはやめた方がイイと思います。 (^^;
本来なら MS が VBS でもコモンダイアログを使うライセンスを与えてくれれば,
そのままでも使いたいところですが,そうで無いのでどうやるか?
を指向(思考)してのコメントです。

桐の「ファイルを開く」ダイアログが OS の持っている機能以上に,
もっと高機能であってくれたら,それで良いのですけどね。


あとは,別に時間も充分にあるようですし,ゆっくりやりましょう? (^_^ゞ


でも,結局,不特定多数で使うのなら桐内部で済ませた方が良いと言う事になりそうです?


21959 Re:サムネイル表示から画像ファイル名を取得したい 悲しげ 2003/08/21-21:51
記事番号21943へのコメント
どもっ、佐田さん

>仮想盆踊りの写真ですか。
>そう言った写真を多数集めたり分類するのだとしたら、やはり画像ツール
>の出番でしょうか。
>ところで、逆に桐の役割が見えなくなってしまっているのですが、
>写真のリストを作る事でしょうか。

この点だけコメントしておきます。
各地の仮装盆踊りの写真を蒐集したいのではなく(^^;)、私も主催側の末席を汚している
「ただひとつの」仮装盆踊り大会の、一種の受付事務として必要なのです。

その際の、いわゆる名簿作成や印刷関係・点数処理などは桐で楽勝なのですが、
もうひとつ、各々の仮装の状況を写真に撮ってそれを審査資料のひとつとして印刷したりするようなことが
必要になっている訳です。

写真の数に関しては、前掲したとおりせいぜい30〜50程度でそう多い訳でもありません。
が、当日は極めて短時間の間に、しかもランダムにデータが入って来るので、
その仕訳作業(仮装のタイトル・出場者名と画像を間違いなくリンクさせる)をできるだけ効率的に行いたい、と。
最悪の場合は、写真は別途印刷させてから、手作業で名前をつけたり糊で
審査資料等に貼ったりしてもいいけれども(^^;)、データとして一元化しておいた方が
ベターなことは云うまでもありませんでしょ。

ついでに云えば、入力作業は私も担当はしますが、別な誰かさん達も行いますから、
なるべく間違えにくい簡単な操作方法が好ましいし、さらに云えば、
パソコン(ノートパソコン)はどうしても他人のを借りることになるので、
あまり色んなものを入れたり有料モノとかは避けたい、と云う事情もあったのです。

で、画像処理速度がかなり遅い点を我慢すれば、桐単独が無難かもしれない
と云う方向に、だんだん傾いて来ました。(^^;)

22006 Re:サムネイル表示から画像ファイル名を取得したい 悲しげ 2003/08/25-22:12
記事番号21931へのコメント
この件に関連して、知らない方も結構多いと思われるので、簡単にご紹介させていただきます。
(実は私も今回、たゆーさんやhidetakeさんから教えて戴いて初めて知りました)

桐ver9のβ版CDの中に「桐縮サンプル版」(kithumb.exe)なるものが入っていました。
サンプル版だけあって機能は限定されておりますが、フォルダ内の諸々の
画像ファイルのサムネイルを「別途作成」してくれます。
桐v9β版をお持ちでない方でこれを試してみたいと思われる方は、
その元となった「縮小専用。」なるアプリを使うことができます。
フリーウェアでして、所在は下記のとおり(上記「桐縮サンプル版」の起動画面にurlが貼り付けられていました)。
http://www.a-groove.com/software/shukusen/index.html

今回の私の目的は、元ファイルを取り急ぎ臨時的に「サムネイルとして『表示』させる」であって、
半恒常的に利用する際の高速化の手段として「サムネイルファイルを『作成』する」ではなかったので
目的には合わなかったけれども、でも、こっち方面が好きな桐使いなら結構便利そうです。

ps
「こっち方面」とは、H系ではなく、あくまで画像全般を指しています。(^^;)

22015 Re:訂正>「桐縮サンプル版」(kithumb.exe) 悲しげ 2003/08/26-14:31
記事番号22006へのコメント
取り急ぎ訂正です。(汗)
標記はβ版のみならず製品版にも同梱されてましたね。
桐ver9をインストールしたら、自動的に

  \Sample\実践\画像管理

の中に入ってました。(^^;)(^^;)

戻る