14.01.2017, 21:25 | #3081 |
Старший Пользователь
Регистрация: 09.07.2011
Город: Ростов на Дону
Регион: 61
Машина: KIA Sorento XM
Сообщений: 745
|
Перекомпелить AHK в Автоит, мож. поможет. Или так нельзя?
__________________
ASUSP8H67-I; INTEL-I5-3570; LGA1155; ОЗУ 8ГБ; ASUS xonar DX; SSD120 ГБ; Блок питания: M2-ATX; Свисток: Dlink dwa 140; GPS:G-STAR IV; Радио: Directed HD Radio; Матрица: ZJ080NA-08A; Тач:Ёмкостной; Оболочка ICARDC; Ось: Win7x64 (Win10x64) |
15.01.2017, 06:10 | #3082 | ||
Бывалый писикарщик
Регистрация: 14.06.2013
Регион: Украина
Машина: Nissan Qashqai+2
Сообщений: 3,424
|
duzzy
Цитата:
Цитата:
На Автоит вообще не нашел прокрутки колеса в нужном окне , как на AHK , одной строчкой через ControlClick - только отдельно и это не решает задачу . |
||
15.01.2017, 16:07 | #3083 |
Гуру
Регистрация: 01.06.2013
Регион: 78, 98
Машина: SUBARU Impreza WRX
Сообщений: 1,766
|
seriousstas
Да похоже в Автоит с прокруткой колесом в окне печаль... Можно по DllCall() и $WM_MOUSEWHEEL(через дельту) но в окне ВУметра не работает прокрутка, а в других программах крутит без проблем. Любое окно F8(крутим вниз) Выход Esc Код:
#include <SendMessage.au3> #include <WinAPI.au3> #include <WindowsConstants.au3> HotKeySet("{ESC}", "_Quit") HotKeySet("{F8}", "_MouseWheelPlusTest") Opt("WinTitleMatchMode", 2) Global $f_Dir = False While 1 Sleep(100) WEnd Func _MouseWheelPlusTest() ;$f_Dir = Not $f_Dir ;If $f_Dir Then ;_MouseWheelPlus("Analog VU Meter", "up", 1) ; Else _MouseWheelPlus("", "down", 0) ;EndIf EndFunc ;==>_MouseWheelPlusTest Func _MouseWheelPlus($Window, $direction, $clicks) $MouseCoord = MouseGetPos() $wdow = WinGetHandle('[CLASS:#32770]','') ControlFocus($wdow,'','') $X = $MouseCoord[0] $Y = $MouseCoord[1] If $direction = "up" Then $WheelDelta = 120 Else $WheelDelta = -220 EndIf For $i = 0 To $clicks $aRET = DllCall("user32.dll", "int", "SendMessage", _ "hwnd", ControlGetHandle(WinGetHandle($Window),'',''), _ "int", $WM_MOUSEWHEEL, _ "long", _MakeLong(0, $WheelDelta), _ "long", _MakeLong($X, $Y)) ;MsgBox(0, @error, $aRET[0]) ;MsgBox(0, '', $Window) ConsoleWrite($Window&' '&$aRET[0] & @CRLF) Next EndFunc ;==>_MouseWheelPlus Func _MakeLong($LoWord, $HiWord) Return BitOR($HiWord * 0x10000, BitAND($LoWord, 0xFFFF)) EndFunc ;==>_MakeLong Func _Quit() Exit EndFunc Можно сделать так, установить в авто комп AHK и компилить уже в авто Код:
#NoTrayIcon #SingleInstance force ControlClick,{88D33FF9-8199-4332-B69C-6B99D67A24C9}2,,Analog VU Meter, WheelDown, 2 ExitApp
__________________
Готовые сборки foobar2000 для КарПС //--- FLAT ---\\ Сборки PotPlayer Полезные утилиты |
15.01.2017, 17:59 | #3084 | |
Бывалый писикарщик
Регистрация: 14.06.2013
Регион: Украина
Машина: Nissan Qashqai+2
Сообщений: 3,424
|
duzzy
Да - тож пробовал по всякому .. Цитата:
120705 Евген_21 Проверте такой : Код:
#include <WinAPI.au3> #include <SendMessage.au3> #include <WindowsConstants.au3> If @OSArch = "X86" Then $CLASSNN = "{88D33FF9-8199-4332-B69C-6B99D67A24C9}1" Else $CLASSNN = "{88D33FF9-8199-4332-B69C-6B99D67A24C9}2" Endif $iCount = -2 ; количество прокруток (минус - вниз, плюс - вверх) $hCtrl = ControlGetHandle("[CLASS:{E7076D1C-A7BF-4f39-B771-BCBE88F2A2A8}]", "", $CLASSNN) _SendMessage($hCtrl, $WM_MOUSEWHEEL, _WinAPI_MakeLong(0, $iCount * 120)) Последний раз редактировалось seriousstas; 15.01.2017 в 19:36. |
|
15.01.2017, 19:11 | #3085 | |||
Бывалый писикарщик
Регистрация: 14.06.2013
Регион: Украина
Машина: Nissan Qashqai+2
Сообщений: 3,424
|
Цитата:
Цитата:
задач - Автоит проигрывает вчистую .. пример : http://autoit-script.ru/index.php?to...4476#msg134476 Цитата:
|
|||
15.01.2017, 21:03 | #3086 | |||
Гуру
Регистрация: 01.06.2013
Регион: 78, 98
Машина: SUBARU Impreza WRX
Сообщений: 1,766
|
seriousstas
Цитата:
ОС 64-ка где меняется, я еще с NEON намучился при использовании АНК, все скрипты с дом.компа не работали пока в машине не перекомпилишь. Цитата:
Замена самого себя... это как ??? Контроль копий --- ты про запуск одной копии скрипта ? если да то это элементарно... Код:
If _Singleton(@ScriptName, 1) = 0 Then ;single process Exit EndIf Цитата:
__________________
Готовые сборки foobar2000 для КарПС //--- FLAT ---\\ Сборки PotPlayer Полезные утилиты |
|||
15.01.2017, 22:58 | #3087 | ||
Бывалый писикарщик
Регистрация: 14.06.2013
Регион: Украина
Машина: Nissan Qashqai+2
Сообщений: 3,424
|
duzzy
Цитата:
#SingleInstance force и просто переключаешь - гениально - и не нужно ничего городить с условиями : #SingleInstance ignore #SingleInstance off на автоитовский _Singleton читал много жалоб - придумывают другие варианты с временной переменной и тд .. AHK :#Persistent - удерживать вместо циклов - есть return .. - Сильно упрощает жизь ) Цитата:
попробуй - работает-ли скрипт , что выше ? Последний раз редактировалось seriousstas; 16.01.2017 в 03:56. |
||
16.01.2017, 14:20 | #3088 | ||
Старший Пользователь
Регистрация: 10.11.2014
Возраст: 48
Город: Усть-Илимск
Регион: 38
Машина: HYUNDAI I30 Рестайлинг
Сообщений: 958
|
duzzy
Цитата:
seriousstas Цитата:
__________________
GIGABYTE LGA1150 GA-85N B85,Intel Core i3-4330 3.5GHz 4Mb 2xDDR3-1600,Kingston HyperX 4Gb...USB GPS приемник Locosys LS-23030G.,блок питания M4-ATX Windows 7-64, iCarDS 1.7.0.60 (лицензия) Оформления и темы для iCarDS |
||
16.01.2017, 15:58 | #3089 | |||
Гуру
Регистрация: 01.06.2013
Регион: 78, 98
Машина: SUBARU Impreza WRX
Сообщений: 1,766
|
seriousstas
Цитата:
С _Singleton у меня проблем не было вообще. Циклы удобней в разы, а Return есть и в Автоит. Цитата:
_SendMessage --- это враппер(упращенный вариант функции) для DllCall - SendMessage. Это можно сделать с любой другой функцией. Пример обертки: _Моя_новая_функ(параметр, параметр, параметр) DllCall(параметр, параметр, параметр) конец функции Вот пример простой обертки в обертке Твой скрипт... Код:
#NoTrayIcon #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=C:\Program Files (x86)\AutoIt3\Aut2Exe\Icons\AutoIt_Main_v10_48x48_RGB-A.ico #AutoIt3Wrapper_Compression=4 #AutoIt3Wrapper_UseUpx=y #AutoIt3Wrapper_Add_Constants=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <WinAPI.au3> #include <SendMessage.au3> #include <WindowsConstants.au3> Func _MouseWheel($iCount) ; количество прокруток ((-2) минус - вниз, (2)плюс - вверх) If @OSArch = "X86" Then $CLASSNN = "1" Else $CLASSNN = "2" EndIf $hCtrl = ControlGetHandle("[CLASS:{E7076D1C-A7BF-4f39-B771-BCBE88F2A2A8}]", "", "{88D33FF9-8199-4332-B69C-6B99D67A24C9}" & $CLASSNN) _SendMessage($hCtrl, $WM_MOUSEWHEEL, _WinAPI_MakeLong(0, $iCount * 120)) EndFunc ;==>_MouseWheel _MouseWheel(2);2 раза вверх _MouseWheel(-2);2 раза вниз Код:
#NoTrayIcon #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=C:\Program Files (x86)\AutoIt3\Aut2Exe\Icons\AutoIt_Main_v10_48x48_RGB-A.ico #AutoIt3Wrapper_Compression=4 #AutoIt3Wrapper_UseUpx=y #AutoIt3Wrapper_Add_Constants=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <WinAPI.au3> #include <SendMessage.au3> #include <WindowsConstants.au3> $window_Class ="[CLASS:{E7076D1C-A7BF-4f39-B771-BCBE88F2A2A8}]" $control_Class ="{88D33FF9-8199-4332-B69C-6B99D67A24C9}2" Func _MouseWheel($wClass, $cClass, $iCount) ;$wClass - класс окна, $cClass - что конролим, количество прокруток ((-2) минус - вниз, (2)плюс - вверх) $hCtrl = ControlGetHandle($wClass, "", $cClass) _SendMessage($hCtrl, $WM_MOUSEWHEEL, _WinAPI_MakeLong(0, $iCount * 120)) EndFunc ;==>_MouseWheel _MouseWheel($window_Class,$control_Class, 2);2 раза вверх _MouseWheel($window_Class,$control_Class, -2);2 раза вниз Цитата:
AU3_Spy.exe запустил навел на окно ВУметра и посмотрел меняется ли параметр или в такой же утилите Автоита... изменил цифру перекомпилил скрипт.
__________________
Готовые сборки foobar2000 для КарПС //--- FLAT ---\\ Сборки PotPlayer Полезные утилиты |
|||
16.01.2017, 16:25 | #3090 | |
Старший Пользователь
Регистрация: 10.11.2014
Возраст: 48
Город: Усть-Илимск
Регион: 38
Машина: HYUNDAI I30 Рестайлинг
Сообщений: 958
|
duzzy
Цитата:
Но, не работает.
__________________
GIGABYTE LGA1150 GA-85N B85,Intel Core i3-4330 3.5GHz 4Mb 2xDDR3-1600,Kingston HyperX 4Gb...USB GPS приемник Locosys LS-23030G.,блок питания M4-ATX Windows 7-64, iCarDS 1.7.0.60 (лицензия) Оформления и темы для iCarDS |
|
Здесь присутствуют: 14 (пользователей: 0 , гостей: 14) | |
|
|