- - PR -
【ASP.NET】ローカルPCのドライブ一覧表示がうまくいきません!
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-02-18 09:44
Haruka@まだまだ初心者です。
ASP.NETでWebアプリケーションを開発しています。 標題の件、非常に悩んでおりましてご教示ください。 クライアントPCのドライブ一覧を(DropDownListコントロールに)表示させたいのですが、 うまくいきません。以下のコードは、WebフォームのPage_Load()で記述しています。 Dim fsObj As Scripting.FileSystemObject Dim Drive As Scripting.Drive Dim strDrive as String fsObj = CreateObject("Scripting.FileSystemObject", "") Drive_dd.Items.Clear() For Each Drive In fsObj.Drives strDrive = Drive.DriveLetter Drive_dd.Items.Add(New ListItem(strDrive ,strDrive)) Next ※CreateObject("Scripting.FileSystemObject", "") ヘルプによると、第二引数が""の場合、ローカルコンピュータが使用されます。 と記述してあります。でも、表示されてくるのは、サーバの情報です。 はじめは、クライアントスクリプト(VB.Script)で以下のような記述をしましたが、 CreateObjectの部分で、「ActiveXコンポーネントはオブッジェクトを作成できません」 のエラーがでて断念して、上記のようにしました。 そもそも、VBScriptでなぜこのようなERRORがでるのかも不明です。 何か設定がたりないのでしょうか? Dim fs Set fs = CreateObject("Scripting.FileSystemObject") 同じようなことをされている方、ご教示ください。 何卒宜しくお願いします。 | ||||||||
|
投稿日時: 2004-02-18 09:49
サーバーからクライアントのファイルを自由に使えたら、いわゆるウィルスも自由に作れます。 セキュリティについてよく勉強して下さい。 (ブラウザのセキュリティ設定を思いっきり下げれば動くかもしれないけど、お奨めできません) | ||||||||
|
投稿日時: 2004-02-18 09:57
Harukaです。
業務の性格上、ローカルPCの情報を取得するような仕様を実現しなくては いけません。 セキュリティを下げるのはやむなく考えていまして、IEのセキュリティ上 ActiveXコントロールを「有効」にしています。 以上、宜しく願いします。 | ||||||||
|
投稿日時: 2004-02-18 10:07
webフォームのPage_load()はサーバサイドで実行されます。 webアプリケーションのプログラムには・・・ 1.サーバサイドスクリプト 2.クライアントサイドスクリプト の二つが存在します。 1はサーバ側で実行されます。 2はクライアント側で実行されます。 そして、先ほどwebフォームのPage_load()はサーバサイドで実行されます。 と言ったことと
を見て考えると、ここでいうローカルコンピュータというのが 1.サーバ側 2.クライアント側 のどちらかが分かると思います。 #書籍等を利用してASP.NETの仕組みを理解された方がいいかもしれません。 | ||||||||
|
投稿日時: 2004-02-18 10:18
返答ありがとうございます。そうですね。
サーバーサイドの部分に記述しているので、でるわけないですもんね。 それで、クライアントスクリプト(VB.Script)に以下のように記述するのですが、 Dim fs Set fs = CreateObject("Scripting.FileSystemObject") CreateObjectの部分で、「ActiveXコンポーネントはオブッジェクトを作成できません」 ここでERRORがでるのがなぜなのでしょうか? ASPではどうようのことができるのに、ASP.NETだとできないなんてことは ないと思うのですが。困り果てました。 何卒宜しくお願いします。 | ||||||||
|
投稿日時: 2004-02-18 13:57
回答ではありません。
ASP.NETでいうサーバープログラムですよね?.NETでもサーバー側のコードで Server.CreateObject("Scripting.FileSystemObject") と書けば、この行自体はエラーにはならないですね。それと同じことだと思います。 ASPではドライブ一覧を表示できているのですか?もしそうならどうやっているかを 示せば、もう少しヒントになることが得られるかもしれません。 以下、推測を含みます。
エラーにはならないようになりました(IE6)。googleで検索すればいくつかヒント らしきものが引っかかりますが、scrrun.dllなるファイルを使っているようなことが 書いてあったのでこれが登録されている必要があるのかも。 | ||||||||
|
投稿日時: 2004-02-18 15:44
べるさん、返答ありがとうございます。うまくいきました。
他フォーラムにも同じような趣旨の質問をしていたのですが、 同様の回答を頂きまして、指摘されたとおりに設定変更したところ、 ERRORなくうまくいきました。 IEのイントラネットゾーンのセキュリティの設定で、 ◎スクリプトを実行しても安全だとマークされていない ActiveXコントロールの初期化とスクリプトの実行 設定部分を『有効』に設定変更しました。 インターネットゾーンの設定変更をしてただけでした。。。 ありがとうございました。 |
1