![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
最近「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」の機能を使って実現している様な事を
聞きました。いったい、何が違うのでしょう。
何方か、私のこの疑問を解消して頂けないでしょうか?
よろしくお願いいたします。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_12.png?8acaa2e)
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Visual Basic(VBA) エクセルVBA コードが同じでもファイルによって処理速度が大きく変わるのはなぜ 5 2022/11/06 21:34
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) 【VBA】For文を使用し、行をコピーして別シートに貼り付ける方法を教えてください。 4 2022/07/19 09:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel VBA】取り込んだファイ...
-
VBAで、JPG写真の撮影日時を読...
-
RPGでメッセージファイル利用
-
サイトマップにサブドメインを...
-
VB2008 iniファイルの全セクシ...
-
Eclipseで検索ができなくなった
-
openglで音楽を再生する
-
C++.NET 2003 「空のドキュメ...
-
エディットボックスの内容をテ...
-
0バイトのテキストファイル
-
「Active X Inet」と「WinInet...
-
インタープリンタとファイルコ...
-
VBS ファイルマージ処理
-
画像ファイルに拡張子がjpgのフ...
-
フリーで最適なXMLエディタを探...
-
2GB以上のファイルを扱う方法
-
CSVファイルの時刻の形式について
-
accessでクエリをExcelにエクス...
-
テキストボックスから読み取り判断
-
MT-4トレード結果をエクセルに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel VBA】取り込んだファイ...
-
0バイトのテキストファイル
-
VBAで、JPG写真の撮影日時を読...
-
HTMLテキストリンクでExcelファ...
-
Eclipseで検索ができなくなった
-
VB6.0のメモリリークについて
-
main関数のコマンドライン引数...
-
2GB以上のファイルを扱う方法
-
サイトマップにサブドメインを...
-
ファイル更新日取得
-
ファイル作成日時と更新日時を...
-
エディットボックスの内容をテ...
-
【VBA】印刷マクロのループ処理...
-
<input type="file" で初期値...
-
【VBA】複数CSVの特定範囲を1つ...
-
C++によるファイル送受信プログ...
-
GetOpenFileName()について
-
VB2008 iniファイルの全セクシ...
-
IMEのモードを強制的に変えるには
-
ファイル内容を比較する方法
おすすめ情報