Форум программистов, компьютерный форум, киберфорум
Pure Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 10

Происходит ошибка Pure Basic

06.04.2016, 11:02. Показов 3476. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу утилу которая автоматически при разрыве связи с инетом через wi-fi его восстанавливает, (winda чёт при всех настройках и
галочках иногда не переподключает)
код:
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
OpenWindow(0, 0, 0, 500, 300, "", #PB_Window_SystemMenu|#PB_Window_Invisible|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
AddSysTrayIcon(1, WindowID(0),ExtractIcon_(0,GetEnvironmentVariable("windir")+"\system32"+"\UserAccountControlSettings.exe",0))
SysTrayIconToolTip(1, "WiFi Status")
 
 
If InitNetwork() = 0
    MessageRequester("", "Ошибка подключения к сети", #MB_OK|#MB_ICONERROR)
 End
EndIf
run:
Connect=OpenNetworkConnection("www.ya.ru", 80)
If Connect
    
    SendNetworkString(Connect,"GET /simple/ HTTP/1.0" + Chr(10) + Chr(10) )
  *Mem=AllocateMemory(100000)
  i=0 : HTML.s=""
  Repeat
    If NetworkClientEvent(Connect) = #PB_NetworkEvent_Data
      ReceiveNetworkData(Connect,*Mem,100000)
      HTML + PeekS(*Mem)
      Break
    EndIf
    Delay(100)
    i+1
    If i>20
     Break
    EndIf
  ForEver
 
  PosIP=FindString(HTML, "Content-Type: text/html", 1)
  If PosIP>0
    IP.s=Trim(Mid(HTML, PosIP+27, Len(HTML) - PosIP - 23))
   Else
    RunProgram("cmd","/c netsh wlan connect name=kv174","")
    MessageRequester("", "Подключение к Wi-Fi!", #MB_OK|#MB_ICONERROR)
    EndIf
EndIf
Goto Run:
дык вот при работе в Pure Basic 4.51(x86) всё компилтруется ,а Pure Basic 5.30(x86) выдает ошибку: (Булевы сравнения могут использоваться только с операторами, такими как If, While,Repeat. используйте Bool() для этого) - шо це? хз. убрал And в первой строке и перенёс CreateGadgetList(WindowID(0)) на вторую строчку и всё запустилось ,но прога в постоянном цикле подключения. (в 4.51 отрабатывает правильно и при ОК прыгает в трей). Что происходит?
...и ещё пытаюсь добавить строки
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Image=LoadImage(0,"\SysTray.ico") ; Получаем идентификатор иконки
   AddSysTrayIcon(4, WindowID(0),Image ) ; Отображаем иконку в трее
   SysTrayIconToolTip(4, "PureBasic") ; Добавляем всплывающую подсказку к иконке
   CreatePopupMenu(1) ; Создаём всплывающее меню
   MenuItem(2,"Выход") ; Добавляем пункт к меню
    
    Repeat
    Event=WaitWindowEvent() ; Получаем идентификатор текущего события в программе
    Type=EventType() ; Узнаём тип события
    Menu=EventMenu() ; Узнаём идентификатор активного пункта меню
     ; Отображаем всплывающее меню при щелчке правой кнопкой мышки по иконке в трее
     If Event=#PB_Event_SysTray And Type=#PB_EventType_RightClick
      DisplayPopupMenu(1, WindowID(0))
     EndIf
      ; Прерываем цикл при щелчке по пункту "Выход" всплывающего меню
     If Event=#PB_Event_Menu And Menu=2
      Break
    EndIf
    Until Event=#PB_Event_CloseWindow
ругается что нет иконки (хотя она есть и все пути до иконки на "латитнице") и кидает с ошибкой на следующую строку - почему так ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.04.2016, 11:02
Ответы с готовыми решениями:

Кусок кода на Pure Basic: поясните что происходит
Есть кусок кода на, наверное, замечательном языке PureBasic (см. изображение), который выводит\рисует в окне (это не очень интересно)...

Видеокурс по Pure Basic
Всем привет)) Вот решил опубликовать видеокурс найденный мной в просторах интернета... В самом курсе указывается сайт которого я не нашёл...

Решил перейти на Pure Basic
уже не плохо знаю VB Закачал пурик установил демо-версию установил у себя папки разработчика для пурика что ещё собрать в...

13
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
06.04.2016, 13:57
Цитата Сообщение от Jon77 Посмотреть сообщение
CreateGadgetList(WindowID(0))
Это вообще не надо в версии 5.30
Цитата Сообщение от Jon77 Посмотреть сообщение
все пути до иконки на "латитнице"
Это путь?
LoadImage(0,"\SysTray.ico")
Это не верно, "\" не нужен

Run:->Goto Run тоже не понятно для чего? Код постоянно зациклен получается.

Всё что нужно сделать, это по таймеру периодически, скажем раз в минуту, пинговать сайт www.ya.ru, если нет ответа, то запустить netsh с параметром.
Всё это делается проще.
0
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 10
06.04.2016, 14:45  [ТС]
я вообще запутался с этим goto
цель такая - проверка наличия сети - если нет ,то востанавливаем и отслеживаем разрыва связи

PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
    Repeat
      OpenWindow(0, 0, 0, 500, 300, "", #PB_Window_SystemMenu|#PB_Window_Invisible|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
 
    If InitNetwork() = 0
        MessageRequester("", "Ошибка подключения к сети", #MB_OK|#MB_ICONERROR)
      EndIf
 
      run:  
 ; Отображаем иконку в трее    
    AddSysTrayIcon(1, WindowID(0),ExtractIcon_(0,GetEnvironmentVariable("windir")+"\system32"+"\UserAccountControlSettings.exe",0))
    SysTrayIconToolTip(1, "WiFi Status") ; Добавляем всплывающую подсказку к иконке
    ;CreatePopupMenu(1) ; Создаём всплывающее меню
    ;==============================МЕНЮ=========================================
   ; MenuItem(1,"Выход") ; Добавляем пункт к меню
    
    ;=======================================================================
    
    CreatePopupMenu(1) ; Создаём всплывающее меню
    MenuItem(2,"Принудительный запуск WIFi") ; Добавляем пункт к меню
    MenuItem(3,"Выход") ; Добавляем пункт Выход к меню
    
    
   
  
;EndIf
 
Connect=OpenNetworkConnection("www.ya.ru", 80)
 
If Connect
 
    SendNetworkString(Connect,"GET /simple/ HTTP/1.0" + Chr(10) + Chr(10) )
  *Mem=AllocateMemory(100000)
  i=0 : HTML.s=""
  
  EndIf
 
 
 
  PosIP=FindString(HTML, "Content-Type: text/html", 1)
  If PosIP>0
    IP.s=Trim(Mid(HTML, PosIP+27, Len(HTML) - PosIP - 23))
   Else
     Jon:
     RunProgram("cmd","/c netsh wlan connect name=kv174","")
    wifi:
    MessageRequester("", "Подключение к Wi-Fi!", #MB_OK|#MB_ICONERROR)
    EndIf
  
Goto run:
End
 
 
 
  If NetworkClientEvent(Connect) = #PB_NetworkEvent_Data
   
    ReceiveNetworkData(Connect,*Mem,100000)
      HTML + PeekS(*Mem)
      Break
    EndIf
    Delay(100)
    i+1
    If i>20
     Break
    EndIf
  ForEver
  ;EndIf
 
  ;EndIf
 ;==========================================События==================================
    Event=WaitWindowEvent() ; Получаем идентификатор текущего события в программе
    Type=EventType() ; Узнаём тип события
    Menu=EventMenu() ; Узнаём идентификатор активного пункта меню
     ; Отображаем всплывающее меню при щелчке правой кнопкой мышки по иконке в трее
     If Event=#PB_Event_SysTray And Type=#PB_EventType_RightClick
      DisplayPopupMenu(1, WindowID(0))
     EndIf
      ; Прерываем цикл при щелчке по пункту "Выход" всплывающего меню
     If Event=#PB_Event_Menu And Menu=2
      Goto jon:
     EndIf
     If Event=#PB_Event_Menu And Menu=3
      Goto run:
     EndIf
   ;Until Event=#PB_Event_CloseWindow
   
  
;Goto Run:
 
 
MessageRequester("", "Выход", #MB_OK|#MB_ICONERROR)
Добавлено через 8 минут
запутался я с этим goto
цель - запустить прогу проверить соединение - если надо восстановить и остараться ризедентом
до принудительного выхода ну и чтоб можно было принудительно запустить сеть
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
    Repeat
      OpenWindow(0, 0, 0, 500, 300, "", #PB_Window_SystemMenu|#PB_Window_Invisible|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
 
    If InitNetwork() = 0
        MessageRequester("", "Ошибка подключения к сети", #MB_OK|#MB_ICONERROR)
      EndIf
 
      run:  
 ; Отображаем иконку в трее    
    AddSysTrayIcon(1, WindowID(0),ExtractIcon_(0,GetEnvironmentVariable("windir")+"\system32"+"\UserAccountControlSettings.exe",0))
    SysTrayIconToolTip(1, "WiFi Status") ; Добавляем всплывающую подсказку к иконке
    ;CreatePopupMenu(1) ; Создаём всплывающее меню
    ;==============================МЕНЮ=========================================
   ; MenuItem(1,"Выход") ; Добавляем пункт к меню
    
    ;=======================================================================
    
    CreatePopupMenu(1) ; Создаём всплывающее меню
    MenuItem(2,"Принудительный запуск WIFi") ; Добавляем пункт к меню
    MenuItem(3,"Выход") ; Добавляем пункт Выход к меню
    
    
   
  
;EndIf
 
Connect=OpenNetworkConnection("www.ya.ru", 80)
 
If Connect
 
    SendNetworkString(Connect,"GET /simple/ HTTP/1.0" + Chr(10) + Chr(10) )
  *Mem=AllocateMemory(100000)
  i=0 : HTML.s=""
  
  EndIf
 
 
 
  PosIP=FindString(HTML, "Content-Type: text/html", 1)
  If PosIP>0
    IP.s=Trim(Mid(HTML, PosIP+27, Len(HTML) - PosIP - 23))
   Else
     Jon:
     RunProgram("cmd","/c netsh wlan connect name=kv174","")
    wifi:
    MessageRequester("", "Подключение к Wi-Fi!", #MB_OK|#MB_ICONERROR)
    EndIf
  
Goto run:
End
 
 
 
  If NetworkClientEvent(Connect) = #PB_NetworkEvent_Data
   
    ReceiveNetworkData(Connect,*Mem,100000)
      HTML + PeekS(*Mem)
      Break
    EndIf
    Delay(100)
    i+1
    If i>20
     Break
    EndIf
  ForEver
  ;EndIf
Repeat
;EndIf
    Event=WaitWindowEvent() ; Получаем идентификатор текущего события в программе
    Type=EventType() ; Узнаём тип события
    Menu=EventMenu() ; Узнаём идентификатор активного пункта меню
     ; Отображаем всплывающее меню при щелчке правой кнопкой мышки по иконке в трее
     If Event=#PB_Event_SysTray And Type=#PB_EventType_RightClick
      DisplayPopupMenu(1, WindowID(0))
     EndIf
      ; Прерываем цикл при щелчке по пункту "Выход" всплывающего меню
     If Event=#PB_Event_Menu And Menu=2
      Goto jon:
     EndIf
     If Event=#PB_Event_Menu And Menu=3
      Goto run:
     EndIf
   Until Event=#PB_Event_CloseWindow
   
  
Goto Run:
 
 
MessageRequester("", "Выход", #MB_OK|#MB_ICONERROR)
Добавлено через 2 минуты
надо запустить сеть если нет и оставаться резидентом или принудительно по кнопке ну и выйти если надо
вот
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
    Repeat
      OpenWindow(0, 0, 0, 500, 300, "", #PB_Window_SystemMenu|#PB_Window_Invisible|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
 
    If InitNetwork() = 0
        MessageRequester("", "Ошибка подключения к сети", #MB_OK|#MB_ICONERROR)
      EndIf
 
      run:  
 ; Отображаем иконку в трее    
    AddSysTrayIcon(1, WindowID(0),ExtractIcon_(0,GetEnvironmentVariable("windir")+"\system32"+"\UserAccountControlSettings.exe",0))
    SysTrayIconToolTip(1, "WiFi Status") ; Добавляем всплывающую подсказку к иконке
    ;CreatePopupMenu(1) ; Создаём всплывающее меню
    ;==============================МЕНЮ=========================================
   ; MenuItem(1,"Выход") ; Добавляем пункт к меню
    
    ;=======================================================================
    
    CreatePopupMenu(1) ; Создаём всплывающее меню
    MenuItem(2,"Принудительный запуск WIFi") ; Добавляем пункт к меню
    MenuItem(3,"Выход") ; Добавляем пункт Выход к меню
    
    
   
  
;EndIf
 
Connect=OpenNetworkConnection("www.ya.ru", 80)
 
If Connect
 
    SendNetworkString(Connect,"GET /simple/ HTTP/1.0" + Chr(10) + Chr(10) )
  *Mem=AllocateMemory(100000)
  i=0 : HTML.s=""
  
  EndIf
 
 
 
  PosIP=FindString(HTML, "Content-Type: text/html", 1)
  If PosIP>0
    IP.s=Trim(Mid(HTML, PosIP+27, Len(HTML) - PosIP - 23))
   Else
     Jon:
     RunProgram("cmd","/c netsh wlan connect name=kv174","")
    wifi:
    MessageRequester("", "Подключение к Wi-Fi!", #MB_OK|#MB_ICONERROR)
    EndIf
  
Goto run:
End
 
 
 
  If NetworkClientEvent(Connect) = #PB_NetworkEvent_Data
   
    ReceiveNetworkData(Connect,*Mem,100000)
      HTML + PeekS(*Mem)
      Break
    EndIf
    Delay(100)
    i+1
    If i>20
     Break
    EndIf
  ForEver
  ;EndIf
Repeat
;EndIf
    Event=WaitWindowEvent() ; Получаем идентификатор текущего события в программе
    Type=EventType() ; Узнаём тип события
    Menu=EventMenu() ; Узнаём идентификатор активного пункта меню
     ; Отображаем всплывающее меню при щелчке правой кнопкой мышки по иконке в трее
     If Event=#PB_Event_SysTray And Type=#PB_EventType_RightClick
      DisplayPopupMenu(1, WindowID(0))
     EndIf
      ; Прерываем цикл при щелчке по пункту "Выход" всплывающего меню
     If Event=#PB_Event_Menu And Menu=2
      Goto jon:
     EndIf
     If Event=#PB_Event_Menu And Menu=3
      Goto run:
     EndIf
   Until Event=#PB_Event_CloseWindow
   
  
Goto Run:
 
 
MessageRequester("", "Выход", #MB_OK|#MB_ICONERROR)
Добавлено через 8 минут
я и тут запутался в правке во блин
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
06.04.2016, 17:08
Цитата Сообщение от Jon77 Посмотреть сообщение
я и тут запутался
Да уж...
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
SystemPath.s=Space(255) 
Result = GetSystemDirectory_(SystemPath.s,255)
 
InitNetwork()
; Процедура проверяет есть ли соединение с интернетом 
Procedure.b ChecInternetConnection() 
  Connect = OpenNetworkConnection("ya.ru",80) 
  If Connect 
    result.b = #True 
    CloseNetworkConnection(Connect) 
  Else 
    result.b = #False 
  EndIf 
  ProcedureReturn result 
EndProcedure 
 
; окно программы у нас невидимое, но зато есть иконка в трее и меню.
OpenWindow(0,80,80,100,100,"OpacityOnTopWindows",#PB_Window_Invisible)
AddWindowTimer(0, 1, 30000); Таймер сработает 2 раза в минуту
; иконка программы в трее берётся из системной DLL или свою 
AddSysTrayIcon(1, WindowID(0),ExtractIcon_(0,SystemPath+"\SetupAPI.dll",22)) ; 22 -я иконка 
 
CreatePopupMenu(1) ; Создаём всплывающее меню
    MenuItem(2,"Принудительный запуск WIFi") ; Добавляем пункт к меню
    MenuItem(3,"Выход")                      ; Добавляем пункт Выход к меню
    
    ; Главный цикл
    Repeat
      Event = WaitWindowEvent()
      ; Проверяем соединение
       If Event = #PB_Event_Timer 
         If ChecInternetConnection()= #False 
           RunProgram("cmd","/c netsh wlan connect name=kv174","")
          EndIf
       EndIf
      ; Cледим за показом меню  
       If Event = #PB_Event_SysTray
        Select EventType()
          Case #PB_EventType_RightClick ; Обработка правой кнопки мышки
          DisplayPopupMenu(1, WindowID(0)) ; показ вспывающего меню
          EndSelect
        EndIf 
        ; Cледим за выбором меню  
       If Event = #PB_Event_Menu
          Select EventMenu()
            Case 2 
              RunProgram("cmd","/c netsh wlan connect name=kv174","")
            Case 3
              Quit = 1
          EndSelect
      EndIf
        
   Until Quit = 1
1
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 10
06.04.2016, 18:21  [ТС]
Pro_grammer, а как прога будет следить за подключением ?
я принудительно отключил инет(и да у меня 2 соединения - по первому идет UDP телевидение без инета
а проверять как раз надо wifi) ни через 30сек. ни чере 2 мин. не срабатывает переподключение. в ручную да
всё ок.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
06.04.2016, 20:44
Цитата Сообщение от Jon77 Посмотреть сообщение
а проверять как раз надо wifi)
Тут может быть только 1 проблема - с проверкой работы Интернет. Я в твоём конкретном случае не заню, работает ли эта проверка. Дополни код проверочными строками:
PureBasic
1
2
3
4
5
6
7
8
9
10
; Проверяем соединение
       If Event = #PB_Event_Timer 
          Debug " Таймер сработал "
         If ChecInternetConnection()= #False
            Debug "Соединения с интернет нет " 
           RunProgram("cmd","/c netsh wlan connect name=kv174","")
           Else
           Debug "Соединения с интернет ЕСТЬ " 
          EndIf
       EndIf
Запускай из Пурика, без компиляуии в режиме отладки. Смотри что пишет отладчик. Если всегда пишет, что есть соединение с интернет, то видимо надо в процедуру вставить проверку из твоего кода.

Добавлено через 16 минут
Можно проверить такую процедуру проверки
PureBasic
1
2
3
4
5
6
7
8
9
10
; Процедура проверяет есть ли соединение с интернетом 
Procedure.b ChecInternetConnection() 
Header$ = GetHTTPHeader("https://ya.ru/")
 If Len(Header$)>100
   result.b = #True
 Else
   result.b = #False 
 EndIf 
  ProcedureReturn result 
EndProcedure
Недостаток этих процедур в том, что они занимают много времени, если отсутствует соединение с интернет. Может запрос длится больше минуты. Вот по этому нет смысла проверять соединение часто, раз в минуту достаточно.
0
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 10
06.04.2016, 23:28  [ТС]
Спасибо! супер.
всё сработало.
1. с заменой только таймера - таймер сработал ,но т.к. 2 линии связи (Lan и WiFi) - Lan включен - WiFi принудительно
отключил - дебаггер всё равно сказал что связь есть и не подключил WiFi.
2. с заменой процедуры проверки всё чётко отработало по той же схеме и WIFI включился.
судя по справке (не очень силён в английском) GetHTTPHeader("https://ya.ru/" принимает отклик от сервера - но тут немного не понятно ,дело в том что через Lan идет и инет и тв (в моём случае интернет не оплачен,и его нет и сервер провайдера отправляет
мне страничку http://10.200.247.2/index.php - что мол не оплачено и т.д.) как же эта процедура определила что типа это не чистый инет?, а я уже хотел как-то определять разрыв соединения wifi через журнал ошибок. (весело в общем...)
Быть может модераторы изменят название темы? ведь на Win7x32_x64 автоматическое подключение срабатывало ,а поставил
себе Win8x64 - дык касяк какой-то. вот и решил я хоть как-то это дело поправить. может кому пригодится.
извените за OFF. ещё раз спасибо, я только начал разбираться с языком. раньше по мелочи писал на Си лет 10 назад ,но как дело дошло до С++ с его классами и всё .... не перевариваю...буду осваивать этот. Удачи!
0
Эксперт по электронике
6787 / 3214 / 335
Регистрация: 28.10.2011
Сообщений: 12,549
Записей в блоге: 7
06.04.2016, 23:52
Цитата Сообщение от Jon77 Посмотреть сообщение
,но т.к. 2 линии связи (Lan и WiFi) - Lan включен - WiFi принудительно
Тогда возможно стоит вернутся к функции OpenNetworkConnection У нее есть параметр LocalIP, позволяющий указать локальный IP. Т. к. у Lan и WiFi адреса разные, то потребуется указать IP WiFi и при проверке доступности интернета, связь через Lan устанавливаться не будет.
0
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 10
07.04.2016, 01:53  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Тогда возможно стоит вернутся к функции OpenNetworkConnection
сейчас попробую....
тут еще провёл тестирование на разных компиляторах, дык вот всё срабатывает только на версии PB5.40.
и ёще OFF : Pb.ver - память - сеть UP/DL - размер проги без упаковки
5.40x64 - 2mb - 8/134b.c - 288.768b - OK!
5.40x32 - 1.3 mb - 8/176c -218.648b - OK! (ну тут всё понятно - битнось.)
4.51x32 - 1mb - 0/24c - 25.600b - постоянно пишет сеть есть - и не отрабатывает
Вопрос - почему так ? - и компилятор не ругается.

Добавлено через 17 минут
PureBasic
1
2
3
4
5
6
7
8
9
10
Procedure.b ChecInternetConnection() 
  Connect = OpenNetworkConnection("192.168.100.1",80)  ; адрес который выдаёт DHCP
  If Connect 
    result.b = 1 
    CloseNetworkConnection(Connect) 
  Else 
    result.b = 0 
  EndIf 
  ProcedureReturn result 
EndProcedure
неа - пишет сеть есть - при подключенном Lan

Добавлено через 15 минут
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
SystemPath.s=Space(255) 
Result = GetSystemDirectory_(SystemPath.s,255)
 
InitNetwork()
;======================================================= Процедура 1 проверяет есть ли соединение с интернетом ==============================================;
Procedure.b ChecInternetConnection() 
  Connect = OpenNetworkConnection("ya.ru",80) 
  If Connect 
    result.b = 0 
    CloseNetworkConnection(Connect) 
  Else 
    result.b = 1
  EndIf 
  ProcedureReturn result 
EndProcedure 
;========================================================Процедура 2 проверяет есть ли соединение с интернетом ==============================================
; Процедура проверяет есть ли соединение с интернетом 
;Procedure.b ChecInternetConnection() 
;Header$ = GetHTTPHeader("https://ya.ru/")
; If Len(Header$)>100
;  result.b = #True
; Else
;   result.b = #False 
; EndIf 
;  ProcedureReturn result 
;EndProcedure 
;=====================================================================================================================================================
; окно программы у нас невидимое, но зато есть иконка в трее и меню.
OpenWindow(0,80,80,100,100,"OpacityOnTopWindows",#PB_Window_Invisible)
AddWindowTimer(0, 1, 30000); Таймер сработает 2 раза в минуту
; иконка программы в трее берётся из системной DLL или свою 
AddSysTrayIcon(1, WindowID(0),ExtractIcon_(0,SystemPath+"\SetupAPI.dll",22)) ; 22 -я иконка 
 
CreatePopupMenu(1) ; Создаём всплывающее меню
    MenuItem(2,"Принудительный запуск WIFi") ; Добавляем пункт к меню
    MenuItem(3,"Выход")                      ; Добавляем пункт Выход к меню
    
    ; Главный цикл
    Repeat
      Event = WaitWindowEvent()
 ;==============================================Вариант без проверки=================================================================================
      ; Проверяем соединение
      ; If Event = #PB_Event_Timer 
      ;  If ChecInternetConnection()= #False 
      ;     RunProgram("cmd","/c netsh wlan connect name=kv174","")
       ;   EndIf
        ;EndIf
;=============================================Вариант с проверкой каждые 30 сек ========================================================================        
        ; Проверяем соединение
       If Event = #PB_Event_Timer 
          Debug " Таймер сработал "
         If ChecInternetConnection()= 0
            Debug "Соединения с интернет нет " 
           RunProgram("cmd","/c netsh wlan connect name=kv174","")
           Else
           Debug "Соединения с интернет ЕСТЬ " 
          EndIf
        EndIf 
 ;====================================================================================================================================================       
      ; Cледим за показом меню  
       If Event = #PB_Event_SysTray
        Select EventType()
          Case #PB_EventType_RightClick ; Обработка правой кнопки мышки
          DisplayPopupMenu(1, WindowID(0)) ; показ вспывающего меню
          EndSelect
        EndIf 
        ; Cледим за выбором меню  
       If Event = #PB_Event_Menu
          Select EventMenu()
            Case 2 
              RunProgram("cmd","/c netsh wlan connect name=kv174","")
            Case 3
              Quit = 1
          EndSelect
      EndIf
        
   Until Quit = 1
так пишет соединения нет и в цикле подключает
0
Эксперт по электронике
6787 / 3214 / 335
Регистрация: 28.10.2011
Сообщений: 12,549
Записей в блоге: 7
07.04.2016, 09:54
Цитата Сообщение от Jon77 Посмотреть сообщение
неа - пишет сеть есть - при подключенном Lan
По ссылке переходили? Разве параметр LocalIP первый слева?
0
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 10
07.04.2016, 20:49  [ТС]
InitNetwork()
run:
delay.l=3000
ConnectionID = OpenNetworkConnection("208.100.34.90.", 2303,#PB_Network_UDP)
Delay(delay)
Debug ConnectionID
ConnectionID = OpenNetworkConnection("208.100.34.90", 2303,#PB_Network_UDP)
Delay(delay)
Debug ConnectionID
ConnectionID = OpenNetworkConnection("0.0.0.0.", 2303,#PB_Network_UDP)
Delay(delay)
Debug ConnectionID
ConnectionID = OpenNetworkConnection("0.0.0.0", 2303,#PB_Network_UDP)
Delay(delay)
Debug ConnectionID
Goto run:


1. без WIFI (чере 1 запрос)
2. WIFI и Lan подключено
Миниатюры
Происходит ошибка Pure Basic   Происходит ошибка Pure Basic  
0
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 10
07.04.2016, 20:54  [ТС]
как отделить "мух" от "котлет" и сказать проге чтоб не трогала (или фильтровала) Lan - есть WIFI или нет
0
Эксперт по электронике
6787 / 3214 / 335
Регистрация: 28.10.2011
Сообщений: 12,549
Записей в блоге: 7
07.04.2016, 21:03
Цитата Сообщение от Jon77 Посмотреть сообщение
и сказать проге чтоб не трогала (или фильтровала) Lan - есть WIFI или нет
Выше про это писал.
Цитата Сообщение от locm Посмотреть сообщение
Т. к. у Lan и WiFi адреса разные, то потребуется указать IP WiFi и при проверке доступности интернета, связь через Lan устанавливаться не будет.
0
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 10
07.04.2016, 22:14  [ТС]
Кликните здесь для просмотра всего текста
SystemPath.s=Space(255)
Result = GetSystemDirectory_(SystemPath.s,255)

InitNetwork()
;======================================= ================ Процедура 1 проверяет есть ли соединение с интернетом ======================================== ======;
;Procedure.b ChecInternetConnection()
; Connect = OpenNetworkConnection("ya.ru",80)
; If Connect
; result.b = #True
; CloseNetworkConnection(Connect)
; Else
; result.b = #False
; EndIf
; ProcedureReturn result
;EndProcedure
;======================================= =================Процедура 2 проверяет есть ли соединение с интернетом ======================================== ======
; Процедура проверяет есть ли соединение с интернетом
Procedure.b ChecInternetConnection()
Header$ = GetHTTPHeader("https://ya.ru/")
If Len(Header$)>100
result.b = #True
Else
result.b = #False
EndIf
ProcedureReturn result
EndProcedure
;======================================= ======================================== ======================================== ==============================
; окно программы у нас невидимое, но зато есть иконка в трее и меню.
OpenWindow(0,80,80,100,100,"OpacityOnTop Windows",#PB_Window_Invisible)
AddWindowTimer(0, 1, 30000); Таймер сработает 2 раза в минуту
; иконка программы в трее берётся из системной DLL или свою
AddSysTrayIcon(1, WindowID(0),ExtractIcon_(0,SystemPath+"\ SetupAPI.dll",22)) ; 22 -я иконка

CreatePopupMenu(1) ; Создаём всплывающее меню
MenuItem(2,"Принудительный запуск WIFi") ; Добавляем пункт к меню
MenuItem(3,"Выход") ; Добавляем пункт Выход к меню

; Главный цикл
Repeat
Event = WaitWindowEvent()
;======================================= =======Вариант без проверки================================ ======================================== =========
; Проверяем соединение
; If Event = #PB_Event_Timer
; If ChecInternetConnection()= #False
; RunProgram("cmd","/c netsh wlan connect name=kv174","")
; EndIf
;EndIf
;======================================= ======Вариант с проверкой каждые 30 сек ======================================== ================================
; Проверяем соединение
If Event = #PB_Event_Timer
Debug " Таймер сработал "
If ChecInternetConnection()= #False
Debug "Соединения с интернет нет "
RunProgram("cmd","/c netsh wlan connect name=kv174","")
Else
Debug "Соединения с интернет ЕСТЬ "
EndIf
EndIf
;======================================= ======================================== ======================================== =============================
; Cледим за показом меню
If Event = #PB_Event_SysTray
Select EventType()
Case #PB_EventType_RightClick ; Обработка правой кнопки мышки
DisplayPopupMenu(1, WindowID(0)) ; показ вспывающего меню
EndSelect
EndIf
; Cледим за выбором меню
If Event = #PB_Event_Menu
Select EventMenu()
Case 2
RunProgram("cmd","/c netsh wlan connect name=kv174","")
Case 3
Quit = 1
EndSelect
EndIf

Until Quit = 1

так же всё срабатыват

а я я хочу по заголовкам тот котрой скрвер отправил офилтровать

Кликните здесь для просмотра всего текста
InitNetwork()
run:
delay.l=3000
ConnectionID = OpenNetworkConnection("208.100.34.90.", 2303,#PB_Network_UDP)
Delay(delay)
Debug ConnectionID
ConnectionID = OpenNetworkConnection("208.100.34.90", 2303,#PB_Network_UDP)
Delay(delay)
Debug ConnectionID
ConnectionID = OpenNetworkConnection("0.0.0.0.", 2303,#PB_Network_UDP)
Delay(delay)
Debug ConnectionID
ConnectionID = OpenNetworkConnection("0.0.0.0", 2303,#PB_Network_UDP)
Delay(delay)
Debug ConnectionID
Goto run:


выше писал что у меня и wifi(ворую у соседа) и лан((udp - только) - пока не оплачен inet - после оплаты там появится и и нет !!!
как фильтровать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.04.2016, 22:14
Помогаю со студенческими работами здесь

Копирование файла в Pure Basic
Я тут спросить хотел, у меня есть файл. я хочу его скопировать в другую папку. А как мне это сделать в Pure Basic?

Ограничения демо-версии Pure Basic
Всем привет ! Хотел бы узнать чем ограничена демо - версия Pure Basica ? Какие приложения на ней нельзя будет создать ?

Нужна свежая версия Pure Basic
Всем форумчанам здравствуйте! Могут ли добрые люди кинуть сюда или в лс ссылки свежой полной версии пурика? А то я до сих пор на...

Pure Basic: производительность по отношению к другим языкам
Хотел бы узнать какой basic по шустрее да и вообще сравнение с другими языками, может у кого то есть ссылки или статьи? Очень...

Scintilla создала новый пакет - Pure Basic 5.10
Привет, Форумчане! Предпраздничный подарок! Scintilla создала новый пакет - Pure Basic 5.10 с многими добавлениями и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru