最近「VB6」から「VB 2008 Express Edition」へプログラミング環境を
移行したものです。
VB6では「Active X コントロール:インターネットトランスファ(Inet)の
OpenURLメソッド」を使用してHTTPファイルを取得していました。
環境の移行を機に「Windows Internet(WinInet.dll)の機能」を使用して、
VB6の「Inet.OpenURLメソッド」と同様の処理を行おうと考えました。
しかしいざ実行すると、「Inet.OpenURL」だと正常にファイルを取得できるのに、
「WinInet.dll」では異常終了してしまうケースがあります。
私の経験不足から、その原因を突き止めることができません。
よろしくお願いいたします。
◎HTTPファイルを取得するまでの WinInet.dll で行っている処理[1]
(1) InternetOpen
↓
(2) InternetConnect
↓
(3) HttpOpenRequest
↓
(4) HttpSendRequest
↓
(5) HttpQueryInfo
↓
(6) InternetReadFile
◎HTTPファイルを取得するまでの WinInet.dll で行っている処理[2]
(1) InternetOpen
↓
(2) InternetOpenUrl
↓
(3) HttpQueryInfo
↓
(4) InternetReadFile
◎
上記、処理[1]で正常にファイルが取得できるURL
上記、処理[1]では失敗するが処理[2]で正常にファイルが取得できるURL
上記、処理[1]でも処理[2]でも失敗するが、「Inet.OpenURL」で正常に
ファイルが取得でいるURLの、3通りのURLが存在します。
この差はどこから生じるのでしょう。
処理[1]、処理[2]で失敗する場合は、
「InternetConnect」、「HttpSendRequest」または、「InternetOpenUrl」で
異常終了し、「エラーコード:2(ERROR_FILE_NOT_FOUND:
The system cannot find the file specified.)」が返ってきます。
「ファイルが見つからない」というのは、「該当のURLが存在しない」と
いう事なのかもしれませんが、「Inet.OpenURL」で、正常にファイルが
取得できるのは腑に落ちないです。
「Inet.OpenURL」自体も「WinInet.dll」の機能を使って実現している様な事を
聞きました。いったい、何が違うのでしょう。
何方か、私のこの疑問を解消して頂けないでしょうか?
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
使ったことも無いので間違ってるかもしれませんが、
System.NET.WebRequest や System.Net.WebResponse を使って実現できませんかね。
http://www.divakk.co.jp/aoyagi/csharp_winexe_05. …
ご回答ありがとうございます。
代替方式として、考えさせていただきます。
基本的には、「WinInet.dll」の機能の範囲で解決したいと思っています。
「WinInet.dll」だと、
(1)「.NET Framework」がインストールされていない環境でも動作可能
(2)VBAへの移植が容易
といったメリットがあると考えています。
「Inet.OpenURL」でできることが、「WinInet.dll」だと、うまく実現できないのは、
何かが違うためなのだろうと考えています。
それを解決するためのヒントが頂けたらと思っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで、JPG写真の撮影日時を読...
-
JavaでPDFファイルに変換するに...
-
ファイル作成日時と更新日時を...
-
CSVファイルの時刻の形式について
-
ファイナルカットで編集した動...
-
ACCESS2002(or2003)の日付表示...
-
Acrobat参照設定
-
研究する文献がたくさんありま...
-
COBOL FILLER
-
WshShellから起動したbat(ftp)...
-
VB(VBA)で、バイナリデータを使...
-
ATTファイルってどうやって開け...
-
egwordファイルをWin上で開きたい
-
ストリームについて。
-
Office Onlineで作ったファイル...
-
Javaのプロパティファイルの文...
-
バイナリファイルとバイナリ文...
-
ファイル変換
-
VB6からEXCEL2007へ出力は可能?
-
フォルダ内のサブフォルダ名や...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel VBA】取り込んだファイ...
-
0バイトのテキストファイル
-
VBAで、JPG写真の撮影日時を読...
-
Eclipseで検索ができなくなった
-
サイトマップにサブドメインを...
-
HTMLテキストリンクでExcelファ...
-
ファイル作成日時と更新日時を...
-
msgget()で指定するkey値について
-
ディレクトリのサイズの取得
-
VB2008 iniファイルの全セクシ...
-
【VBA】複数CSVの特定範囲を1つ...
-
CSV名と同じシートを選択して取...
-
main関数のコマンドライン引数...
-
C++.NET 2003 「空のドキュメ...
-
ファイル更新日取得
-
VB6.0のメモリリークについて
-
VBS ファイルマージ処理
-
2GB以上のファイルを扱う方法
-
<input type="file" で初期値...
-
JavaでPDFファイルに変換するに...
おすすめ情報