seriousstas
Да это тоже самое что и If _Singleton(@ScriptName, 1)... просто в более красивой обертке.
С _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 раза вниз
Евген_21
Цитата:
Попробовал, твой вариант. Не вышло.
|
Да там выходить то нечему скрипт в одну строку, и поменять нужно всего одну цифру в нем.
AU3_Spy.exe запустил навел на окно ВУметра и посмотрел меняется ли параметр
или в такой же утилите Автоита...
изменил цифру перекомпилил скрипт.