Показать сообщение отдельно
Старый 16.01.2017, 15:58   #3089
duzzy
Гуру
 
Регистрация: 01.06.2013
Регион: 78, 98
Машина: SUBARU Impreza WRX
Сообщений: 1,766
duzzy has a reputation beyond reputeduzzy has a reputation beyond reputeduzzy has a reputation beyond reputeduzzy has a reputation beyond reputeduzzy has a reputation beyond reputeduzzy has a reputation beyond reputeduzzy has a reputation beyond reputeduzzy has a reputation beyond reputeduzzy has a reputation beyond repute
По умолчанию

seriousstas

Цитата:
#SingleInstance force
Да это тоже самое что и 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 запустил навел на окно ВУметра и посмотрел меняется ли параметр


или в такой же утилите Автоита...


изменил цифру перекомпилил скрипт.
duzzy вне форума   Ответить с цитированием