はじめまして。質問させてください。
htmlで次のようなファイル指定のコントロールに初期値を設定すること
はできないのでしょうか。
<input type=file value=" name=fileName>
IE6環境でかまいません。
ActiveXで、色々試してみましたが、エラーではじかれてしまいます。
ちなみに、<input type=text・・・>ではもちろんできます。
MSHTML::IHTMLDocument3Ptr pDocument( pBrowser->Document );
MSHTML::IHTMLElementCollectionPtr pCollection;
// 検索文字列を設定
pCollection = pDocument->getElementsByName( _bstr_t( LfileName ) );
MSHTML::IHTMLInputTextElementPtr pText( pCollection->item() );
①文字列を貼り付け
pText->value = _bstr_t( LC:\\ );
②コントロールの貼り付け
pText->select();
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event('V', 0, 0, 0);
keybd_event('V', 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
アイデアでもいいですし、対応案ありましたら、
よろしくお願いします。
JavaScriptでinput type=fileに値を設定することはセキュリティ問題で出来無いって
話は有名だね。安全のためユーザーにファイル名を入れさせる。
C言語などでMSHTMLからも出来ないっていう話は確認したことないけど。
キーイベント発生させてユーザーが入力したふりさせるとか。
それで出来てしまったら、それはそれで問題な気もするけど。
情報共有
http://ap.atmarkit.co.jp/bbs/core/fdotnet/17734
俺ならユーザーに ActiveX を入れさせてまでする必要があることとは思わない。
・単に技術的に可能不可能を論じるだけなら可能であること、と
・すべきこと、と
・セキュリティ的ユーザー教育的にしてはならないこと、と
その辺の意識解決あって後の話だな。
俺なら「仮に技術的には可能であっても、やらない」だろう。
やはり技術的に無理なんですかね。。
セキュリティ的に問題があるのは重々承知です。
逆に問題があるから出来ないようにブロックしていると言うことなのでは?
御自身でも言われている通り、簡単にできるようならセキュリティ的に問題が
あることは明白ですよね。
トリッキーな方法であれ、出来るのであればセキュティホールと言われそうな気がします。
ローカルのヘルプ見たら設定/取得可能でスクリプトからは不可のように
書かれてましたが、オンラインで確認すると・・・
http://msdn.microsoft.com/ja-jp/library/aa703798(en-us,VS.85).aspx
やっぱり読み取り専用でした。
ちなみにセキュリティの問題を承知の上でそんなことをしたい理由は何なんでしょう?
HTTPでのアップロードが目的なら
Msxml2.XMLHTTP について調べてみるといいかもしれません。