• 締切済み

Wininet.DLL使用時のプログラム終了のトラブル

Wininet.DLLを使用してFTPでファイルのアップロード・ダウンロードを完了した後、そのプログラムをインストールしたパソコンにより(OSはWin2k)プログラムの終了処理(END)に時間がかかるPCがあります。正常に終了できるPCもあります。 PCによって上手く(ENDを正常に)終わる場合とENDに至るのに時間がかかるものが存在するのはどのような事が原因なんでしょう? ファイル転送自体は正常に完了しております。 上手く伝わったがどうか解りませんが大変困っております。

みんなの回答

  • 2ch
  • ベストアンサー率51% (64/125)
回答No.1

現象はよくわかります。 原因はわかっておりません。。。 的をはずしていたらすいません。 エラートラップをかけ、エラー無視でCancelを発行してから終了してみてはどうですか?

関連するQ&A

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

  • FTPでエクセルをPUTするとファイルが破損する

    このサイトを参考にvbaでFTPでファイル転送を実装しようとしています。 http://www.happy2-island.com/access/gogo03/capter90302.shtml FtpPutFile Lib "wininet.dll" 上記のFTPプットの部分で問題がありそうです。 ローカルからLAN経由で接続されたFTPサーバーを使い ファイルサーバーへエクセルファイルをアップロードしたいのですが ファイルが破損して開けなくなってしまいます。 バイナリ転送、アスキー転送と転送モードを変えて試しても NGでした。 xmlファイルなどテキストであれば問題なくアップロードできました。 エクセルファイルはFTP転送できないのでしょうか? なにかよい方法があれば教えてください。 宜しくお願い致します。

  • iexplore.exeのエラーとwininet.dllについて

    IEを立ち上げると「問題が発生したため、iexplore.exe を終了します。 ご不便をおかけして申し訳ありません。」と言うメッセージが突然出るようになりました。必ず表示されます。 「閉じる」を押すとそのまま閉じてしまうのですが、エラーメッセージを放置しておくとそのまま使用可能です。でも常に一番前に表示されるので邪魔でどうしようもありません。 マイクロソフトの下記ページも見てみたのですが、私の場合はModule name の欄に「wininet.dll」と表示されています。 http://support.microsoft.com/kb/831432/ja 他のブラウザを使ってもいいのですが、Live Messengerやその他のチャットソフトもログインするとほぼ毎回強制終了されてしまったり、ログイン画面すら立ち上がらないこともあって困っています。Messengerソフトに関しては10回に1回くらいはエラーが出ません。やはりModule name の欄に「wininet.dll」とあります。 IEの設定でHTTP1.1を使用しないようにするという方法も試してみたり、テンポラリファイルの削除もしましたが同じです。 IEの問題ではないように思っているのですが、解決方法がありましたら教えて下さい。IEのバージョンは6.0でXPはSP2です。 よろしくお願いします。

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

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

  • wininet.dllのInternetOpenの同期、非同期について

    wininet.dllのInternetOpenの同期、非同期について お世話になります。 VBAでFTPの転送をする際に、InternetOpenを使うのですが同期させたいと思います。 以下サイトなどでいろいろ調べたのですがdwFlagsの指定の仕方について質問です。 1.dwFlags に 0 が指定された場合は、同期すると考えて宜しいでしょうか? 2.dwFlags に、文字列で INTERNET_FLAG_ASYNC を指定すると非同期となるということでよいでしょうか? 3.複数を組合せの時はどのように記述しますか? 以上、宜しくお願い致します。 <参考サイト> http://www.red.oit-net.jp/tatsuya/vb/WinInet.htm#InternetOpen ●参考サイトより抜粋 Public Declare Function InternetOpen Lib "Wininet.DLL" Alias "InternetOpenA" _ (ByVal lpszAgent As String, ByVal dwAccessType As Long, ByVal lpszProxyName As String, _ ByVal lpszProxyBypass As String, ByVal dwFlags As Long) As Long dwFlags : オプション。以下のパラメータの組み合わせを指定します。 INTERNET_FLAG_ASYNC サーバーから取得する(非同期)。 INTERNET_FLAG_FROM_CACHE キャッシュから取得する。 INTERNET_FLAG_OFFLINE INTERNET_FLAG_FROM_CACHEと同じ。

  • プログラムが終了できない・・・

    ソニーのSonicStageというソフトを使ってウォークマン(4GB)に曲(64kbps、1500曲くらい)を転送していたら700曲あたりで転送されなくなったので中断しようとしたら「中止処理中です」というメッセージが出たまま動かなくなってしまいました。ウォークマン自体は取り外してしまったのですが正常に動いています。パソコンの電源を切ろうにも「中止処理中」であるため終了できません。強制終了しようかと思いましたがネットは使えるため質問させていただきました。よい対処方法があれば教えてください。

  • プログラム終了時に決まった処理を行なわせたい

    VB2005において、プログラム終了時(Form右上の「×」をクリックしたとき)に、 ある決まった処理をさせたいのですが、どうしたらいいのでしょうか。 具体的には画面上で編集したデータを特定のファイルに書き出す、という処理をしたいと考えています。

  • 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がそのまま取得できるものなのでしょうか? どなたか、分かる方がおられましたら、ご教授下さい。

  • MRIで作成したプログラムのDLLを作成し、多言語で使用したい

    お世話になっております。 MRI(Ruby1.8系環境)で作成し単体テストまで完了したCUI帳票を出力するバッチプログラムを、 DLLにして他の言語で組まれたプログラム(今回の場合であればjava)で使用したいと考えます。 尚、Ruby側で行う事はタイミングを重要としない最終ファイル出力処理と、 それに付帯するヒアドキュメントによる雛型定義と文字列処理程度なので、呼び出し側と密な関係を持つ必要はありません。 可能であればパラメータを渡して叩けるのが理想ですが、不可能であれば中間ファイルを使用する実装でもかまいません。 (ただし、雛型だけを呼び出し側から直接参照する場面も想定されたい) 可能かどうか、可能であればどのような手段を取り得るか、といった辺りをご教示いただければ幸いです。 以上です。よろしくお願いします。

    • ベストアンサー
    • Ruby
  • BC++Builderで作成したDLLをBC++で使用した時エラーが

    BC++Builder5で作成したDLLを、BC++5.02Jで作成するプログラムで使用した時にエクスプローラなどで実行した時には正常なのですが、他プログラム中からShellExecuteなどで起動させた時にLoadLibraryでDLLアドレス例外処理が発生してしまう。なぜだか解る人いませんか?DLLの作成方法が悪いのでしょうか? ちょっと煮つまってしまいました(-_-;)

専門家に質問してみよう