• ベストアンサー

プログラムについて

 あのー、今VBでHPのアドレスを入力するとそのHPのソースが表示できるプログラムを作ろうと思っているんですが、VBでできるのでしょうか?

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

  • ベストアンサー
  • osaosa42
  • ベストアンサー率60% (20/33)
回答No.6

インターネットには、繋がっている環境ですか? ソースが間違っていました。 Private Sub Command1_Click() Command1.Enabled = False Text1.Text = GetSource() Command1.Enabled = True End Sub Function GetSource() As String Dim strBuf As String Dim strURL As String strURL = "http://www.microsoft.com/japan/ms.htm" strBuf = Inet1.OpenURL(strURL)'ファイル内容を取得 GetSource = strBuf End Function 固まってしまったのは、インターネット接続中の時に連打したためおかしくなってしまったのだと思われます。

mos21
質問者

お礼

す、すごい、動きました。すげー!!なんでできるんですか?本当にありがとうございました。

その他の回答 (5)

  • osaosa42
  • ベストアンサー率60% (20/33)
回答No.5

Formにボタンとテキストボックスを貼り付けて、 テキストボックスのMultiLineをTrueにします。 ボタンをダブルクリックし次のようにクリックイベントにコードを追加します。 Private Sub Command1_Click() Text1.Text=GetSource() End Sub これでどうですか?

mos21
質問者

お礼

ありがとうございました。それはこういうことですか? Private Sub Command1_Click() Text1.Text = GetSource() End Sub Function GetSource() As String Dim strBuf As String Dim strURL As String strURL = "http://www.microsoft.com/japan/ms.htm" strBuf = Inet1.OpenURL(strURL) strBuf = GetSource End Function これでボタンをクリックしたら画面が止まったような感じになるので、ボタンを連打したら「最後の要求が実行中です」と出てしまいました。 なんでですかね、難しいですね。

  • osaosa42
  • ベストアンサー率60% (20/33)
回答No.4

コンポーネントの追加で「Microsoft Internet Transfer Controll」を追加してFormに貼り付けます。 Function GetSource() As String Dim strBuf As String Dim strURL As String strURL = "http://www.microsoft.com/japan/ms.htm" strBuf = Inet1.OpenURL(strURL) strBuf = GetSource End Function こんなんでどうでしょう?

mos21
質問者

お礼

回答ありがとうございました。コンポーネントの追加で「MicrosoftInternet Transfer Controll」を追加してFormに貼り付けて、回答いただいたプログラムを書いたところ、全体が灰色のFormが表示されて文字は無かったです。Form上には「Microsoft Internet Transfer Controll」以外でListBoxとか何か貼り付けなければいけないんでしょうか?

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.3

InternetReadFile関数のサンプルをどうぞ

参考URL:
http://www.vbvbvb.com/jp/gtips/0101/gInternetReadFile.html
mos21
質問者

お礼

ちょっと難しいことが書かれていたんですが、わかるところもあり参考になりました。ありがとうございました。

  • honiyon
  • ベストアンサー率37% (331/872)
回答No.2

こんにちは、honiyonです。  いえいえ、TELNETでやるもの、というものではありません。  実際にその処理の流れを目で確認してもらった方がわかりやすいのではないか、という事で、HTTPプロトコルによる通信を TELNETクライアントを用いて説明しただけです。  また、今手動で行った処理を、そのままプログラミングすればソースを取得するソフトが作れるよ、という意味も含んでいます。  説明が下手ですいません(..

mos21
質問者

お礼

手動で行った処理をプログラミングですか。難しそうですね、でもがんばりたいと思います。ご丁寧にありがとうございました。

  • honiyon
  • ベストアンサー率37% (331/872)
回答No.1

こんにちは、honiyonです。  Winsockを使えば VBで TCP/IP通信が可能です。  ひょっとしたら Winsockを更に簡単に使えるようにするコンポーネントがあるかもしれません。  では実際にどうやってソースを取得するか説明します。  スタート>ファイルを指定して実行>TELNET www.yahoo.co.jp 80  と入力してください。  TELNETウインドウが開きます。(何も表示されていません)  ここで、  GET / HTTP/1.0  と入力して、Enterを 2回押してください。  (ここでの入力した文字は、場合によっては画面に表示されない可能性があります。)  すると、画面にだら~っと YAHOOのトップページのソースが表示されたと思います。  因みに、 http://www.yahoo.co.jp/~honiyon/hoge.html のソースを取得したければ、  GET /~honiyon/hoge.html HTTP/1.0  とします。  つまり、目的のソースがあるサーバーの 80番ポートに接続し、 GET~という文字列と Enterを2回送ってやればソースは取得できるわけです。  これを自分で実現できれば一番良いですが、面倒くさい場合は、IEの ActiveXコンポーネントを使うのが一番楽です。  ActiveXの一覧を参照するとそれらしいのが見つかると思いますので、インポートして適当にいじりまわしてみてください。(結構簡単に使い方が分かると思います) あとは、「IE」とか「ActiveX」とかでWWWを検索していると結構ヒントが見つかります。  参考になれば幸いです(..

mos21
質問者

お礼

ありがとうございました。それはVBで直接プログラムを書くのではなくて、TELNETを使ってソースを取得するものなのですかね。そのようなやり方もあるんですね。 参考になりました。

関連するQ&A