Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите с программой

2.1K
27 сентября 2003 года
artlav
20 / / 27.09.2003
Так, задача такая:

Есть компьютер, который подключается к интернету через модем. Нужна программа, которая при подключении к интернету будет выполнять определённое действие.
Программа запускается вместе с компьютером, содержит одну форму со свойством visible=false.
После подключения эта форма должна появиться.

Помогите пожалуйста реализовать это на VB6.
258
29 сентября 2003 года
SergeySV
1.5K / / 19.03.2003
Есть такая API функция: InetIsOffline проверяет подсоединение к инету. Попробуй через нее, проверяя по таймеру, например каждую секунду.

Declare Function InetIsOffline Lib "url.dll" (ByVal dwFlags As Long) As Long

· dwFlags
Input flags for the function. This must be set to zero.

Returns TRUE if the local system in not currently connected to the Internet. Returns FALSE if the local system is connected to the Internet or if no attempt has yet been made to connect to the Internet.

Примерчик:
Private Declare Function InetIsOffline Lib "url.dll" (ByVal dwFlags As Long) As Long
Private Sub Form_Load()
'InetIsOffline returns 0 if you're connected
MsgBox "Are you connected to the internet? " + CStr(CBool(Not (InetIsOffline(0)))), vbInformation
End Sub
2.1K
29 сентября 2003 года
artlav
20 / / 27.09.2003
Спасибо за ответ, но данная функция похоже не работает: я проверил на Win XP и Win 98, в независимости от наличия соединения всегда возвращает true. Я что-то делаю не так?
258
29 сентября 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by artlav
Спасибо за ответ, но данная функция похоже не работает: я проверил на Win XP и Win 98, в независимости от наличия соединения всегда возвращает true. Я что-то делаю не так?



Да нет врядли, просто функции значит очень специфичные и не подходят для этого, сам я ими никогда не пользовался, не могу судить (да и иент у меня по локалке) так что не могу проверить, поробуй еще тогда:

Private Declare Function InternetAttemptConnect Lib "wininet" (ByVal dwReserved As Long) As Long
Private Sub Form_Load()
If InternetAttemptConnect(ByVal 0&) = 0 Then
MsgBox "You can connect to the Internet", vbInformation
Else
MsgBox "You cannot connect to the Internet", vbInformation
End If
End Sub

Типа если не может, значит инета нету.

P.S. правда эта функция не поддерживается в Win95/98/Me

258
29 сентября 2003 года
SergeySV
1.5K / / 19.03.2003
А вот еще прикольная функция и два примерчика к ней (один общий, другой попроще, как раз под твои нужды), только этой функции для работы нужен установленный на компе IE4.

Код:
!!!!!!!!!!!!!!!!!!!!!!
Первый примерчик:
!!!!!!!!!!!!!!!!!!!!!!
Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long
Private Sub Form_Load()
    MsgBox "Is connected to the internet: " + CStr(IsConnected)
End Sub
Public Function IsConnected() As Boolean
    If InternetGetConnectedState(0&, 0&) = 1 Then
        IsConnected = True
    Else
        IsConnected = False
    End If
End Function

!!!!!!!!!!!!!!!!!!!!!!
Второй пример:
!!!!!!!!!!!!!!!!!!!!!!

Private Const INTERNET_CONNECTION_CONFIGURED = &H40
Private Const INTERNET_CONNECTION_LAN = &H2
Private Const INTERNET_CONNECTION_MODEM = &H1
Private Const INTERNET_CONNECTION_OFFLINE = &H20
Private Const INTERNET_CONNECTION_PROXY = &H4
Private Const INTERNET_RAS_INSTALLED = &H10
Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long
Private Sub Form_Load()
    Dim Ret As Long
    Me.AutoRedraw = True
    'retrieve the connection status
    InternetGetConnectedState Ret, 0&
    'show the result
    If (Ret And INTERNET_CONNECTION_CONFIGURED) = INTERNET_CONNECTION_CONFIGURED Then Me.Print "Local system has a valid connection to the Internet, but it may or may not be currently connected."
    If (Ret And INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN Then Me.Print "Local system uses a local area network to connect to the Internet."
    If (Ret And INTERNET_CONNECTION_MODEM) = INTERNET_CONNECTION_MODEM Then Me.Print "Local system uses a modem to connect to the Internet."
    If (Ret And INTERNET_CONNECTION_OFFLINE) = INTERNET_CONNECTION_OFFLINE Then Me.Print "Local system is in offline mode."
    If (Ret And INTERNET_CONNECTION_PROXY) = INTERNET_CONNECTION_PROXY Then Me.Print "Local system uses a proxy server to connect to the Internet."
    If (Ret And INTERNET_RAS_INSTALLED) = INTERNET_RAS_INSTALLED Then Me.Print "Local system has RAS installed."
End Sub
2.1K
29 сентября 2003 года
artlav
20 / / 27.09.2003
Вот это уже другое дело, спасибо большое!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог