HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
1206
ますインターネットへの接続形態を取得したい4解決


ます

リンク

2006/12/6(Wed) 22:31:20|NO.4006

インターネットへの接続形態を取得したいのですが、
調べるとwininet.dllというものを使えばできるらしいのですが、
具体的な方法が分からず、調べても分かりませんでした。
どうすればできるのでしょうか?



この記事に返信する


kanzaki

リンク

2006/12/6(Wed) 23:39:21|NO.4009

InternetGetConnectedStateExA を検索してみた所
丁度HSP2.x用に作られてらっしゃる方が居られました。
3.x用に修正しますと


;wininet.dllを使用しますという意味です。 #uselib "wininet.dll" ;wininet.dllの中に含まれている、InternetGetConnectedStateExAと言う機能を使用したいという様な意味です #cfunc InternetGetConnectedStateExA "InternetGetConnectedStateExA" int,sptr,int,int ;その答えを記録するための変数を確保します。今回は512バイト分です。 sdim strConnectionName,512 ;先ほどの答えを記録するための変数を、HSP以外のプログラムから見たときのメモリーの番地(これをポインタといいます)を ;適当な変に格納します。HSP以外から見た、変数名の変わりのようなものです。 PointerTemp = varptr(strConnectionName) ;実際に、InternetGetConnectedStateExA を実行します。 ;関数として定義していますので、適当な変数に代入する形で使用しています。 a= InternetGetConnectedStateExA(0,PointerTemp,512,0) ;戻ってきた値を表示します。 mes strConnectionName

のような感じです。

外部DLLの使用(及び仕様)に関しては、検索エンジンなどで少しづつ模索してみてください。
(この部分に限っては、最初は他のスクリプトからのコピーでいいような気もします。)
それ以外の部分の作りこみに関して、頑張ってみてください。



…ただし、この情報がわかっても、あまり意義のある情報には見えませんね



ます

リンク

2006/12/7(Thu) 14:53:35|NO.4025

kanzaki様、ありがとうございます。
僕は、すごい勘違いをしていたようです。
インターネットへの接続形態とは、ただ単にインターネットに接続しているか接続していないか
を表すものだと思っていました。そのそうに書いたサイトがあったので…(汗
インターネットにただ単に接続しているか接続していないかは、調べられないのでしょうか?
度々すみません。



kanzaki

リンク

2006/12/7(Thu) 15:24:35|NO.4026

ます様
検索してみましたところ
wininet.dllを使用されて、チェックなさっている方が居られました
http://f17.aaa.livedoor.jp/~takasoft/Programer/HSP3/hspinet.htm



#uselib "wininet.dll" #func InternetAttemptConnect "InternetAttemptConnect" int #func InternetGetConnectedState "InternetGetConnectedState" int,int ERROR_SUCCESS = 0x00000000 ret=0 InternetGetConnectedState varptr(ret),0 if stat = 0 :mes "ネットワークに接続できない。又は、LANを切っている。" if stat = 1 :mes "ネットワークに接続可能" InternetAttemptConnect 0 if stat=ERROR_SUCCESS{ mes "インターネットに接続可能" mes "ただしLANを切っている可能性もあります。" }

のような、スクリプトがあります。
参考にしてみてください。

ところで、どのような方法で実際の通信を行われるのでしょうか?
インターネットに接続可能かどうかのチェックは、
“実際に接続してみる”というのは如何でしょうか?

IPアドレスが設定(または取得)されているか
 されていない→接続不能

適当なインターネット上のサーバーへPINGを行う
 返答がある→接続可能

DNSサーバーへ、ドメインをIPアドレスへ変換させる(名前の解決と言います)
 できる→接続可能かも?
 できない→接続不能

など、チェックの方法がいくつか考えられます。
ただし、最後のDNSに関しては、
社内LANなどの環境下では、もしかしたら通用しないかもしれません。



ます

リンク

2006/12/7(Thu) 19:06:35|NO.4035

実際の通信は、hspinetのftp系命令で行います。
正直、kanzaki様に提示していただいたURLにも、
>InternetGetConnectedState関数とInternetAttemptConnect関数を
>使うのが一番良い方法ではないかと思います。
って書いてありましたし…(汗
その方法でやってみます。
ありがとうございました。



ONION software Copyright 1997-2018(c) All rights reserved.