Страница 6 из 13 ПерваяПервая 123456789101112 ... ПоследняяПоследняя
Показано с 51 по 60 из 126
  1. #51
    Гуру Аватар для ashu
    Регистрация
    29.01.2008
    Возраст
    52
    Сообщений
    1,161
    Вес репутации
    582

    По умолчанию Re: Примеры ahk-скриптов

    Цитата Сообщение от dima007
    ashu !
    Вот что пишет
    Проверяй настройки подключения - там у тебя проблема.
    С уважением, Алексей
    Мой Prius NHW11

  2. #52
    Пользователь
    Регистрация
    26.04.2008
    Возраст
    60
    Сообщений
    67
    Вес репутации
    217

    По умолчанию Re: Примеры ahk-скриптов

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

  3. #53
    Местный Аватар для Allex
    Регистрация
    15.01.2008
    Возраст
    56
    Сообщений
    114
    Вес репутации
    230

    По умолчанию Re: Примеры ahk-скриптов

    Цитата Сообщение от dima007
    Ну вроде запустил обновление, в разделе помощь-информация есть данные о обновлении и пробки показывает, а на экране "нет" горит и на кнопке "в сети" и "нет" ничего не понимаю..........
    в разделе "редактируемые переменные - настройки" все ОК?

  4. #54
    Гуру Аватар для ashu
    Регистрация
    29.01.2008
    Возраст
    52
    Сообщений
    1,161
    Вес репутации
    582

    По умолчанию Re: Примеры ahk-скриптов

    Цитата Сообщение от dima007
    Ну вроде запустил обновление, в разделе помощь-информация есть данные о обновлении и пробки показывает, а на экране "нет" горит и на кнопке "в сети" и "нет" ничего не понимаю..........
    Проверь действительно ли у тебя существует файл
    C:\Program Files\City Guide\78SPb.jam
    или пробки пишутся всё ж в какое-то другое место.
    Если путь к jam-файлу указал правильно, то должно работать...


    Если путь указан верно, но не работает, попробуй мою текущую версию avc_control.ahk:
    Код:
    #NoTrayIcon		; не отображать значок скрипта в трее
    #SingleInstance force	; перезагрузить скрипт, если он уже запущен
    DetectHiddenWindows, On	; искать в скрытых окнах
    #NoEnv			; запрещаем имена переменных как у переменных окружения
    SendMode Input		; ускорренный ввод
    #Persistent		; держать скрипт запущенным
    SetTitleMatchMode 2	; 2 - заголовок окна должен содержать значение, заданное в параметре
    
    ; ----------- редактируемые переменные - настройки ------------
    
    winampid	:= "RRWinamp"				; идентификатор класса окна винампа
    cityguide	:= "City Guide"				; название окна CityGuide
    myconnection	:= "BluetoothConnection"		; название подключения к Инету
    btadapter	:= "Jabra - A320s"			; название адаптера bluetooth
    pinghost1	:= "193.125.152.104"			; кого мучаем пингами в первую очередь (www.relcom.ru)
    pinghost2	:= "194.87.0.50"			; кого мучаем пингами во вторую очередь (www.ru)
    onlinestr	:= "В сети"				; сообщение "Online" на экране (переменная RR OnlineStatus)
    offlinestr	:= "---"				; сообщение "Offline" на экране
    chkonline	:= "+                 +"		; сообщение "постоянное подключение" на экране
    pstripwin	:= "Меры предосторожности"		; название стартового окна восстановления PowerStrip'а
    svhostwin	:= "svchost.exe - Ошибка приложения"	; название окна ошибки службы (вероятнее всего служба Windows Audio)
    winamperror	:= "NullSoft DirectSound output"	; название окна винампа с ошибкой звукового устройства
    checkperiod	:= 30					; через сколько секунд (примерно) запускаем процедуру проверки сети и пробок СитиГида
    myjamfile	:= "C:\Program Files\City Guide\78SPb.jam" ; за каким файлом пробок следим (боевой)
    ;myjamfile	:= "C:\CityGuide\City Guide 2.2\78SPb.jam" ; за каким файлом пробок следим (тестовый)
    jamgreen	:= 8					; до скольки минут считать возраст пробок зеленым
    jamred		:= 50					; до скольки минут считать возраст пробок красным
    empty		:= "нет"				; что пишем на экране, если пробочный файл очень старый
    
    ; -------- конец редактируемых переменных - настроек ----------
    
    
    WinAmpActive := 0
    CityGuideActive := 0
    day := 1
    online := 0
    setoffline := 0
    oncheckonline := 0
    Lastcheck := 0
    checkperiod := - checkperiod * 1000
    jamexpired := 1
    
    ; Создаем пустое окно и сразу его прячем. Окно необходимо для получения команд управления от RR
    Gui, Show
    Sleep, 5000
    WinWait, avc_control.ahk
    WinHide
    
    ; Устанавливаем обработчик для приёма команд через WM_COPYDATA от RR
    OnMessage(0x4A, "OnCopyData")
    
    SetTimer, CheckWarnings, 2000
    SetTimer, CheckJam, 30000
    SetTimer, CheckInternet, %checkperiod%, -1 ; периодическая проверка подключения к Интернету (с пониженным приоритетом)
    return
    
    StartWinAmp:
    	SendMessage, 0x400,, 104,, ahk_class %winampid% ; проверка воспроизведения
    	If ErrorLevel = 0 ; если не воспроизводится, то...
    		PostMessage, 0x111, 40045,,, ahk_class %winampid% ; включить воспроизведение
    ; наверняка было выключение, поэтому проверяем подключение к Инету
    ; инициируем новый цикл проверки Интернета через 1 секунду
    	If (oncheckonline <> 1)
    		SetTimer, CheckInternet, -1000, -1
    	return
    
    CheckWarnings:
    ; Обработчик варнингов
    	If WinAmpActive = 0
    	{
    		IfWinExist, ahk_class %winampid%
    		{
    ; WinAmp не был запущен, а сейчас найден в списке окон
    			Gosub StartWinAmp
    			WinAmpActive := 1
    		}
    	}
    	Else
    	{
    		IfWinNotExist, ahk_class %winampid%
    		{
    			WinAmpActive := 0
    		}
    		Else
    		{
    			If (Lastcheck + 20000 < A_TickCount)
    			{
    				; WinAmp был запущен и существует до сих пор, но
    				; давно не было проверок, возможно, работа останавливалась
    				SetTimer, StartWinAmp, -5000
    			}
    		}
    	}
    	If CityGuideActive = 0
    	{
    		IfWinExist, %cityguide%
    		{
    ; CityGuide не был запущен, а сейчас найден в списке окон
    			WinActivate
    			Send, 5 ; включить GPS
    			CityGuideActive := 1
    		}
    	}
    	Else
    	{
    		IfWinNotExist, %cityguide%
    		{
    			CityGuideActive := 0
    		}
    	}
    	IfWinExist, %pstripwin%
    	{
    ; Найдено стартовое окно восстановления PowerStrip'а
    		WinActivate
    		Send, Д
    	}
    	IfWinExist, %winamperror%
    	{
    ; Найдено окно WinAmp'а с ошибкой звукового устройства
    ; Вероятнее всего звуковая usb-карта не успела проинициализироваться
    ; закрываем окно с ошибкой и через 5 секунд пытаемся запустить PLAY
    		WinActivate
    		Send, {Enter}
    		SetTimer, StartWinAmp, -5000
    	}
    	IfWinExist, %svhostwin%
    	{
    ; Скидываем полученную ошибку приложения (вероятнее всего служба Windows Audio)
    		WinActivate
    		Send, {Esc}
    ;		SetTimer, RestartAudio, -1000
    	}
    	Lastcheck := A_TickCount
    	return
    
    RestartAudio:
    	RunWait, net stop AudioSrv,, Hide
    	RunWait, net start AudioSrv,, Hide
    	return
    
    CheckInternet:
    ; Обработчик интернет-проверок
    	oncheckonline := 1
    	If (setoffline = 1)
    		Gosub DoOffline
    	Gosub DoOnline
    	oncheckonline := 0
    	SetTimer, CheckInternet, %checkperiod%, -1
    	return ; конец процедуры CheckInternet
    
    CheckJam:
    ; Получаем время файла пробок
    	FileGetTime, OutputVar, %myjamfile%
    	mhour := Substr(OutputVar, 9, 2)
    	mmin := Substr(OutputVar, 11, 2)
    ; Собираем текущую отметку времени (в минутах)
    	currconntimestamp := A_Min + A_Hour*60
    	lastjamtimestamp := mmin + mhour*60
    	If (currconntimestamp < lastjamtimestamp)
    		currconntimestamp := currconntimestamp + 24*60
    ; Получаем возраст файла пробок
    	jamtime := currconntimestamp - lastjamtimestamp
    	jamexpired := 0
    	If (currconntimestamp > lastjamtimestamp + jamgreen)
    		jamexpired := 1
    	If (currconntimestamp > lastjamtimestamp + jamred)
    		jamtime := empty
    ; тут надо нарисовать цветом возраст пробочного файла
    	If (jamexpired = 0)
    	{
    ; Делаем зеленым
    		SendToRR("SETVAR;MYJAMR||SETVAR;MYJAMG;" . jamtime)
    	}
    	Else
    	{
    ; Делаем красным
    		SendToRR("SETVAR;MYJAMG||SETVAR;MYJAMR;" . jamtime)
    	}
    	return ; конец процедуры CheckJam
    
    DoOffline:
    	If (online = 1)
    		SendToRR("SETVAR;OnlineSwitch;" . chkonline)
    	Else
    		SendToRR("SETVAR;OnlineSwitch")
    	setoffline := 0
    
    	RunWait, rasdial %myconnection% /DISCONNECT,, Hide
    	SendToRR("SETVAR;OnlineStatus;" . offlinestr)
    
    	return
    
    DoOnline:
    	If (online = 1)
    		SendToRR("SETVAR;OnlineSwitch;" . chkonline)
    	Else
    		SendToRR("SETVAR;OnlineSwitch")
    	If (jamexpired = 0)
    	{
    		; пробки свежие - считаем, что с тырнетом всё в порядке
    		SendToRR("SETVAR;OnlineStatus;" . onlinestr)
    		return
    	}
            Loop, 5 ; предпринимаем 5 попыток подключиться
    	{
    		RunWait, ping -n 3 -f -w 2000 %pinghost1%,, UseErrorLevel|Hide
    		If (ErrorLevel = 0)
    		{
    			SendToRR("SETVAR;OnlineStatus;" . onlinestr)
    			Break
    		}
    		Else
    		{
    			If (online = 1)
    				Sleep, 5000
    			RunWait, ping -n 3 -f -w 2000 %pinghost2%,, UseErrorLevel|Hide
    			If (ErrorLevel = 0)
    			{
    				SendToRR("SETVAR;OnlineStatus;" . onlinestr)
    				Break
    			}
    			Else
    			{
    				SendToRR("SETVAR;OnlineStatus;" . offlinestr)
    			}
    		}
    		If (online = 1)
    		{
    			Gosub DoOffline
    			Sleep, 2000
    			If (A_Index > 4)
    			{
    ; 4 попытки подключиться прошли напрасно - принимаем радикальные меры
    ; Отключаем и снова подключаем адаптер bluetooth
    				RunWait, C:\Tools\usr.exe stop -n "%btapapter%",, Hide
    				RunWait, C:\Tools\usr.exe return -n "%btadapter%",, Hide
    				Sleep, 5000 ; даём системе прийти в себя после такого надругательства
    			}
    			RunWait, rasdial %myconnection%,, Hide
    		}
    		Else
    		{
    			Break
    		}
    	}
    	return
    
    OnCopyData(wparam, lparam)
    {
    ; функция получения входящего сообщение WM_COPYDATA
    ; Сюда приходит вызов с полученным сообщением-командой от RR
    
    	local pStr
    	pStr := NumGet(lparam+8), len := NumGet(lparam+4)
    	RecvMessage := SubStr(DllCall("MulDiv", "Int", pStr, "Int",1, "Int",1, "str"),1,len)
    
    	If (RecvMessage = "switch") {
    		If (online = 1)
    			online := 0
    		Else
    			online := 1
    	}
    	Else
    	{
    		If (RecvMessage = "online")
    			online := 1
    		Else
    			online := 0
    	}
    	If (online = 1)
    	{
    		setoffline := 0
    		SendToRR("SETVAR;OnlineSwitch;" . chkonline)
    	}
    	Else
    	{
    		setoffline := 1
    		SendToRR("SETVAR;OnlineSwitch")
    	}
    
    	If (oncheckonline <> 1)
    		SetTimer, CheckInternet, -1000, -1 ; инициируем новый цикл проверки Интернета
    
    	return 1 ; подтверждаем успешный приём сообщения
    }
    
    ; Функция отправки команды в RoadRunner
    SendToRR(msg="")
    {
    	len := StrLen(msg)
    	port := 1 ; RR слушает команды, приходящие на порт 1
    	VarSetCapacity(CopyDataStruct, 12, 0)
    	NumPut(port, CopyDataStruct, 0)
    	NumPut(len, CopyDataStruct, 4) ; тут именно len, а не len+1 как пишут в некоторых примерах
    	NumPut(&msg, CopyDataStruct, 8)
    	SendMessage, 0x4A,, &CopyDataStruct,, RoadRunner
    }
    
    
    ; Далее - обычные реакции на хоткеи
    
    
    ^!+c::
    	Critical
    	KeyWait, c
    	KeyWait, Shift
    	KeyWait, Alt
    	KeyWait, Control
    	IfWinExist, ahk_class Winamp v1.x
    	{
    		; Нашли активный KMPlayer - управляем им
    		ControlSend, , !``
    	}
    	Else
    	{
    		Send, ^!5		; AutoHide для указателя мышки
    	}
    	return
    
    ^!+b::
    	Critical
    	KeyWait, b
    	KeyWait, Shift
    	KeyWait, Alt
    	KeyWait, Control
    	Send, {Click right}	; имитация правой кнопки мышки
    	return
    
    ^!+a::			; screenshot текущего экрана
    	Critical
    	KeyWait, a
    	KeyWait, Shift
    	KeyWait, Alt
    	KeyWait, Control
    	RunWait, nircmd savescreenshot C:\PrScr.png,, Hide
    	FileGetTime, OutputVar, C:\PrScr.png, C
    	FileMove C:\PrScr.png, C:\Scrns\ss_%OutputVar%.png
    	return
    
    ^!+e::			; Команда NEXT для WinAmp'а / KMPlayer'а
    	Critical
    	KeyWait, e
    	KeyWait, Shift
    	KeyWait, Alt
    	KeyWait, Control
    	IfWinExist, ahk_class Winamp v1.x
    	{
    		; Нашли активный KMPlayer - управляем им
    		PostMessage, 0x111, 40048,,, ahk_class Winamp v1.x ; следующий трек
    	}
    	Else
    	{
    		PostMessage, 0x111, 40048,,, ahk_class RRWinamp ; следующий трек
    	}
    	return
    
    ^!+f::			; Команда PREV для WinAmp'а / KMPlayer'а
    	Critical
    	KeyWait, f
    	KeyWait, Shift
    	KeyWait, Alt
    	KeyWait, Control
    	IfWinExist, ahk_class Winamp v1.x
    	{
    		; Нашли активный KMPlayer - управляем им
    		PostMessage, 0x111, 40044,,, ahk_class Winamp v1.x ; предыдущий трек
    	}
    	Else
    	{
    		PostMessage, 0x111, 40044,,, ahk_class RRWinamp ; предыдущий трек
    	}
    	return
    
    ^!+h::			; Команда PLAY/PAUSE для WinAmp'а / KMPlayer'а
    	Critical
    	KeyWait, h
    	KeyWait, Shift
    	KeyWait, Alt
    	KeyWait, Control
    	IfWinExist, ahk_class Winamp v1.x
    	{
    		; Нашли активный KMPlayer - управляем им
    		SendMessage, 0x400,, 104,, ahk_class Winamp v1.x ; проверка воспроизведения
    		If ErrorLevel = 0 ; если не воспроизводится, то...
    			PostMessage, 0x111, 40045,,, ahk_class Winamp v1.x ; включить воспроизведение
    		Else ; если воспроизводится, то...
    			PostMessage, 0x111, 40046,,, ahk_class Winamp v1.x ; поставить на паузу
    	}
    	Else
    	{
    		SendMessage, 0x400,, 104,, ahk_class RRWinamp ; проверка воспроизведения
    		If ErrorLevel = 0 ; если не воспроизводится, то...
    			PostMessage, 0x111, 40045,,, ahk_class RRWinamp ; включить воспроизведение
    		Else ; если воспроизводится, то...
    			PostMessage, 0x111, 40046,,, ahk_class RRWinamp ; поставить на паузу
    	}
    	return
    
    ^!+i::			; Переключатель профилей PowerStrip'а день/ночь
    	Critical
    	KeyWait, i
    	KeyWait, Shift
    	KeyWait, Alt
    	KeyWait, Control
    	if(!day)
    	{
    		Send, ^!1
    		day := 1
    	}
    	else
    	{
    		Send, ^!2
    		day := 0
    	}
    	return
    KeyWait'ы добавлены для устранения проблем с разными способами софтверных имитации нажатий клавиш.
    С уважением, Алексей
    Мой Prius NHW11

  5. #55
    Пользователь
    Регистрация
    26.04.2008
    Возраст
    60
    Сообщений
    67
    Вес репутации
    217

    По умолчанию Re: Примеры ahk-скриптов

    Пробки обновляются, на главном виде Road Runner наверху надпись "в сети" открываб сити гай на экране в правом верхнем углу "нет" горит и не убирается никак, а на кнопке тоже горит "в сети" и "нет" , но это еще что, если выйти из Road Runner и открыв Internet Explorer в одной из вкладки зайти на сайт сити гай, то в правом углу тоже выскочит "нет", а в панели задач CGJAM.
    Я думаю наверное какие то детские ошибки, нестаит где нибудь чего нибудь, а на большом комп. тоже самое плюс пробки обновляет но не показывает.

  6. #56
    Гуру Аватар для ashu
    Регистрация
    29.01.2008
    Возраст
    52
    Сообщений
    1,161
    Вес репутации
    582

    По умолчанию Re: Примеры ahk-скриптов

    Цитата Сообщение от dima007
    Пробки обновляются, на главном виде Road Runner наверху надпись "в сети" открываб сити гай на экране в правом верхнем углу "нет" горит и не убирается никак, а на кнопке тоже горит "в сети" и "нет" , но это еще что, если выйти из Road Runner и открыв Internet Explorer в одной из вкладки зайти на сайт сити гай, то в правом углу тоже выскочит "нет", а в панели задач CGJAM.
    Я думаю наверное какие то детские ошибки, нестаит где нибудь чего нибудь, а на большом комп. тоже самое плюс пробки обновляет но не показывает.
    Ну, ты намешал...
    Судя по всему, ты запустил сразу оба скрипта - и avc_control.ahk, и cityguide-is.ahk
    В принципе, ничего плохого в этом нет. Но раз оба пишут "НЕТ", значит ты в обоих неправильно указал путь к jam-файлу (78SPb.jam).

    Как вариант - системное время на компе у тебя стоит неправильное.
    С уважением, Алексей
    Мой Prius NHW11

  7. #57
    Пользователь
    Регистрация
    26.04.2008
    Возраст
    60
    Сообщений
    67
    Вес репутации
    217

    По умолчанию Re: Примеры ahk-скриптов

    А, что надо по одному запускать, я по обоим щелкаю
    Последний раз редактировалось dima007; 26.12.2008 в 00:43.

  8. #58
    Пользователь
    Регистрация
    26.04.2008
    Возраст
    60
    Сообщений
    67
    Вес репутации
    217

    По умолчанию Re: Примеры ahk-скриптов

    Ну вроде доходит,
    -avc_control.ahk это для Road Runner
    -ahk, и cityguide- это когда просто программу одну запускаешь, правельно?

    Пишет в "сети 4"-5 меняет значения, я понял это красные пробки, а других нету и еще прием GPS 4 палки, а Sаt:0, так и должно быть?

  9. #59
    Пользователь
    Регистрация
    26.04.2008
    Возраст
    60
    Сообщений
    67
    Вес репутации
    217

    По умолчанию Re: Примеры ahk-скриптов

    Спасибо все пошло.

  10. #60
    Местный Аватар для Allex
    Регистрация
    15.01.2008
    Возраст
    56
    Сообщений
    114
    Вес репутации
    230

    Хорошо Re: Примеры ahk-скриптов

    Цитата Сообщение от dima007
    Спасибо все пошло.
    Поздравляю! Добил таки, не отступил!

Страница 6 из 13 ПерваяПервая 123456789101112 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •