Версия AutoIt: 3.2.12.1
Описание: Прошу помощи у более опытных пользователей AutoIt. Система Windows_XP_Professional_SP3. Идея такая: открыто более одного "свёрнутого в окно" окна; при переводе указателя мыши за пределы активного окна (№1) на неактивное (№2) должно происходить следующее: окно № 1 становится полупрозрачным, при возврате мышки на окно № 1 всё возвращается в исходный вид, т.е. окна № 1 и № 2 - непрозрачные, окно № 1 - активно.
Примечания: Прикладываю свой скрипт на рассмотрение, что не так делаю?
Описание: Прошу помощи у более опытных пользователей AutoIt. Система Windows_XP_Professional_SP3. Идея такая: открыто более одного "свёрнутого в окно" окна; при переводе указателя мыши за пределы активного окна (№1) на неактивное (№2) должно происходить следующее: окно № 1 становится полупрозрачным, при возврате мышки на окно № 1 всё возвращается в исходный вид, т.е. окна № 1 и № 2 - непрозрачные, окно № 1 - активно.
Примечания: Прикладываю свой скрипт на рассмотрение, что не так делаю?
Код:
#include <Constants.au3>
; Управление выполнением скрипта: пауза - стоп
Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
While 1
Sleep(100)
WEnd
Func TogglePause()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip('Скрипт приостановлен',0,0)
WEnd
ToolTip("")
EndFunc
Func Terminate()
Exit 0
EndFunc
; Далее идёт скрипт
$hWin = WinGetHandle("[ACTIVE]") ;получить хэндл всех активных окон
$var = WinList() ;все видимые окна
$Pos = MouseGetPos()
$state = WinGetState("[ACTIVE]") ;активное окно
While 1
If $state = 1 Then Exit
Sleep(10)
If $state > 1 Then
MouseGetPos()
WinGetState("")
While MouseGetPos() = WinGetState("")
Sleep(10)
WEnd
If Not MouseGetPos() = WinGetState("") Then WinSetTrans("", "", 170)
EndIf
WEnd
#cs ----------------------------------------------------------------------------
Второй вариант сценария:
While 1
If Not $hWin Then Sleep(10);если нет активных окон - бездействовать
If $var = [1] Then Sleep(10) ;если окно одно - бездействовать
If $var > [1] Then
If BitAND(WinGetState($hWin), 8) Then $Pos = MouseGetPos()
If Not $Pos = $state then WinSetTrans($state, "", 170) ;если мышь вне активного окна, сделать его полупрозрачным
EndIf
WEnd
#ce ----------------------------------------------------------------------------