PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   iCarDS (http://pccar.ru/forumdisplay.php?f=121)
-   -   Полезные утилиты и Твики iCarDS (http://pccar.ru/showthread.php?t=24392)

duzzy 21.11.2017 13:53

seriousstas

Вот зацени как воркает))) видос

Проверял на трех компах, все хорошо ;)

120705 21.11.2017 15:07

Цитата:

Сообщение от duzzy (Сообщение 395094)
seriousstas
видос

Видос не работает....

duzzy 21.11.2017 15:42

seriousstas

Цитата:

По iCarMainScript проводил наблюдения по нагрузке на разных ПК - небыло ее . те 0.
Он для настроек звука создан и я все засунул в один общий цикл . Те не 300 , а по установке , скажем 3000 .
Так я же не говорю что не надо))) если хочешь можешь и в него вставить. Просто время цикла нужно побольше делать примерно 3000 мс. как ты и написал.

У меня в него оконный функционал вставлен поэтому 300 мс. самое то. А вспомогательные скрипты я отдельно гружу через autorunner. Мне так проще.

Цитата:

При клике на дефолтную виндовую иконку сразу подключает .
Может есть способ просто уменьшить опрос через реестр где-то ?
задал вопрос на oszone.net об этом ..
Или делать опрос принудительно раз в 5 сек при отсутствии пинга через скрипт ?
Странно, я проверял не один раз на разных компах с разной сетью и адаптерами, и все нормально отрабатывало.

Работает она так...

- Первый старт это получение параметров из системы через консольную утилиту netsh.exe.
Из нее он получает...
interface= --- название адаптера
ssid= --- название сети
profile= --- профиль подключения

- Затем проверяет адаптер, подключен или нет. Если не подключен включает.

- Затем пошел цикл проверки. Пингует сеть, если все хорошо ставит зеленую иконку в трее. Если пинг по двум адресам без ответа пытается подключится к сети, затем опять пингует, если есть ответ ставит зеленую иконку в трее, если ответа нет ставит красную иконку и пытается включить адаптер а затем подключится к сети... и уходит в начало цикла.

Схема как раз и построена на пинге в цикле...
т.е.

пингуем
if(true)
если есть ответ ставим зеленую иконку
------else()
------ответа нет ставим красную иконку пытаемся подключится к сети
------пингуем
------------if(true)
------------если есть ответ ставим зеленую иконку
------------else()
------------ответа нет ставим красную иконку включаем адаптер затем подключаемся к сети
----уходим в начало цикла



По поводу...
Цитата:

Может есть способ просто уменьшить опрос через реестр где-то ?
Не совсем понял про какой ты опрос ?
Если про время ответа от пинга, то это время никак не влияет на время цикла. Это просто время ожидания ответа после отправки запроса.

Время цикла скрипта можно хоть до 10 мс. уменьшить, но нам то нужно получить ответ с адреса на который мы отправили запрос... а раз ответа с адреса нет значит будет false и соответственно "Нет подключения".
Это почти стандартная схема как и у мелкомягких, у них почти также работает сетевой зонд...http://jpegshare.net/images/ad/7c/ad...1a5439b28a.jpg иконка в трее при подключении к сети.

duzzy 21.11.2017 15:49

120705
Цитата:

Видос не работает....
Спасибо!
Да это гребаный ютюб))) со своими авторскими правами...
Сейчас перезалью без звука.

seriousstas 21.11.2017 15:59

Цитата:

Может есть способ просто уменьшить опрос через реестр где-то ?
Не совсем понял про какой ты опрос ?
Я как-раз про него :
Цитата:

сетевой зонд... иконка в трее при подключении к сети.
он сканит раз в минуту - может можно быстрее сделать через реестр ?
как только я кликаю по иконке - тут-же подключается ..

seriousstas 21.11.2017 16:10

Цитата:

Странно, я проверял не один раз на разных компах с разной сетью и адаптерами, и все нормально отрабатывало
.
Видео :
https://www.youtube.com/watch?v=Ee0l...ature=youtu.be

duzzy 21.11.2017 16:35

seriousstas

Я понял почему, спасибо за видос, нужны пробы)))
Введи плиз в командной строке при отключенном сетевом соединении.

netsh.exe wlan connect [профиль] [имя сети] "Беспроводная сеть"

пример:
netsh.exe wlan connect DIR-777 DIR-777 "Беспроводная сеть"

seriousstas 21.11.2017 16:47

Цитата:

Я понял почему, спасибо за видос, нужны пробы)))
я тоже ))
связано с заптретами , мать их ..
замени яндекс на
Ping("www.google.com", 250)
Цитата:

если хочешь можешь и в него вставить. Просто время цикла нужно побольше делать примерно 3000 мс. как ты и написал.
попробую , если поделишься исходниками ..

Вопрос здесь задал по теме .
Посмотрим , мож ответят чего ..

duzzy 21.11.2017 16:55

seriousstas

Ахаха... я всегда забываю про эти гребаные блокировки. Эх блин убрать бы всех этих дегенератов сверху и сразу жизнь наладится)))

А что выдает ком. строка при вводе netsh.exe wlan connect [профиль] [имя сети] "Беспроводная сеть" ?

у тебя просто профиль и ссид отличаются...
http://jpegshare.net/thumbs/66/ca/66...ff1f418952.jpg
а у меня они одинаковые...
ssid=DIR-777
profile=DIR-777


Цитата:

попробую , если поделишься исходниками ..
поделюсь конечно, наладим тулзу... код почищу от мусора и скину ;)

seriousstas 21.11.2017 17:00

пробовал и так
netsh.exe wlan connect My ASUS 2 My ASUS 2 "Беспроводная сеть"
и так
netsh.exe wlan connect [My ASUS 2] [My ASUS 2] "Беспроводная сеть"
ругается на неправильную команду

duzzy 21.11.2017 17:02

seriousstas

Не не так...
вводи так

netsh.exe wlan connect My ASUS 2 My ASUS "Беспроводная сеть"

---------------------------профиль-----имя----------------------------

если подключится к сети скину другой вариант с исправлением...

seriousstas 21.11.2017 17:05

Цитата:

у тебя просто профиль и ссид отличаются...
видел и переименовал на My ASUS 2 в смарте.
теперь определило так
[settings]
interface=Беспроводная сеть
ssid=My ASUS 2
profile=My ASUS 2
ping_addr1=8.8.8.8
ping_addr2=www.yandex.ru
ping_timeout=5000
check_timeout=5000
debug=False
messages=False
fist_run=False

seriousstas 21.11.2017 17:07

netsh.exe wlan connect My ASUS 2 My ASUS "Беспроводная сеть"
так-же и
netsh.exe wlan connect My ASUS 2 My ASUS 2 "Беспроводная сеть"
Цитата:

Один или несколько параметров команды отсутствуют либо недопустимы.

Использование: connect [name=]<строка> [[ssid=]<строка>] [[interface=]<строка>]

duzzy 21.11.2017 17:40

seriousstas

Странно как то...

вот смотри что у меня пишет когда подключаешь отключенную сеть...
http://jpegshare.net/thumbs/46/d9/46...99b1926e95.jpg

т.е. у меня так..

netsh.exe wlan connect DIR-777 DIR-777 "Беспроводная сеть"

первый DIR-777 --- это профиль
второй DIR-777 --- это ссид (имя сети)
"Беспроводная сеть" --- это название интерфейса
...
странно должно отрабатывать, утилита то одна и таже)))

попробуй в ковычки профиль и имя сети поставить...

netsh.exe wlan connect "My ASUS 2" "My ASUS 2" "Беспроводная сеть"

seriousstas 21.11.2017 18:17

Цитата:

Сообщение от duzzy (Сообщение 395116)
seriousstas

Странно как то...

вот смотри что у меня пишет когда подключаешь отключенную сеть...
http://jpegshare.net/thumbs/46/d9/46...99b1926e95.jpg

т.е. у меня так..

netsh.exe wlan connect DIR-777 DIR-777 "Беспроводная сеть"

первый DIR-777 --- это профиль
второй DIR-777 --- это ссид (имя сети)
"Беспроводная сеть" --- это название интерфейса
...
странно должно отрабатывать, утилита то одна и таже)))

попробуй в ковычки профиль и имя сети поставить...

netsh.exe wlan connect "My ASUS 2" "My ASUS 2" "Беспроводная сеть"

да , так подключает моментально

duzzy 21.11.2017 18:34

seriousstas

Ну вот и за..бись, значит нужно кавычечки вкорячивать.
Хорошо сейчас поправлю утилиту и скину новую версию.

----------------------------------------------------------------------------------------

Вот дополнил кавычками)) и по умолчанию изменил второй адрес(оба гугловские)...
ping_addr1=8.8.8.8
ping_addr2=8.8.4.4

Пробуй :smile2:

Скачать
...

Видос как работает.

...

seriousstas 21.11.2017 22:36

Цитата:

Сообщение от duzzy (Сообщение 395126)
seriousstas

Ну вот и за..бись, значит нужно кавычечки вкорячивать.
Хорошо сейчас поправлю утилиту и скину новую версию.

----------------------------------------------------------------------------------------

Вот дополнил кавычками)) и по умолчанию изменил второй адрес(оба гугловские)...
ping_addr1=8.8.8.8
ping_addr2=8.8.4.4

Пробуй :smile2:

Скачать
...

Видос как работает.

...

Первых два запуска не работало)) (уже даже начал писать об этом)
А далее прошло все тесты ..!
Было пару раз (иконка винды) - соединение-разрыв-соединения на протяжении секунды.
Вобщем - хорошая работа!
Спасибо , оч полезная штуковина !
Наш Киевстар недавно расщедрился на полный безлим 3G за 5$ в месяц + бонусы + можно сделать сим-пару и тд., что приятно удивило .
Теперь катаюсь с видео-радио онлайн ..
Цитата:

наладим тулзу... код почищу от мусора и скину
:beer:

duzzy 22.11.2017 01:21

seriousstas

Цитата:

Первых два запуска не работало))
Не пугай а то я уже начал какать)))))

По идее должно работать нормально потому как скрипт по сути просто враппер/обертка для виндовой консольной утилиты netsh.exe.
Но и скрипт тоже важен так как выступает в роли сетевого зонда.
До меня сначала долго доходило))) почему пинг в автоит не отрабатывает, пока не прочитал внимательно справку)))

Success: the roundtrip-time in milliseconds ( greater than 0 ).
Failure: 0 if host is not pingable or other network errors occurred and sets the @error flag to non-zero.
@error: 1 = Host is offline
2 = Host is unreachable
3 = Bad destination
4 = Other errors

т.е. получается что почти при любом раскладе мы получаем >0 :smile1:
а если читать внимательно))) то начинаешь понимать что все это хозяйство нужно правильно описывать, а не писать с дуру...
If Not (Ping("www.pornhub.com", 250) Or Ping("www.redtube.com", 250)) Then...
а потом удивляться почему не работает)))

Цитата:

Спасибо , оч полезная штуковина !
Пожалуйста !
Рад что мои приблуды тебе помогают :smile2:

Цитата:

Наш Киевстар недавно расщедрился на полный безлим 3G
Да я тоже на безлимите после приобретения китовской лопаты(ребята доковыряли уже до 7.1.1 ведра)))))
Но радио пока редко слушаю и то в основном...
http://jpegshare.net/thumbs/04/a9/04...997fbefd05.jpg
Время не всегда есть, да и устаю что уже не до музыки и радио... быстрей домой и отдыхать)))

seriousstas 22.11.2017 03:26

Цитата:

Не пугай
не буду, но
Цитата:

[settings]
interface=Беспроводная сеть
ssid=My ASUS 2 2
profile=My ASUS 2 2
ping_addr1=8.8.8.8
ping_addr2=8.8.4.4
ping_timeout=5000
check_timeout=5000
debug=False
messages=False
fist_run=False
:dntknw:
Вот чего начал выдавать при последующих запусках
Профайл в списке с двойкой ,
название в смарте My ASUS и подлючается если поправить :
ssid=My ASUS
profile=My ASUS 2
:rolleyes2:

duzzy 23.11.2017 18:12

seriousstas

Цитата:

Вот чего начал выдавать при последующих запусках
Ну это не утилита, это винда что-то косячит)))
Утилита просто берет и записывает значения в ини файл.
т.е. например:
если у тебя был
ssid=My ASUS
ты делаешь перенастройку fist_run=true, утилита на старте берет из консоли ssid и перезаписывает значение ssid в ини файле.


Можешь сам вручную проверить значения...
Введи в ком. строке

netsh.exe wlan show interfaces

получишь такое вот сообщение...
http://jpegshare.net/thumbs/12/c0/12...5ce74f5488.jpg

Позже вечером выложу финальную версию :smile2:
...

seriousstas 23.11.2017 23:19

Цитата:

это винда что-то косячит)))
это первое о чем подумал вчера ..
Повторить не получается )
Цитата:

Позже вечером выложу финальную версию
Ок ! Будут еще изменения ?

duzzy 24.11.2017 00:17

seriousstas

Цитата:

Повторить не получается )
:) тут просто есть один момент, когда в ини пишешь переменную она перезаписывается полностью, т.е. ошибки с дублем или ошибочными остатками маловероятны.

Цитата:

Ок ! Будут еще изменения ?
По самому механизму вкл.\выкл. не будет изменений, а вот по логике работы утилиты будут + некоторые проверки и легкая чистка)))

seriousstas 24.11.2017 01:30

Цитата:

Сообщение от duzzy (Сообщение 395268)
seriousstas


:) тут просто есть один момент, когда в ини пишешь переменную она перезаписывается полностью, т.е. ошибки с дублем или ошибочными остатками маловероятны.


По самому механизму вкл.\выкл. не будет изменений, а вот по логике работы утилиты будут + некоторые проверки и легкая чистка)))

Цитата:

а вот по логике работы утилиты будут
интересно )

duzzy 24.11.2017 01:32

Network Checker & WiFi Switcher

Небольшая утилита по образу и подобию "WiFi Монитора".
Сделана для автоматического подключения при разрыве сетевого подключения.
А так же включения wifi адаптера, если он был выключен.
Работает при помощи виндовой консольной утилиты netsh.exe.

http://jpegshare.net/images/04/a0/04...518c848bda.jpg

При первом старте net_checker.exe, сетевое соединение должно быть активным!!!

Т.е. wifi - адаптер должен быть включен, а необходимая сеть подключена.
Это единоразовая настройка.

Видос как работает.

----------------------------------------------------------------------------------------
При необходимости перенастройки параметров адаптера и сети,
в ини файле заменить параметр fist_run=false на fist_run=true,
затем включить адаптер, подключиться к сети и запустить net_checker.exe.
Через несколько секунд после запуска появится таблица с настройками сети и адаптера.
Таблицу нужно закрыть, она для наглядности заполнения параметров
в ини файле.

У утилиты есть настройки в ини файле...
[settings]
interface=Беспроводная сеть --- собственно сам wifi
ssid=DIR-777 --- название сети
profile=DIR-777 --- профиль подключения
ping_addr1=8.8.8.8 --- первый адрес для пинга
ping_addr2=8.8.4.4 --- второй адрес для пинга
ping_timeout=5000 --- таймаут пинга
check_timeout=5000 --- время цикла проверок
debug=False --- режим отладки(запись в файл debug_log.txt событий)
messages=False --- вкл.\выкл. сообщение о недоступной сети
fist_run=False --- вкл.\выкл. режима первого старта утилиты
tray_messages=false --- вкл.\выкл. сообщение о недоступной сети в трее

----------------------------------------------------------------------------------------
Ответы по возможным вопросам:

- ping_addr1, ping_addr2 - пингует по двум адресам т.е. ping_addr1=8.8.8.8 и ping_addr2=8.8.4.4 - должны быть заполнены(выделено жирным).

- ping_timeout - таймаут пинга - это время для ожидания ответа после запроса, меньше делать не советую(на скорость работы скрипта увеличенное время не влияет).

- check_timeout - время цикла проверок - это время отработки цикла скрипта, уменьшать до мс.(например: 300) не советую, это не ускорит работу скрипта, но зато усилит нагрузку на систему и будут сыпаться ошибки подключения.

- debug - режим отладки - в принципе почти бесполезен))) для пользователя, он больше был нужен мне.

- messages - сообщение о недоступной сети - полезная штука, дает понять когда отвалилась сеть, если ненужно можно выключить(false), включить(true).

- fist_run - первый старт - необходим для взятия параметров из системы, отрабатывает один раз. Повторное использование нужно только при перенастройке сетевых параметров.(выключить(false), включить(true).)

И да чуть не забыл)), скрипт работает с иконками в трее, показывая состояние сети и адаптера.
Их можно поменять на свои более информативные, переименовав свои иконки именами образцов в папке icons.
Лежать они должны в папке icons рядом со скриптом.

/---------------------------------------------------------------------------------------/
Перезалил архив 24.11.2017 13:14
- Убрал лишнее переподключение.
(Теперь нет разрыва сетевого подключения. Только одно подключение при разрыве связи.)
/---------------------------------------------------------------------------------------/
Перезалил архив 24.11.2017 5:00 утра
- Исправил ошибку проверки адаптера
/---------------------------------------------------------------------------------------/
Перезалил архив 24.11.2017 3:57 утра
- Добавил проверку на выключенный адаптер и информационные сообщения.
(информационные сообщения: "Подключаемся к сети:"; "Включаем WiFi адаптер..."
для того чтобы было понятно какие действия происходят)
/---------------------------------------------------------------------------------------/

Скачать
...

seriousstas 24.11.2017 03:11

Вложений: 1
duzzy
Мне кажется самый первый вариант , где проверялось именно соединение через _Wlan_QueryInterface ,а не пинг более правильный
Код:

If _Wlan_QueryInterface() = "Connected" Then
        Local $asConnection = _Wlan_QueryInterface($WLAN_INTF_OPCODE_CURRENT_CONNECTION)
        $sCurrentProfile = $asConnection[2]
Else

Новый вариант подойдет для домашней сети , которая более стабильна

Я пару раз получал потерю интернета полностью ..
На смарте есть , подключение есть,а на ПК инета нет ..
Вероятно частое переподключение (а этого не избежать в движении) валит драйвер . Вылечивается перезапуском системы . Что кажет диагностика (скрин ниже)

И еще - скажем я делаю запрос к какому-то адресу через Хром . Если есть потеря сигнала смартфоном, но соединение остается - будет ожидание ,
а если передернуть - страница не откроется, а напишет про отсутствие соединения :
Цитата:

соединение разорвано

Выявлено изменение в сети.
ERR_NETWORK_CHANGED
+ иконка (лесенка) время от времени моргает, что говорит о не нужном переподключении ..

duzzy 24.11.2017 04:04

seriousstas
Цитата:

Мне кажется самый первый вариант , где проверялось именно соединение через _Wlan_QueryInterface
Да так лучше, но udf нативвайвай вываливает кучу ошибок)))... а как его исправить я даже не представляю)))

У меня пару дней работает и не валит, правда у меня 7-ка стоит, но я не думаю что это что то меняет.

Если не нужно переподключение адаптера можешь в исходнике из цикла убрать wifi_enable_adapter() и тогда будет только подключение сети при разрыве соединения. Но тогда не будет вкл. адаптер...
Могу попробовать проверку на выключенный сделать, но нужны тесты, потому как на одном компе может быть все хорошо а на другом не работать.

Цитата:

На смарте есть , подключение есть,а на ПК инета нет ..
Как то странно...
А с дровами точно все порядке ?
Я к чему это пишу, дома три компа и за несколько дней я их насиловал по черному)))
Бесконечное выкл.вафли и отключение сети в разных вариациях(скрипт для это написал)))) + выдергивание адаптеров, и как ни странно дрова не валились все отрабатывало корректно, так же и раздачу гонял.

.................................................. ...................................

Вставил проверку на выключенный адаптер, пока работает как надо без переподключения адаптера.
Сейчас перезалью архив с net_checker-ом, а завтра если время будет гляну на свежую голову native-wifi.

seriousstas 24.11.2017 13:20

Цитата:

А с дровами точно все порядке ?
на Qualcomm Atheros AR9485 Wireless Network Adapter

встроен в моноблок , восмерка на него ставит свои .. Работали хорошо лет 5ть не переставлял 8-ку ..
Цитата:

Если не нужно переподключение адаптера
Я лишнее сразу поубирал ..
А вообще я знаю , как использовать Твой скрипт .
Запускать по событию сна один раз(те без цикла) из планировщика с проверкой на пинг .
Я так и делал , но через реконнект адаптера, а правильнее будет , как ты предложил через netsh.exe wlan connect
Цитата:

на свежую голову native-wifi
буду ждать!

duzzy 24.11.2017 14:38

seriousstas

Перезалил еще раз))
Убрал лишний коннект сети, теперь работает как часы ;)

Цитата:

на Qualcomm Atheros AR9485 Wireless Network Adapter

встроен в моноблок , восмерка на него ставит свои .. Работали хорошо лет 5ть не переставлял 8-ку ..
Я у себя на ноуте и нет-буке переставлял, на ноуте вафля отваливалась на нет-буке адаптер не засыпал(высаживал батарею)...

Цитата:

Я лишнее сразу поубирал ..
А вообще я знаю , как использовать Твой скрипт .
Запускать по событию сна один раз(те без цикла) из планировщика с проверкой на пинг .
Я так и делал , но через реконнект адаптера, а правильнее будет , как ты предложил через netsh.exe wlan connect
Я немного изучил вопрос по netsh.exe - это "Network Shell" - тулза по работе с сетью и не только. Т.е. эта программа использует модули для тех или иных комманд. Отрабатывает на уровне софтверных команд. Валить дрова она не в коем случае не должна... скорее всего что-то не правильно работает в системе...
На нескольких компах в адовом режиме пробовал как я и писал выше, все прекрасно работает... не было ни падений не синих экранов не отвала дров.

Можно использовать вообще голые команды в планировщике по событиям, тоже будет работать.
Но суть этого скрипта в автоматизации процесса переподключения сети и включении адаптера если он был выключен.

Цитата:

буду ждать!
:) По вопросу нативвайвай, я уже глянул утром и попробовал)))
Работает он очень хреново, поясню,
при использовании...
_Wlan_QueryInterface() - происходит реконнект т.е. разрыв соединения и подключение(это основная функция по запросу подключения)...
_Wlan_Connect() - не возвращает ничего т.е. не понятно подключился ты или нет...
Тут пока все очевидно :)

Плюс ко всему посидел и подумал насчет вопроса проверки подключения, и могу сказать однозначно что проверка пингом лучший вариант так как это сквозная проверка мы проверяем наличие интернета а не сетевого подключения.
Да я думаю ты и сам с эти сталкивался когда показывает что сеть есть а в инет выйти не можешь.
Другой вопрос что нужно правильно настроить, потому как машина двигается и уровень сигнала всегда разный нужно просто увеличить время ожидания ответа по пингу(в скрипте net_checker уже стоит увеличенное значение 5000 мс. по дефолту 4000 мс.). Если ставить маленькое значение будут проблемы из разного уровня сигнала.
Ну а вообще пинг отрабатывает почти моментально.
Можно посмотреть время ответа если включить debug(отладку)...
ping_1=21 ping_2=30
ping_1=20 ping_2=20
ping_1=32 ping_2=23
ping_1=19 ping_2=20
ping_1=19 ping_2=21
ping_1=17 ping_2=20
ping_1=18 ping_2=20
ping_1=66 ping_2=20
ping_1=19 ping_2=23
ping_1=19 ping_2=20
Время ответа от гугло серваков ;)

seriousstas 24.11.2017 14:52

Цитата:

Можно использовать вообще голые команды в планировщике по событиям, тоже будет работать.
Алгоритм определения профайла и SSID тоже полезен .
Смотрю к названию профайла иногда двойка добавляется + удобно если несколько источников .
Цитата:

Я у себя на ноуте и нет-буке переставлял, на ноуте вафля отваливалась на нет-буке адаптер не засыпал(высаживал батарею)...
На домашнем норм , а вот в авто свисток капризный . Ему нужен хороший конект с USB гнездом и стабильное питание . Через удлиннитель плохо работает ..
Думаю связано с AC типом подключения ...
Цитата:

Я немного изучил вопрос по netsh.exe - это "Network Shell" - тулза по работе с сетью и не только.
а через неё не получится проверять наличие соединения (вместо пингов) ?

duzzy 24.11.2017 15:28

seriousstas
Цитата:

Смотрю к названию профайла иногда двойка добавляется + удобно если несколько источников .
Попробуй удалить профиль и перенастроить сеть, по идее должно помочь.

Цитата:

а через неё не получится проверять наличие соединения (вместо пингов) ?
Да можно, просто смысла в этом нет. Как я и говорил выше, при использовании пинга ты насквозь проверяешь сеть на наличие инета. А при проверке подключения ты проверяешь только наличие подключения т.е. по сути смотришь флаг(вкл./выкл.).
И получается что при использовании пинга ты знаешь что инет есть и в случае отвала будет подключение к сети и проверка на подключенный адаптер, а при использовании проверки на подключено или нет ты будешь получать ответ о наличии подключения и нужно полагаться на систему проверяла она наличие инета или нет... :)

------------------------------------------------------------------------------------

Писец а что за умник убрал редактирование постов ???? Теперь первый пост не отредактировать....

seriousstas 24.11.2017 15:41

Цитата:

Писец а что за умник убрал редактирование постов ???? Теперь первый пост не отредактировать....
Нововведение))

duzzy 24.11.2017 16:02

seriousstas

Нововводители мля)))
И чего теперь мне все свои посты в подпись пихать.......... на кой хрен трогать то что работает... не пойму :wacko2:

Ты хотел проверку ;)
Вот держи...

PHP код:

;#NoTrayIcon
#include <Encoding.au3>
#include <AutoItConstants.au3>

Global $sstate
$is_run 
1

While $is_run
    $state_check 
check_state()
    
ConsoleWrite('debug $state_check = ' $state_check & @CRLF) ;debug

        
If($state_check == 'отключено'Then
            ConsoleWrite
('debug NET DISABLE' & @CRLF) ;debug
        
Else
            
ConsoleWrite('debug NET ENABLE' & @CRLF) ;debug
        
EndIf


    
Sleep(5000)
WEnd

Func check_state
()
    
$iPID Run('netsh.exe wlan show interfaces''', @SW_HIDE$STDERR_CHILD $STDOUT_CHILD)
    
$sOut ''
    
ProcessWaitClose($iPID)
    Do
        
$sOut &= StdoutRead($iPID)
    
Until @error
    $aResult 
StringRegExp(_Encoding_866To1251($sOut), '(Состояние) *: *(.+) *'1)

    If 
UBound($aResult) >= 2 Then
        $sstate 
$aResult[1]
    EndIf

    Return 
$sstate
EndFunc   
;==>check_state 

Только это проверка на подключение как я писал ранее, т.е. даже если выключить адаптер ты будешь получать "Подключено".
...

seriousstas 25.11.2017 00:45

duzzy
Цитата:

If($state_check == 'отключено')
А сеть должна быть в списке ?
Догда не подойдет , тк при обычной загрузке системы или из сна
сети еще нет ..

duzzy 25.11.2017 01:35

seriousstas

Цитата:

А сеть должна быть в списке ?
Ты лучше расскажи как ты собираешься это использовать, я просто не пойму для каких целей тебе это нужно.

Проверки сделаны для работающего компа. Как оно будет при сне и гибернации я не знаю, эти режимы не использую.
Поэтому проще описать то что нужно делать а я попробую что-то написать или помочь что-то переделать :)

Если брать net_checker, это работает так...
включили комп ...пропускаем этап с инициализацией и т.д., пришли к загрузке дров, грузим дрова, загрузили драйвер вафли, включили вафлю, если есть системное авто-подключение подключаемся к сети если она есть в наличии - все.
Загружаем(по кнопке или автоматом или по событию) net_checker проверяет наличие инета и если его нет подключается к сети из ини.
Вариации по использованию могут быть разными, в данном случае происходит обычная проверка на наличие инета.
...

seriousstas 25.11.2017 03:07

Цитата:

Ты лучше расскажи как ты собираешься это использовать
Для меня важно стабильное и быстрое подлючение после поворота ключа . Подключение к конкретной сети при любых условии в течении 5 секунд после ее появления .
Вериантов может быть несколько (нужна универсальность) :
1 Обычная загрузка ПК
2 Выход из сна
3 Просто отошел от авто ..(в этом случае все ОК , тк уже было подключение..)
net_checker с проверкой пинга не подошел , тк мне не нужны реконекты в движении после подлкючения .
Цитата:

Как оно будет при сне и гибернации я не знаю
отвечаю :
После сна и гибернации или обычной загрузки сети нет . Включаю (автоматом) раздачу из смарта , далее
If($state_check == 'отключено') условие не работает , тк еще нет профайла в виндовом списке .

Получается не хватает простого сканирования сетей в списке каждый раз в цикле перед проверкой ?
Это и просходит при нажатии лесенки (скан и подключение) , те открытии списка сетей в Win 8.1, но как это повторить командой ..

duzzy 25.11.2017 23:38

seriousstas

Цитата:

Получается не хватает простого сканирования сетей в списке каждый раз в цикле перед проверкой ?
:) Я примерно понимаю что нужно сделать, уже набросал на бумаге как оно будет работать. Подобрал некоторые функции, и буду использовать нативвайвай)))
Скинь мне пожалуйста функционал по отслеживанию событий - уход в сон и т.д.

seriousstas 26.11.2017 02:01

Цитата:

Сообщение от duzzy (Сообщение 395394)
seriousstas



:) Я примерно понимаю что нужно сделать, уже набросал на бумаге как оно будет работать. Подобрал некоторые функции, и буду использовать нативвайвай)))
Скинь мне пожалуйста функционал по отслеживанию событий - уход в сон и т.д.

Вот Лекс давал(Проще запускать через планировщик , по событию (что сна , что загрузки ОС) , если конечно иначе никак ..) ,
но я не совсем понимаю зачем ?(я ушел от этого ..) скрипт-монитор(чекер), что после сна ,что после загрузки запущен и работает , нужно лишь отсканить сеть
и подключиться ..

Второе умеем , а первое не знаю..

duzzy 26.11.2017 02:27

seriousstas

А ну тогда еще проще)))
Будет постоянный скан в цикле на нужную сеть, а затем уже действия.
Завтра скину на пробу;)
За скрипт спасибо, я просто режимы еще не смотрел вообще.

---------------------------------------------------------------------------------------------

Все вроде как надо, но есть одна маленькая какашка)))
Если стартовать скрипт на выключенном адаптере, он не может получать список сетей)))
Но зато если на включенном адаптере работает все что нужно... и скан сетей и включение адаптера и подключение к сети.
Т.е. теряешь сеть скрипт болтается в цикле... сеть появилась скрипт подключает к ней вафлю.

seriousstas 26.11.2017 16:11

Цитата:

Если стартовать скрипт на выключенном адаптере, он не может получать список сетей)))
нужен особый ,всепроникающий)
Цитата:

Т.е. теряешь сеть скрипт болтается в цикле... сеть появилась скрипт подключает к ней вафлю.
Это оно!Готов к :moil:

duzzy 26.11.2017 16:58

seriousstas

Цитата:

нужен особый ,всепроникающий)
)))))))).... вот с этим то пока есть проблемы)))
Не понимаю почему но название сети не получает...
Но я придумал как это пока обойти)))

Цитата:

Это оно!Готов
Ну раз готов держи))
Это тестовый вариант, но он полнофункциональный :)

Работает так...
Два скрипта, один как раз сам чекер а второй это обход пустой сети при выключенном адаптере.
- net_checker_v2.exe --- сам чекер

- wifi_adapter_check.exe --- включает адаптер а затем запускает чекер

Нужно один раз запустить net_checker_v2 для получения названия адаптера и имя сети, затем можно пользоваться как обычно.
Т.е. wifi_adapter_check.exe --- это вспомогательный скрипт который будет пытаться включить адаптер и как только он его включит то запустит net_checker_v2 для других проверок.
Т.е. после первой настройки запускать нужно wifi_adapter_check.exe.

Ну и добавил болталку)))... можешь тоже проверить sound_messages=true :big:
...


Часовой пояс GMT +4, время: 19:34.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot