• 締切済み

WinInet.dll の使い方

サーバーにおいてあるファイルを直接操作したく、ftpOpenFile, InternetReadFile, InternetWriteFile, InternetCloseHandle を宣言したまではいいのですが使い方がいまいちわかりません。 わかる方教えてください。お願いします。

みんなの回答

  • nakashi
  • ベストアンサー率51% (21/41)
回答No.1

URL参照 自分でも検索してみれば ftpOpenFile, InternetReadFile, InternetWriteFile, InternetCloseHan and VB

参考URL:
http://www.galliver.co.jp/writing/susume_vb/tre902/

関連するQ&A

  • wininetでPOSTで値を渡せません

    winnetを使ってPOST形式でサーバにパラメータを渡そうとしていますが、パラメータが渡せずに困っています。 HttpOpenRequestかHttpSendRequestがおかしいと思うのですが、自分では見当がつきません。 よければ何処に問題があるのか教えてください。 環境:vc++2005 int DoHttpRequest( void ) { HINTERNET hInet, hSession, hRequest; DWORD dwTotal = 0; wchar_t param[] = L"type=1"; wchar_t header[] = L"Content-Type: application/x-www-form-urlencoded"; wchar_t accept[] = L"Accept: */*"; // 使ってない BOOL flag; Console::WriteLine( "Http接続START" ); //インターネット(WinInet)初期化 hInet = InternetOpen( NULL, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); if (hInet == NULL) { Console::WriteLine( "エラー1" ); return -1; } // サーバへ接続 hSession = InternetConnect( hInet, L"192.168.11.25", 9999, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0 ); if( hSession == NULL ) { Console::WriteLine( "エラー2" ); InternetCloseHandle(hInet); return -1; } //HTTPセッションの開始, 指定のURLオープン hRequest = HttpOpenRequest( hSession, L"POST", L"/sample/service.php", NULL, NULL, NULL, INTERNET_FLAG_NO_CACHE_WRITE, 0 ); if (hRequest == NULL) { Console::WriteLine( "エラー3" ); InternetCloseHandle(hSession); InternetCloseHandle(hInet); return -1; } // 送信 flag = HttpSendRequest( hRequest, header, wcslen( header ), param, wcslen( param )); if( flag == FALSE ) { Console::WriteLine( "エラー4" ); InternetCloseHandle(hRequest); InternetCloseHandle(hSession); InternetCloseHandle(hInet); return -1; } //インターネットハンドルの解放 InternetCloseHandle( hRequest ); InternetCloseHandle( hSession ); InternetCloseHandle( hInet ); Console::WriteLine( "Http接続END" ); return 0; }

  • 「Active X Inet」と「WinInet.dll」の違いについて

    最近「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」の機能を使って実現している様な事を 聞きました。いったい、何が違うのでしょう。 何方か、私のこの疑問を解消して頂けないでしょうか? よろしくお願いいたします。

  • 「WININET.DLLが見付かりません」と出ます

    いつもお世話になっております 一昨日ウィルスバスターでTrojan.DL.Agent.cyiという名前のものを含むウィルスを6個か7個削除しました。 そして昨日立ち上げるとインターネットに繋げられません。 「必要なDLLファイルc:\WINDOWS\SYSTEM\WININET.DLLが見付かりませんでした」と出ます。 「必要なDLLファイルc:\WINDOWS\SYSTEM\URLMON.DLLが見付かりませんでした」とも出ました。 セーフモードで立ち上げてみましたが何も変わらず。 昔のノートパソコンを立ち上げて調べてみましたが私ではさっぱりわかりません。 どうか助けてください。お願いします。

  • Wininetでのプロキシとポート指定によるファイルのダウンロード

    Wininetの下記の関数の組み合わせで、Webサーバからファイルをダウンロードしています。 InternetOpen→InternetOpenUrl→InternetReadFile(VB6.0) プロキシなしでやっているときは、問題なかったのですが、プロキシとポートを 指定したところ、うまくダウンロードできなくなりました。 InternetOpenで、プロキシの設定は行ったのですが、ポートの指定ができずに 困っています。ポートは一般的な80,8080ではなく特殊な設定になっています。 InternetConnectでポートの指定ができるようですが、うまくいきません。 どなたかお教え下さい。宜しくお願い致します。

  • WININET.DLLのエラー

    パソコンを起動させると 「Explorerが原因でWININET.DLLにエラーが発生しました。Explorerは終了します。問題が解決しない場合は再起動してください。」 と出るのですが、いくら再起動しても直りません。 操作するごとにWININET.DLLにエラーが発生してしましまいます。 なるべく詳しく教えてほしいです。よろしくおねがいします。 ちなみにOSはWinXPでPresarioです。

  • wininet.dllをアップデートできません

    よろしくお願いします。 ある業務用のソフトをインストールしようとしたら次のようなエラーメッセージが出てしまいました。 エラー1931 Windowsインストーラサービスはシステムファイル C:\WinNT\system32\winnet.dll をアップデートできません。と表示されます。 どのように対処したら正常にインストールできるでしょうか。 当方の環境は Win2000,IE5.5 です。CD-ROMからのインストールです。OSのアップデートは小まめにやっていて最新版(だと思う)です。

  • WinINet関数について質問です。

    WinINet関数を使いVCプログラムしています。 HTMLをダウンロードしてきて、情報を解析しているのですが。 InternetOpen InternetOpenUrl ↓ InternetReadFile 手順で、HTMLの所得はできるのですが、 ユーザー認証がいるサイトの情報を取る方法がわかりません。 (例えば:mixi,facebookなど) WinINet関数を使用してサイトにログインしてから、 指定のURLのHTMLを取得する様な感じだと思っているのですが、やり方がわかりません。 参考になる、サイト等知っている方がいましたら、教えて頂けると嬉しいです。

  • VBScriptからDLL参照設定したい

    初めて質問します。宜しくお願いします。 VBScriptからある業務アプリのAPIを操作したいと考えています。参照したいDLLは分かっているのですが参照設定の方法が分かりません。「Declare」など宣言することによって参照設定することは可能でしょうか。そもそもVBScriptからはDLLへの参照設定はできないのでしょうか。 ちなみにOSはWin2000サーバまたはWin2003サーバを想定しています。 以上、宜しくお願いします。

  • WinInet.dllを利用したHttpQueryInfoの取得

    現在、VB6.0にてWinInet.dllを利用したHTTP通信のプログラムを作成しております。 WEBサーバに対してリクエストを送るところまでは正常に動作しているのですが、リクエストに対するWEBサーバからの応答の取得がうまく動作しません。 具体的には、 HttpSendRequest(hUrl, vbNullString, 0, StrPtr(~), UBound(~)) でデータを送り、この応答を取得するために、 HttpQueryInfo(hUrl, HTTP_QUERY_STATUS_CODE, strBuffer, lngLength, 0) を記述しています。 これを実行した際、LngLengthには3が戻ってくるのですが、strBufferに戻る値が、3桁ではありません。 文字コードかデータ型の違いかで全く読み取れない値が帰ってきます。 通常であればstrBufferに入る値は何も変換なく読み取れるものなのでしょうか? 今回だと、200や404がそのまま取得できるものなのでしょうか? どなたか、分かる方がおられましたら、ご教授下さい。

  • wininet.dllとwsock32.dllについて

    クライアントのVBAから、サーバにHTTPで文字データを送信しようとしています。 1. WinAPIの"InternetOpenURL"(wininet.dll)が使えると思いましたが、MSDNLibraryではWinCE用と英語で言っているようでした。W2Kの自PCにも上記DLLは入っていますが、W2Kで使うのは一般的ではないのでしょうか? 2. クライアントのIPアドレスも送信したいので、wsock32.dllのAPIで取得しようとしています。wininetやwsock32が、いつインストールされるものなのか(OS入れた時か、Officeか、IEか等)を調べる手段はあるでしょうか?また、MS社以外の製品によって、これらのDLLがアップデートされてしまうことは通常ないと考えていてよいものでしょうか? ご教授下さいますよう、よろしくお願いします。