接続を確認


たかみちえ  2001-10-27 17:07:05  No: 74989  IP: [192.*.*.*]

接続しているかどうかを確認するには、
InternetAttemptConnectというAPIを使うそうですけど、
そのAPIを呼び出しても、いつも0しか返ってきません。
0が返ってきたらインターネットに接続しているというサインだそうですけど…。

  そこで、かわりの方法として、インターネット接続時にだけ起動されてるらしい、
"Rnaapp"というアプリケーション(?)があるかどうかを調べて結果を返したいと思います。
(よくわからないんですけど、これを強制終了させると回線が切れるので…)

  で、なんですけど、どんな環境でもRnaappの在否を確かめれば、
接続は確認できるでしょうか?
強制終了ダイアログでのみ現れるようですけど…。

編集 削除
こころ  URL  2001-10-28 02:32:50  No: 74990  IP: [192.*.*.*]

回線を切断している時に
InternetAttemptConnectを呼び出せば
接続ダイアログが開かれません?
キャンセルすれば、0以外の値が
こちらでは帰ってきましたが・・・。

引数は0を指定するようにMSDNに記載されていましたが
その辺は問題ないんですよね?

確かにダイヤルアップネットワークとかその辺で
接続されている場合、Rnaappを使用しているみたいですが
LAN環境から接続している人もいるわけで
そういった環境でRnaappが起動しているかは・・・
今は自宅なのでちょっと確認できません。。。

編集 削除
α  2001-10-28 14:43:29  No: 74991  IP: [192.*.*.*]

Winsockでコネクトさせれば接続されているなら出ないし、接続されてないならダイアルアップが出てきますけど、ルーター接続だとだめですね。

編集 削除
たかみちえ  2001-10-28 16:03:00  No: 74992  IP: [192.*.*.*]

あらら…、やっぱりAPIを使ったほうが確実なんですね^^;

  うーん…。説明をしっかり読んで、やってみたつもりですけど…。
なぜかどうやっても、どんなときでも0しか返ってきません。
InternetAttemptConnect(0)  ですよねぇ…。

  BASP21という、インターネットとかその他いろいろのライブラリがあるときいて、
ダウンロードはそれを使うことにしましたけど、接続しているかどうかはこれでしか取得できないようなので…。

  ところで、Winsockでやるならどうやって確認するんでしょう?
それができればそれでもいいんですけど…。

>接続されている場合、Rnaappを使用しているみたいですが
  あ、よく調べてみたら、強制終了させない限りずっとRnaappって残ってましたね^^;

編集 削除
こころ  URL  2001-10-28 18:56:31  No: 74993  IP: [192.*.*.*]

> なぜかどうやっても、どんなときでも0しか返ってきません。
例えば、インターネットに接続していない状態で
IEを起動するとどうなるんでしょうか?

こちらの環境ではInternetAttemptConnectを呼び出したときと同じように
接続確認用のダイアログが表示されます。
IE系のAPIなので、当然IEもこれで接続確認していると思います。
なので、IEでできて、自分はできないのであれば
API宣言等を見直す(程の宣言ではないですが)とかするしかないですが。

InternetAttemptConnectは接続を確認するというより
接続を確保するためのものみたいなので
オフライン接続とかされていると0返しそうですねぇ・・・。
(試したわけではないですが・・・)

編集 削除
こころ  URL  2001-10-28 19:02:54  No: 74994  IP: [192.*.*.*]

試してみたらオフラインでも同じでした。
っていうか、IEの場合、オフライン接続があるけど
InternetAttemptConnectで表示される奴は
キャンセルになってるし。

IEはInternetAttemptConnectは使ってないんでしょうかねぇ・・・。
それとも、ダイアログのフックみたいな拡張機能が
あるんでしょうか・・・。
もしかしたら、0以外を指定するとそうなったりして。。。

編集 削除
こころ  URL  2001-10-28 19:08:16  No: 74995  IP: [192.*.*.*]

単純にInternetOpenが失敗すれば
接続できないとかでもいいんじゃないでしょうか?
どういう用途で接続確認をされようとしているのかが
わからないので、この方法が最善かはわかりませんが・・・。

編集 削除
たかみちえ  2001-10-28 23:32:34  No: 74996  IP: [192.*.*.*]

>API宣言等を見直す(程の宣言ではないですが)とかするしかないですが。
  うーん、正式文章から持ってきたものではないので、あやしいかもしれません…。
  けどこれって、引数は0でそれ以外ないですよね^^;

  それとも、あそこになにかいれてみればいいのかな…。
>単純にInternetOpenが失敗すれば
>接続できないとかでもいいんじゃないでしょうか?
  接続とファイルのダウンロードは、
その見つけたライブラリのBASP21(http://www.hi-ho.ne.jp/babaq/)でやっているので、
InternetOpenは使ってないんですよぅ…。

  けど、いったんOpenして、すぐ閉じればおなじことかな…。

>どういう用途で接続確認をされようとしているのかが
>わからないので、この方法が最善かはわかりませんが・・・。
  接続していないのにもかかわらず、ダウンロードしようとして、
ふつうにダウンロードが失敗したような処理はどうかなと思ったので…。
  別に確認しなくても、いいのはいいんですけどねぇ…。

編集 削除