• ベストアンサー

絶対パスでないとダメなのでしょうか?

よろしくお願いいたします。 ActiveXコントロールで、WebBrowserを利用してweb表示を行いたいのですが、社内での理容を考えており、 Webページ自体もサーバ上ではなく、CDに焼いて利用しようと考えています。 よって、複数のパソコンでの利用を想定するため、 【ActiveXコントロール1.Navigate "◆◆◆"】の記述の中で、 ◆◆◆の部分を相対パスで指定したいのですが、どうも上手く出来ません。 もちろんハードディスク上の絶対パスであれば動作は出来ます。 この場合、相対パスの利用は出来ないのでしょうか? まだ全然VBの知識が無いのですが、ホームページの作成経験はあります。 ご教授いただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

No.1です。 >ネットで検索したのですがApp.Pathとはどういうものでしょうか? ネットよりも、まずはヘルプだと思いますが。 AppとPathの両方をそれぞれ調べましょう。 あと、イミディエントウィンドウに、 「?app.path」 と入力して、[Enter]を押してみるといいでしょう。 で、「..」の件は、 ActiveXコントロール1.Navigate App.Path & "\..\index.htm" という風でいいのではないかと思います。 ("/"じゃなくて"\"でした。)

yutaka5555
質問者

お礼

ご指摘の通り、ヘルプですね。 そして、丁寧な解説、ありがとうございます。 ActiveXコントロール1.Navigate App.Path & "\..\index.htm" を実際に試して見ましたが、残念ながら動作しませんでした。 "\"の件は了解です。 再度色々と調べて見たいと思います。 (参考書などでは、私の見たものに関しては全て絶対パスで指定となっておりました) ありがとうございます。

その他の回答 (2)

  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.3

> 相対パスの利用は出来ないのでしょうか? できないようです。 MSDNのNavigateの説明のところに「full path」と書かれていました。 http://msdn.microsoft.com/workshop/browser/webbrowser/reference/ifaces/iwebbrowser2/iwebbrowser2.asp http://www.d6.dion.ne.jp/~ikenji_o/works/sad/reference/webbrowser/objects/WebBrowser.htm No.1さんが書かれているようにApp.Pathから絶対パスを生成するのがいいかと思います。 「App.Path & "\..\index.htm」の結果がちゃんと目的の文字列になっているか確認してみてはいかがでしょう。

参考URL:
http://msdn.microsoft.com/workshop/browser/webbrowser/reference/ifaces/iwebbrowser2/iwebbrowser2.asp
yutaka5555
質問者

お礼

返信が遅れてしまいました。 その後、サイド色々と挑戦し、なんとか解決いたしましたのでお知らせいたします。 最終的な結果として、index.htmファイルと同じディリクトリで保存し、 CurrentProject.path & "\index.htm" という記述方法で難を逃れました。 ご指導いただき、ありがとうございました。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 プログラムファイル(Exeファイル)とWebページの相対位置が一定ということですか。 (両方とも、CD-ROMにある) なら、プログラムのパスを、「App.Path」で取得してそれを元に絶対パスを作成してはどうですか? もしくは、1つ上を表す、「..」を利用して、 「/../../a/b/test.htm」 のように出来ませんか。 (確認してないので、はっきり分からないですが。)

yutaka5555
質問者

補足

素早い返答、ありがとうございます。 えと、お恥ずかしながら、App.Pathというのが分かりませんでして。 ネットで検索したのですがApp.Pathとはどういうものでしょうか? ちなみに、指定したいファイル(index.htm)は一つ上の階層なので、【../index.htm】はすでに試しておりますが動作しませんでした。

関連するQ&A

  • C# ローカルにあるhtmlの相対パスでの表示

    C#webBrowserでローカルにあるhtmlを相対パスで表示させたいです。 exeファイルと同じフォルダにtest.htmlを置いたとして、 webBrowser1.Navigate(@".\test.html")とすれば出来ると思ったんですが出来ません。 ご教授頂ければ助かります。

  • URLは絶対パス、相対パス、ルート相対パス

    WEBサイトを作成する上で、HTML内に使用するURLの記述方法で悩んでいます。 「絶対パス」、「相対パス」、「ルート相対パス」のどれがいいでしょうか。

    • ベストアンサー
    • HTML
  • /から始まる絶対パスは どこで知ることができるのでしょうか

    yahooのジオプラスを申し込み、ドメインも取得したのですが CGIがなかなか利用できずに困っています。 こちらのhttp://www.kent-web.com/pwd/gate.html Kent Web様のCOSMO GATEというCGIを動作させたいのですが http://www.geocities.jp/ドメイン/というディレクトリの /から始まる絶対パスを記述しなければなりません。 分からないで悩んでいたところプロバイダ(つまりYahoo)のほうに 聞くしかないというアドバイスをたくさんいただきました。 Yahooのほうに問い合わせたところ、そのような問い合わせには 基本的に回答しないということで、とても困っています。 /から始まる絶対パスは、どのようにして調べるのでしょうか。 分かりきった質問だったとしたらお恥ずかしいことですが 申し訳ございません。 どうかよろしくお願いします。

  • ActiveX の WebBrowser コントロール上で、フォームのボタンを「クリックする」動作

    ActiveX の WebBrowser コントロール上で、フォームのボタンを「クリックする」動作をソフトで行いたいのですが、方法をご存知の方がおられましたらご教授いただけませんでしょうか。目的は Webからのフォーム入力を支援するソフトの作成です。 以下のようなケースを想定しています 1.Webからフォーム入りのページを WebBrowser コントロールで取得し 2.取得したドキュメント内の文字入力欄等にデフォルト値を差し込み 3.加工したドキュメントをWebBrowser コントロールに戻し 4.そのままフォームの送信ボタンを押された動作を行う ことにより、必要な情報を誤りなく入力できるようにするものです。 Navigate や Navigate2 で、直接フォーム入力を送信するのではなく、あくまで「クリックしたことにする」方法をとりたいと思っています。 なんとなく、セキュリティへの配慮からサポートされていないのかな?という気もしなくないですが、ご存知の方がおられましたら教えていただければと思います。 環境は IE5以降、VC++ (MFC)で作成しています。(VS6)

  • Visual Basic 6.0 の WebBrowser コントロー

    Visual Basic 6.0 の WebBrowser コントロールが使えなくなり困っています。 WindowsXpマシンで、VB6でプログラムを作っています。プログラムにはコンポーネント追加で加えたWebBrowser コントロールを使っています。 今年の3月頃まではIE6を使っており、問題なく使えていました。4月14日になってやってみるとWebBrowser1.Navigateが使えないというメッセージがでます。このためプログラムを修正できなくなりました。以前、コンパイルしていたEXEプログラムは動きます。 3月末頃にIE8にしたのが悪かったかと思って、IE6の別のパソコンでやってみたのですが同じメッセージでVB6で作ったプログラム内のwebブラウザが使えません。 「Visual Basic 2005 では Windows フォームの WebBrowser コントロールに置き換えられています。」という案内を見つけましたが、Visual Basic 2005に変えたつもりはありません。 読んでも(頭が固いようで)どうしたら良いのか分かりません。

  • vb.netを使ってWeb表示の自動化を図りたい

    VB.netのWebBrowserを使ってWeb表示の自動化を図りたい。 プログラムの流れ概要 1.WebBrowser1.Navigate(New Uri("http://hoge")) で、Web表示 2.Web表示終了イベントを検知。検知するまでwait状態にする 3.次のWeb表示をWebBrowser1.Navigateで行う。 4.以降2 - 3を繰り返す。 これらを、出来れば同じsub()で行いたいと思います。 どのようにすれば、実現出来ますか。 ご教示下さい。

  • webbrowserに表示させたページのリンクをクリックしたい。

    お世話になります。 vb2005でウェブブラウザにページを表示させて webbrowser1.navigate("http://yahoo.co.jp") 5番目のURLをクリックさせるのはどうすればいいでしょうか? 教えてください。お願いします。

  • なぜNavigateは候補に表示されないのでしょう

    なぜNavigateは候補に表示されないのでしょうか? フォームを作成し、 ツールボックス→[コントロールの選択]で Microsoft Web Browserをクリックしてフォーム上に設置しました。 そしてVBA画面のForm_Loadイベントで Me.WebBrowser1.Navigate URL を記述しようと思い Me.WebBrowser1.nと入力してもNameしか出てきません。 なぜNavigateは候補に表示されないのでしょうか? オブジェクトブラウザでNavigateを検索してみると [SHDocVw.WebBrowser のメンバ] としてヒットするので、 Me.WebBrowser1.nと入力したあとに表示されても良い気がするのですが・・・ Navigateのスペルは覚えにくいので候補が出たらいいなーと思っています。 ご教授よろしくお願いします。

  • WebBrowserコントロールでExplorerのようなものを作りたいのですが困っています

    VB.NET2008にて、開発中です。 WebBrowserコントロールを使用してExplorerを作っているのですが、たとえば WebBrowser1.Navigate("C:\Users\" + Environment.UserName + "\Desktop") とすることによってコントロール上にデスクトップにあるファイルが表示されますよね? そこで、表示されたファイルのうち1つをを選択し、そのファイル(もしくはディレクトリ)のフルネームを取得したいのですが、どうもやり方がわかりません。 どなたかこの方法を知っている方、いらっしゃいませんでしょうか?

  • WebBrowserでOfficeファイル等を表示する事ができません・・・

    VB.net2008Expressを使用しています。 タイトルの通り、ExcelやWord、PDFファイル等をWebBrowserで表示したいと考えているのですが、行き詰りましたので質問させていただきます。 AxWebBrowser1.Navigate("c:\a.xlsx") このように記述し、c:\a.xlsxをAxWebBrowser1に表示させようと考えているのですが、「ファイルのダウンロード」ウィンドウが開いてしまい、表示ができません。 また、このウィンドウの「開く」ボタンを押しても、別枠でExcelが開き、肝心のAxWebBrowser1は"Webページへのナビゲーションは取り消されました"と表示されるだけでした。 また、AxWebBrowserコントロールではなく、WebBrowserコントロールで WebBrowser1.Url=New Uri("c:\a.xlsx") と試してみても結果は同じでした。 いろいろと調べてみても、これで表示されるはずなのですが、ダウンロードのウィンドウが邪魔して開いてくれません。 どのようなことが原因で表示がうまくいかないのでしょうか? また、解決策はあるのでしょうか・・? どうか皆さんの力をお借りしたいと思います。 よろしくお願いします

専門家に質問してみよう