Kiểm Tra Máy Tính Có kết nối Internet hay không Bằng code VBA

Liên hệ QC

Kiều Mạnh

I don't program, I beat code into submission!!!
Tham gia
9/6/12
Bài viết
5,541
Được thích
4,125
Giới tính
Nam
Mình đang sử dụng code sau để kiểm tra xem máy tính có kết nối với Internet hay không...

Hiện tại sử dụng tốt ...nhưng mấy cái hàm API mình không thích vậy mình úp lên nhờ các bạn xem có cách nào viết code khác có chức năng tương tự mà không sử dung hàm API được không....nhờ các bạn xử dùm
xin cảm ơn
PHP:
Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef _
    lpSFlags As Long, ByVal dwReserved As Long) As Long
    Const INTERNET_CONNECTION_MODEM = 1
    Const INTERNET_CONNECTION_LAN = 2
    Const INTERNET_CONNECTION_PROXY = 4
    Const INTERNET_CONNECTION_MODEM_BUSY = 8

Function Internet_Check(Optional ConnectMode As Integer) As Boolean
    Dim Flags As Long
    Internet_Check = InternetGetConnectedState(Flags, 0)
    ConnectMode = Flags
End Function

Public Sub Check_KetNoi()
    Dim KetNoi As Boolean
    KetNoi = Internet_Check
    If KetNoi = True Then
        MsgBox "May Tinh dang ket noi Internet", 64, "Thông Báo"
    Else
        MsgBox "May Tinh cchua ket noi Internet", 64, "Thông Báo"
    End If
End Sub
 

File đính kèm

  • Check Internet.xlsb
    13.1 KB · Đọc: 38
Lần chỉnh sửa cuối:
Mình đang sử dụng code sau để kiểm tra xem máy tính có kết nối với Internet hay không...

Hiện tại sử dụng tốt ...nhưng mấy cái hàm API mình không thích vậy mình úp lên nhờ các bạn xem có cách nào viết code khác có chức năng tương tự mà không sử dung hàm API được không....nhờ các bạn xử dùm
xin cảm ơn
PHP:
Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef _
    lpSFlags As Long, ByVal dwReserved As Long) As Long
    Const INTERNET_CONNECTION_MODEM = 1
    Const INTERNET_CONNECTION_LAN = 2
    Const INTERNET_CONNECTION_PROXY = 4
    Const INTERNET_CONNECTION_MODEM_BUSY = 8

Function Internet_Check(Optional ConnectMode As Integer) As Boolean
    Dim Flags As Long
    Internet_Check = InternetGetConnectedState(Flags, 0)
    ConnectMode = Flags
End Function

Public Sub Check_KetNoi()
    Dim KetNoi As Boolean
    KetNoi = Internet_Check
    If KetNoi = True Then
        MsgBox "May Tinh dang ket noi Internet", 64, "Thông Báo"
    Else
        MsgBox "May Tinh cchua ket noi Internet", 64, "Thông Báo"
    End If
End Sub

Tôi nghĩ theo hướng đơn giản: Nếu mở 1 trang web quen thuộc nào đó (chẳng hạn là www.google.com) mà không được thì có nghĩa là không có kết nối internet và ngược lại
Mã:
Function Internet_Check() As Boolean
  On Error Resume Next
  Dim objSvr As Object
  Set objSvr = CreateObject("MSXML2.ServerXMLHTTP.6.0")
  objSvr.Open "GET", "http://www.google.com"
  objSvr.setRequestHeader "Accept", "application/xml"
  objSvr.setRequestHeader "Content-Type", "application/xml"
  objSvr.Send
  Internet_Check = (Err = 0)
End Function
Mã:
Public Sub Check_KetNoi()
    Dim KetNoi As Boolean
    KetNoi = Internet_Check
    If KetNoi = True Then
        MsgBox "May Tinh dang ket noi Internet", 64, "Thông Báo"
    Else
        MsgBox "May Tinh cchua ket noi Internet", 64, "Thông Báo"
    End If
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi nghĩ theo hướng đơn giản: Nếu mở 1 trang web quen thuộc nào đó (chẳng hạn là www.google.com) mà không được thì có nghĩa là không có kết nối internet và ngược lại
Mã:
Function Internet_Check() As Boolean
  On Error Resume Next
  Dim objSvr As Object
  Set objSvr = CreateObject("MSXML2.ServerXMLHTTP.6.0")
  objSvr.Open "GET", "http://www.google.com"
  objSvr.setRequestHeader "Accept", "application/xml"
  objSvr.setRequestHeader "Content-Type", "application/xml"
  objSvr.Send
  Internet_Check = (Err = 0)
End Function
Mã:
Public Sub Check_KetNoi()
    Dim KetNoi As Boolean
    KetNoi = Internet_Check
    If KetNoi = True Then
        MsgBox "May Tinh dang ket noi Internet", 64, "Thông Báo"
    Else
        MsgBox "May Tinh cchua ket noi Internet", 64, "Thông Báo"
    End If
End Sub
Chạy tốt Anh ........ cảm ơn Anh nhiều nhiều

Vì Em đang tập vọc một chương trình nhỏ Viết trên VB6(.dll) kết nối với Exel ...Em viết một file Excel thật chuẩn xong rồi Em úp file *.dll lên Server hay mediafire.com

Khi cần điều chỉnh code thì em úp file (*.dll) lên đó từ File Excel mình vẫn làm việc kết nối Với (*.dll) bình thường ...khi cần thì bấm nút update thì nó tải File (*.dll) mới về thay thế vào File cũ (*.dll)...vậy là ý tưởng Update code chương trình của em thành công ....

Một lần nữa cảm ơn Anh rất nhiều

(lý do thay đổi hàm API vì em viết chung trong *dll nó lỗi xung đột với mấy Private ở đầu ClassModule mà Em không khắc phục được)
 
Upvote 0
(lý do thay đổi hàm API vì em viết chung trong *dll nó lỗi xung đột với mấy Private ở đầu ClassModule mà Em không khắc phục được)

Thật ra dùng API là tốt nhất. Cái hạn chế mà ta gặp phải là:
- Ta chưa đủ trình độ để hiểu sâu về hàm API
- Ta chưa có đủ môi trường để test, chẳng hạn muốn test sự tương thích trên hệ thống 32 và 64 thì ít nhất tôi phải có 3 mấy tính: Win32 + Office32, Win64 + Office32, Win64 + Office64... Ngoài ra còn phải test sự tương thích trên các version khác nhau (Office2003, Office2007, Office2010...)
Khắc phục được các hạn chế nói trên thì việc dùng API không còn là vấn đề, thậm chí nó còn giúp ta tăng cường sức mạnh và tốc độ cho code
(Sắp tới tậu máy tính, thế nào tôi cũng sẽ cài Office64 để "chơi" với mấy hàm API này)
 
Upvote 0
Mình đang sử dụng code sau để kiểm tra xem máy tính có kết nối với Internet hay không...

Hiện tại sử dụng tốt ...nhưng mấy cái hàm API mình không thích vậy mình úp lên nhờ các bạn xem có cách nào viết code khác có chức năng tương tự mà không sử dung hàm API được không....nhờ các bạn xử dùm
xin cảm ơn
PHP:
Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef _
    lpSFlags As Long, ByVal dwReserved As Long) As Long
    Const INTERNET_CONNECTION_MODEM = 1
    Const INTERNET_CONNECTION_LAN = 2
    Const INTERNET_CONNECTION_PROXY = 4
    Const INTERNET_CONNECTION_MODEM_BUSY = 8

Function Internet_Check(Optional ConnectMode As Integer) As Boolean
    Dim Flags As Long
    Internet_Check = InternetGetConnectedState(Flags, 0)
    ConnectMode = Flags
End Function

Public Sub Check_KetNoi()
    Dim KetNoi As Boolean
    KetNoi = Internet_Check
    If KetNoi = True Then
        MsgBox "May Tinh dang ket noi Internet", 64, "Thông Báo"
    Else
        MsgBox "May Tinh cchua ket noi Internet", 64, "Thông Báo"
    End If
End Sub
Bạn nên xài API như ở bài này đi, tốc độ cao và tiện lợi. Nếu chuyển qua 64bit thì đặt điều kiện với nó thôi.
 
Upvote 0
Thật ra dùng API là tốt nhất. Cái hạn chế mà ta gặp phải là:
- Ta chưa đủ trình độ để hiểu sâu về hàm API
- Ta chưa có đủ môi trường để test, chẳng hạn muốn test sự tương thích trên hệ thống 32 và 64 thì ít nhất tôi phải có 3 mấy tính: Win32 + Office32, Win64 + Office32, Win64 + Office64... Ngoài ra còn phải test sự tương thích trên các version khác nhau (Office2003, Office2007, Office2010...)
Khắc phục được các hạn chế nói trên thì việc dùng API không còn là vấn đề, thậm chí nó còn giúp ta tăng cường sức mạnh và tốc độ cho code
(Sắp tới tậu máy tính, thế nào tôi cũng sẽ cài Office64 để "chơi" với mấy hàm API này)
đâu cần tới 3 máy tính đâu anh
chỉ cần cái toshiba của anh là có thể chạy thoải mái .mà không cần mua máy tính .em chỉ cần 100gb ổ cứng còn trống là ok.;;;;;;;;;;;
 
Upvote 0
Thật ra dùng API là tốt nhất. Cái hạn chế mà ta gặp phải là:
- Ta chưa đủ trình độ để hiểu sâu về hàm API
- Ta chưa có đủ môi trường để test, chẳng hạn muốn test sự tương thích trên hệ thống 32 và 64 thì ít nhất tôi phải có 3 mấy tính: Win32 + Office32, Win64 + Office32, Win64 + Office64... Ngoài ra còn phải test sự tương thích trên các version khác nhau (Office2003, Office2007, Office2010...)
Khắc phục được các hạn chế nói trên thì việc dùng API không còn là vấn đề, thậm chí nó còn giúp ta tăng cường sức mạnh và tốc độ cho code
(Sắp tới tậu máy tính, thế nào tôi cũng sẽ cài Office64 để "chơi" với mấy hàm API này)
Hình như là có thể cài 2 hệ điều hành trên 1 máy tính ảo. Em chỉ nghe nói nhưng chưa có nhu cầu thử coi nó ra làm sao.
 
Upvote 0
Hình như là có thể cài 2 hệ điều hành trên 1 máy tính ảo. Em chỉ nghe nói nhưng chưa có nhu cầu thử coi nó ra làm sao.
máy thật không cần máy ảo nha anh hải.tôi đang chơi thử 3 win trên 1 máy
khi khởi Động chỉ cần chọn win mình muốn chạy thôi.
 
Upvote 0
Hình như là có thể cài 2 hệ điều hành trên 1 máy tính ảo. Em chỉ nghe nói nhưng chưa có nhu cầu thử coi nó ra làm sao.
Anh muốn cài mấy hệ cũng được hết ....vấn đề là máy có cấu hình đủ mạnh hay không thôi
Em đang kiếm bản win10 chuẩn một tí mai một em cài... Anh rãnh ghé coi
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn nên xài API như ở bài này đi, tốc độ cao và tiện lợi. Nếu chuyển qua 64bit thì đặt điều kiện với nó thôi.
Mình chưa rành hàm API lắm cũng không biết đặt điều kiện sao nữa...code đó là do mình hack trong một cái phần mềm của người ta dùng (lockxls khóa lại)....
thấy hay copy lưu lại xài vậy...nói ra xấu hổ quá....--=0--=0--=0
 
Upvote 0
các bác cho em hỏi muốn kiểm tra việc truy cập vào 1 máy tính khác ví dụ \\10.1.2.34 thay vì google.com.vn thì làm như thế nào ạ
thanks các bác
 
Upvote 0
Có code nào có thể kiểm tra máy tính đang kết nối với mạng dây hay wifi được không các bạn, nếu có giúp mình đoạn code này với.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom