> インターネットに接続されているか確認するには、どうすればいいのでしょうか?
On Error Resume Next さんのWinTipsに載ってます。
http://resume-next.hp.infoseek.co.jp/data/index.html
私も、接続の有無のチェックを組み入れようと思いつつも、
ずっと放置していたとこだったので、
これを使ってオフライン/オンラインを検出する関数を
実際に組んで見ました。
コード: 全て選択
#N88BASIC
' ↓ ここからプログラムが実行されます
Declare Function InternetGetConnectedState Lib "wininet.dll" ( ByRef lpdwFlags As Long, dwReserved As Long ) As Long
'■ lpdwFlags(接続状況を返すポインタ)
Const INTERNET_CONNECTION_CONFIGURED = 64 '有効な接続があるが現在接続されていない
Const INTERNET_CONNECTION_LAN = 2 '接続にLANを使用
Const INTERNET_CONNECTION_MODEM = 1 '接続にモデムを使用
Const INTERNET_CONNECTION_OFFLINE = 32 'オフライン
Const INTERNET_CONNECTION_MODEM_BUSY = 8 '何も使用されていない
Const INTERNET_CONNECTION_PROXY = 4 '接続にプロキシ・サーバーを使用
Const INTERNET_RAS_INSTALLED = 16 'RASがインストールされている
Declare Function InternetAttemptConnect Lib "wininet.dll" ( dwReserved As Long ) As Long
Dim retAns As Long
retAns = IsInternetConnect()
debug
retAns = IsInternetOnline()
debug
End
'インターネットへの接続の有無を返す
'※接続が存在すれば、オフライン/オンラインに関わらずTRUEを返す。
'※※ADSL等の接続が無い場合には、ダイヤルアップのダイアログを開く?
Function IsInternetConnect() As Long
Dim retAns As Long
Dim nFlags As Long
'ADSL( LAN経由 )をチェック
retAns = InternetGetConnectedState( nFlags, NULL )
If( retAns=FALSE )Then
'ダイヤルアップをチェック
retAns = InternetAttemptConnect( NULL )
If( retAns<>ERROR_SUCCESS )Then
IsInternetConnect = FALSE
Else
IsInternetConnect = TRUE
EndIf
Else
IsInternetConnect = TRUE
EndIf
EndFunction
'接続がオンラインかどうかを返す。
'※接続が存在しない場合はオフラインと判断。
Function IsInternetOnline() As Long
Dim retAns As Long
Dim nFlags As Long
'ADSL( LAN経由 )をチェック
retAns = InternetGetConnectedState( nFlags, NULL )
If( retAns=FALSE )Then
IsInternetOnline = FALSE
Else
'オフラインかどうかを調べる。
If( (nFlags and INTERNET_CONNECTION_OFFLINE)=INTERNET_CONNECTION_OFFLINE )Then
IsInternetOnline = FALSE
Else
IsInternetOnline = TRUE
EndIf
EndIf
EndFunction
Ver3.x
ダイヤルアップの部分は試してません(^^;)
他の参考サイト(※どっちもABではありません。VBとCかな?)
http://www2.hornet.co.jp/tomoko/program ... tate01.htm
http://www.geocities.co.jp/SiliconValle ... ternet.htm
> 「受信」は行わず、メールボックスにあるメールの「数」をチェックしたいのです(メールチェッカとはそういう意味でしょうけど・・・)。
こちらに関してはさっぱり分かりません(^^;)
ここの掲示板の「送信」プログラムで使っているAPIをググッって行けば
辿り着けそうに思いますが・・・量が量なので大変そうですね・・・。