반응형
* VBNET API 이용 인터넷 연결 상태 체크 (internet Connect State Check) 예제...
전체 소스 코드
Form1.vb
Public Class Form1
Private Declare Function InternetGetConnectedState Lib "wininet.dll" _
(ByRef lpdwFlags As Int32, ByVal dwReserved As Int32) As Boolean
Private Enum ConnectionStates
Modem = &H1
LAN = &H2
Proxy = &H4
RasInstalled = &H10
Offline = &H20
Configured = &H40
End Enum
Dim thMain As System.Threading.Thread
Dim bCheck As Boolean = False
'폼이 로드 되면...
'아래와 같이 Form_Load 이벤트로 해도 상관 없음.
'Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'End Sub
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
CheckForIllegalCrossThreadCalls = False
thMain = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf Thread_Tick))
'백그라운드 스레드로 지정
thMain.IsBackground = True
bCheck = True
button1.Text = "Internet Connect Check Start"
thMain.Start()
MyBase.OnLoad(e)
End Sub
Protected Overrides Sub OnClosed(ByVal e As System.EventArgs)
If Not thMain Is Nothing Then
If bCheck Then '스레드가 돌고 있으면...
'스레드 강제 종료...
thMain.Abort()
Else '스레드가 일시정지 상태로 대기 하고 있으면...
'대기 중인 스레드 종료...
thMain.Interrupt()
End If
thMain = Nothing
End If
'가비지 콜렉트 실행
GC.Collect()
MyBase.OnClosed(e)
End Sub
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
If Not bCheck Then
bCheck = True
'일시정지된 스레드 다시 시작
thMain.Resume()
button1.Text = "Internet Connect Check Start"
Else
bCheck = False
'스레드 일시정지
thMain.Suspend()
button1.Text = "Internet Connect Check Stop"
End If
End Sub
Public Shared Function Get_InternetConnectedState() As Boolean
Dim lngFlags As Long
lngFlags = 0
Get_InternetConnectedState = False
If InternetGetConnectedState(lngFlags, 0) Then
'connected.
Get_InternetConnectedState = True
Else
'not connected.
Get_InternetConnectedState = False
End If
End Function
Sub Thread_Tick()
While (True)
If Get_InternetConnectedState() Then
label1.Text = "인터넷 연결이 되어 있습니다."
Else
label1.Text = "인터넷 연결이 끊어 졌습니다."
End If
System.Threading.Thread.Sleep(1000)
End While
End Sub
End Class
* 예제 결과
반응형
'VB.NET Programming' 카테고리의 다른 글
[VBNET] [WMI] 현재 실행 중인 프로세스 조회 (Process Search) (0) | 2020.01.31 |
---|---|
[VBNET] [WMI] 윈도우 시작 프로그램 조회 (Startup Program) (0) | 2020.01.29 |
[VBNET] 텍스트 파일 읽기 (txt File Read) - 한글 깨짐 방지 (0) | 2020.01.20 |
[VBNET] [API] 컨트롤 (Control) 모서리 둥글게 하기 (0) | 2020.01.16 |
[VBNET] 숫자 (금액) 을 한글로 변환 (0) | 2020.01.14 |