Бывалый писикарщик
Регистрация: 14.06.2013
Регион: Украина
Машина: Nissan Qashqai+2
Сообщений: 3,424
|
Цитата:
без скана при подключении
|
ТОлько не при , а после ..
подключились - скана нет ..
Цитата:
Сканить нужно для поиска нужной сети в радиусе действия. У меня интервал стоит 30 сек. поэтому не заметно)))
|
а , так я другими и не пользуюсь , а если нужно - можно выключить чекер ..
вот черновик iCarMainScript
PHP код:
#RequireAdmin #pragma compile(Icon, "C:\Program Files (x86)\AutoIt3\Icons\MyAutoIt3_Yellow.ico") #AutoIt3Wrapper_Add_Constants=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <MyUDF.au3> #include <WinAPI.au3> #NoTrayIcon
Global $sinterface, $sssid, $sprofile, $sstate, $get_profile, $check_timeout $is_run = 1 $is_ping_run = 1 $ini_file = @ScriptDir & "\net_checker_v2.ini" $fist_run = IniRead($ini_file, "settings", "fist_run", "true") If ($fist_run = "true") Then check_interface() ;If ($is_run == 0) Then Exit EndIf $sinterface = IniRead($ini_file, "settings", "interface", 0) $sssid = IniRead($ini_file, "settings", "ssid", 0) $sprofile = IniRead($ini_file, "settings", "profile", 0) $check_timeout = IniRead($ini_file, "settings", "check_timeout", 5000)
_wlan_startsession() ;_wlan_startnotificationmodule() Global $clear_flag = True, $try_enable = True, $count = 0, $try_enable_adapter = True, $count_adapter = 0 Dim $vol_from_speed[201] Global $rr = ObjCreate("RideRunner.sdk")
_Main()
Func MyErrFunc() $HexNumber = Hex($oMyError.number, 8) ; MsgBox(64, "iCarDS","iCarDS закрыт") ; SetError(1); to check for after this function returns Exit EndFunc ;==>MyErrFunc
Func _InitVolArray()
$delta = 0 $vol_from_speed[0]=$delta
For $i = 0 to 150 Step 10
$tmp_vol_from_speed = $rr.GetInfo("=$vol_from_speed_" & $i+10 & "$") / 10 For $j = 1 to 10 Step 1 $delta = $delta + $tmp_vol_from_speed $vol_from_speed[$i+$j] = Round($delta, 2) ;~ MsgBox(0, "Файл:", $i+$j & "-----" & $vol_from_speed[$i+$j]) Next
Next
For $i=162 to 200 Step 1 $delta = $delta + $tmp_vol_from_speed $vol_from_speed[$i] = Round($delta, 2) ;~ MsgBox(0, "Файл:", $i & "-----" & $vol_from_speed[$i]) Next
EndFunc Func _main() Global $iswork = 1 Global $isrun = 0 Global $name = "[CLASS:TSkinForm]" Global $namecontrol = "" Global $foobarwindowtitleprev = "" Global $speed_prev = Round(Number($rr.getinfo("$IsDriveSpd$")), 0) Global $speed_prev_round = Round($speed_prev, -1) Global $vol_from_speed_full = 0 Global $vol_min = Number($rr.getinfo("=$vol_from_speed_min$")) Global $vol_max = Number($rr.getinfo("=$vol_from_speed_max$")) _initvolarray() $rr.execute("SetVar;vol_from_speed_full;" & Round($vol_from_speed[$speed_prev], 2)) Global $clear_flag = True, $try_enable = True, $count = 0, $try_enable_adapter = True, $count_adapter = 0 While $iswork $handle = WinGetHandle($name) ; Ищем окно с заданным именем If @error Then If $IsRun Then $IsWork = 0 EndIf ; если окно не найдено, а ключ запуска окна установлен в 1, т.е. окно закрыто, то сбросить ключ выхода для завершения скрипта Else $IsRun = 1 ; если окно найдено устанавливаем ключ запуска окна If WinActive($name) Or WinActive("[CLASS:TOverlayForm]") Or WinActive("[CLASS:TPopupSkinForm]") Or WinActive("[CLASS:TModalSkinForm]") Or WinActive("[CLASS:TMediaForm]") Then $rr.Execute("SETIND;!iCarDS_Active;ON") Else $rr.Execute("SETIND;!iCarDS_Active;OFF") EndIf EndIf
$volume = StringSplit( $rr.getinfo("VOLUME") , "%") if @error = 0 then $current_volume = Number($volume[1]) else $current_volume = 0 EndIf
$speed_current = Round(Number($rr.getinfo("$IsDriveSpd$")),0)
If $speed_current > $speed_prev Then
$delta_vol = Round($vol_from_speed[$speed_current] - $vol_from_speed[$speed_prev],2) If $current_volume + $delta_vol < $vol_max Then $rr.Execute("volperc+;" & $delta_vol& "||SetVar;vol_from_speed_full;" & $vol_from_speed[$speed_current])
Else If $speed_current < $speed_prev Then $delta_vol = Round($vol_from_speed[$speed_prev] - $vol_from_speed[$speed_current],2) If $current_volume - $delta_vol > $vol_min Then $rr.Execute("volperc-;" & $delta_vol & "||SetVar;vol_from_speed_full;" & $vol_from_speed[$speed_current]) EndIf EndIf
$speed_prev = $speed_current
If Number($rr.getinfo("=$Is_new_vol_from_speed$")) = 1 Then _InitVolArray() $rr.Execute("SetVar;Is_new_vol_from_speed;0") EndIf
Sleep(50) Global $net_name = get_wnet() If Not (_wlan_queryinterface() = "Connected") Then _wlan_scan() Sleep(500) wifi_connect() EndIf
Sleep($check_timeout)
$overlay_handle = WinGetHandle("[CLASS:TOverlayForm]") $myAlpha = 50 If ($overlay_handle And WinExists($overlay_handle)) Then Local $iTransColor, $iAlpha $iInfo = _WinAPI_GetLayeredWindowAttributes($overlay_handle, $iTransColor, $iAlpha) If ($iAlpha <= 100) Then Sleep(3000) _WinAPI_SetLayeredWindowAttributes($overlay_handle, $iTransColor, $myAlpha)
EndIf EndIf
WEnd EndFunc Func wifi_connect() RunWait(@ComSpec & " /u /c " & "netsh wlan connect " & '"' & $sprofile & '"' & " " & '"' & $sssid & '"' & " " & '"' & $sinterface & '"', @SystemDir, @SW_HIDE) ;Return EndFunc
Func check_interface() $ipid = Run(@ComSpec & " /u /c " & "netsh wlan show interfaces", @SystemDir, @SW_HIDE, $stderr_child + $stdout_child) $sout = "" ProcessWaitClose($ipid) Do $sout &= StdoutRead($ipid) Until @error $aresult = StringRegExp(_encoding_866to1251($sout), "(Имя|Name) *: *(.+) *", 1) $aresult2 = StringRegExp(_encoding_866to1251($sout), "(SSID) *: *(.+) *", 1) $aresult3 = StringRegExp(_encoding_866to1251($sout), "(Профиль) *: *(.+) *", 1) $aresult4 = StringRegExp(_encoding_866to1251($sout), "(Состояние) *: *(.+) *", 1) If UBound($aresult) >= 2 Then $sinterface = $aresult[1] EndIf If UBound($aresult2) >= 2 Then $sssid = $aresult2[1] EndIf If UBound($aresult3) >= 2 Then $sprofile_strip = string_strip($aresult3[1]) $sprofile = string_format($sprofile_strip) EndIf If UBound($aresult4) >= 2 Then $sstate = $aresult4[1] EndIf If ($sinterface == "" OR $sssid == "" OR $sprofile == "") Then $is_run = 1 ;$is_run = 0 IniWrite($ini_file, "settings", "fist_run", "true") Else IniWrite($ini_file, "settings", "interface", $sinterface) IniWrite($ini_file, "settings", "ssid", $sssid) IniWrite($ini_file, "settings", "profile", $sprofile) IniWrite($ini_file, "settings", "check_timeout", 5000) IniWrite($ini_file, "settings", "adapter_enable_timeout", 5000) IniWrite($ini_file, "settings", "net_connect_count", 3) IniWrite($ini_file, "settings", "adapter_enable_count", 3) IniWrite($ini_file, "settings", "fist_run", False) $ini_read_sett = IniReadSection($ini_file, "settings")
EndIf Return EndFunc
Func get_wnet() Local $scurrentprofile Local $asnetworks = _wlan_getnetworks(False, 0, 0) For $i = 0 To UBound($asnetworks) - 1 If StringInStr($asnetworks[$i][9], "P") Then $scurrentprofile = $asnetworks[$i][0] ExitLoop EndIf Next Return $scurrentprofile EndFunc
Func string_strip($str_to_stiip) $istr_strip = StringStripWS($str_to_stiip, $str_stripleading + $str_striptrailing + $str_stripspaces) Return $istr_strip EndFunc
Func string_format($str_to_format) $istr_format = StringFormat("%s", $str_to_format) Return $istr_format EndFunc
|