インターネットの接続確認+メールチェッカ

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
Mario2
記事: 205
登録日時: 2005年5月31日(火) 13:31
お住まい: 大阪市
連絡する:

インターネットの接続確認+メールチェッカ

#1 投稿記事 by Mario2 »

インターネットに接続されているか確認するには、どうすればいいのでしょうか?
PINGとかで出来るのかな?と思っているのですが、やり方がわかりませんでした。

それと、メールチェッカを作ってみたいのですが、これも上記と同じく、やり方がわかりません。ちなみに、「受信」は行わず、メールボックスにあるメールの「数」をチェックしたいのです(メールチェッカとはそういう意味でしょうけど・・・)。
(ここの掲示板のは「送信」で、「受信」ではありませんでしたので・・・)
ネットで検索してみたものの、メールチェッカの紹介ページの検索結果が沢山出てきて、作り方のページが見つかりませんでした。

ネット関連だと思い、1つ(のトピック)にまとめました。

よろしくお願いします。
淡幻星
記事: 183
登録日時: 2005年7月19日(火) 07:02
お住まい: 宮城県
連絡する:

Re: インターネットの接続確認+メールチェッカ

#2 投稿記事 by 淡幻星 »

> インターネットに接続されているか確認するには、どうすればいいのでしょうか?
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をググッって行けば
辿り着けそうに思いますが・・・量が量なので大変そうですね・・・。
situmon
記事: 35
登録日時: 2005年5月31日(火) 09:39
お住まい: 岐阜

メールの受信

#3 投稿記事 by situmon »

メールの受信サンプルを実践コードモジュールに投稿しておきました。
POP3で受信を行います。

よろしければ参考にどうぞ。
Mario2
記事: 205
登録日時: 2005年5月31日(火) 13:31
お住まい: 大阪市
連絡する:

Re: メールの受信

#4 投稿記事 by Mario2 »

> メールの受信サンプルを実践コードモジュールに投稿しておきました。
> POP3で受信を行います。
>
> よろしければ参考にどうぞ。

淡幻星さん、situmonさん、ありがとうございます。

参考にして、がんばってみます。
返信する