- PR -

Webbrowserコントロール type=file のテキストボックス部分に文字を入力する方法

投稿者投稿内容
未記入
常連さん
会議室デビュー日: 2006/07/12
投稿数: 24
投稿日時: 2006-07-17 15:18
前回、マルチポストの件で、皆様にご迷惑をかけてしまい申し訳ありませんでした。
以後気をつけますので、これからも宜しくお願いします。

さて、vb2005のWebbrowserコントロールでtype=file のテキストボックス部分に
任意の文字(ファイル名などパス名)を入力する方法が分かりません。

ブラウザ上で写真とかをアップロードする時に、よく使われていると思いますが、
テキストボックスの横にコマンドボタンがあって、コマンドボタンを押すと、
ダイアログが開いて、参照するファイルを探す事が出来るものです。

htmlのソースを見ると、<INPUT TYPE=FILE NAME=upfile>と書いてあり、
「TYPE=FILE」でテキストボックスとコマンドボタンのセットを表し、
「NAME=upfile」は、そのセットの名前のようです。

私は、そのテキストボックスの部分に、Webbrowserコントロールのプログラムから、
「c:\\test\\test_picture.jpg」のような文字を書き込みたいのですが、
出来ません。

vb2005にて、
----------------------------------------------------------------------------------------
WebBrowser1.Document.All.GetElementsByName("upfile")(0).InvokeMember("click")
----------------------------------------------------------------------------------------
と、書くと、webbrowser上から「upfile」というボタンに対してクリックをする命令が送られ、
ダイアログが展開します。

希望としてはダイアログは展開させずにテキストボックスに直にパスを書かれている状態にしたいです。
ムリなら、開いたダイアログ内のテキストボックスに「文字列(パス)」を貼り付け、
ダイアログの「開く」ボタンを押すという作業と同じ事をプログラムで自動に行いたいです。

参考までに
「http://chaichan.hp.infoseek.co.jp/qa1000/qa1184.htm」という掲示板で
「input type="file" の値は確かセキュリティの問題でreadonly だったように思います。」
という書き込みを見つけました。
しかし、書き込まれてる日付は2001年の事なので、
VB2005なら、あるいは出来るのでは?と、思い投稿させてもらいました。

よろしくおねがいしますm(__)m
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-07-17 16:27
引用:

さて、vb2005のWebbrowserコントロールでtype=file のテキストボックス部分に
任意の文字(ファイル名などパス名)を入力する方法が分かりません。



出来ないです。

引用:

参考までに
「http://chaichan.hp.infoseek.co.jp/qa1000/qa1184.htm」という掲示板で
「input type="file" の値は確かセキュリティの問題でreadonly だったように思います。」
という書き込みを見つけました。
しかし、書き込まれてる日付は2001年の事なので、
VB2005なら、あるいは出来るのでは?と、思い投稿させてもらいました。



状況は全く同じです。

セキュリティに関する要件は年々(日々?)厳しさを増すばかりで、制約が緩まる方向に傾くことはまずあり得ないです。
未記入
常連さん
会議室デビュー日: 2006/07/12
投稿数: 24
投稿日時: 2006-07-18 15:57
>渋木宏明(ひどり)様

お返事ありがとうございます。

そうですか、、、仕様なら仕方がないですね。

では、
WebBrowser1(WebBrowserコントロール)と同じFORM上に
Textbox1(Textbox)を置き、
Textbox1.text = "c:\test\test.jpg"とし、
Textbox1.textを、WebBroser1から開いたダイアログ内のテキストボックスに表示し、
ダイアログの「開く」ボタンを押すという作業は、
どのようにすれば出来るでしょうか?

おそらくダイアログのプロパティなどを操作するのでしょうが、
そのダイアログの取り方がわかりません。

よろしけば、ご教授願いたく思います。


[ メッセージ編集済み 編集者: 未記入 編集日時 2006-07-18 15:58 ]
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-07-18 16:47
引用:

未記入さんの書き込み (2006-07-18 15:57) より:
>渋木宏明(ひどり)様

お返事ありがとうございます。

そうですか、、、仕様なら仕方がないですね。

では、
WebBrowser1(WebBrowserコントロール)と同じFORM上に
Textbox1(Textbox)を置き、
Textbox1.text = "c:testtest.jpg"とし、
Textbox1.textを、WebBroser1から開いたダイアログ内のテキストボックスに表示し、
ダイアログの「開く」ボタンを押すという作業は、
どのようにすれば出来るでしょうか?

おそらくダイアログのプロパティなどを操作するのでしょうが、
そのダイアログの取り方がわかりません。

よろしけば、ご教授願いたく思います。


[ メッセージ編集済み 編集者: 未記入 編集日時 2006-07-18 15:58 ]


意味がわからんです。
>WebBroser1から開いたダイアログ内のテキストボックスに表示し
>ダイアログの「開く」ボタンを押すという作業は、
って何?

ブラウザコントロールじゃなくて通常のコモンダイアログと解釈すればまだ理にかなうけど。。。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-07-18 17:09
WindowsFormのコントロールと ASP.NET のコントロールが入り乱れている??
WebBrowser から開いたダイアログとは何ですか?

WebBrowser1 → System.Windows.Forms
Textbox1  → System.Windows.Forms ???
WebBrowser1から開いたダイアログ → ????
未記入
常連さん
会議室デビュー日: 2006/07/12
投稿数: 24
投稿日時: 2006-07-18 21:14
>ぶさいくろう様、かるあ様

お返事ありがとうございます。

チョット混乱しておりますので、もう一度書いてみます。

WebBrowserコントロールで、
<INPUT TYPE=FILE NAME=upfile>があるhtmlを見ると、
ボタンがある画面が表示されます。

その画面の中のボタンを押すと
ファイルを選択するためのコモンダイアログが出てきます。

このコモンダイアログのテキストボックス部分に
文字を入れたいのですが、どうすればよいでしょうか?
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-07-18 22:30
引用:

WebBrowserコントロールで、
<INPUT TYPE=FILE NAME=upfile>があるhtmlを見ると、
ボタンがある画面が表示されます。

その画面の中のボタンを押すと
ファイルを選択するためのコモンダイアログが出てきます。

このコモンダイアログのテキストボックス部分に
文字を入れたいのですが、どうすればよいでしょうか?



出来ないです。

API も駆使して、惜しみなく労力を注ぎ込めば出来る可能性もゼロではないですが。。。

もし、INPUT TYPE=FILE の代わりに、INPUT TYPE=TEXT と INPUT TYPE=BUTTON の組み合わせで画面を構成するので問題ないなら、WebBrowser コントロールの ObjectForScripting プロパティを応用する方向で考えてみてください。


[ メッセージ編集済み 編集者: 渋木宏明(ひどり) 編集日時 2006-07-18 22:33 ]
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-07-19 00:49
fileフィールド(にしろダイアログにしろ)にデフォルトで
C:¥Documents and Settings¥User¥Cookies¥User@foo.txt
とか入ってたらそんなブラウザ嫌ですよね。セキュリティリスクの高いことは
すべきでないし、普通はそうなっています。


とはいっても、Webbrowserコントロールを使わずにWebRequest(かWebClient?)あたりを
使って普通にWindowsアプリを作ればいいのでは?

スキルアップ/キャリアアップ(JOB@IT)