в Windows была задача сделать модификатор окон который делал прозрачным и проницаемым для мышки выбранное окно
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <WinApi.au3>
;выбор окна для прозрачности и проницаемости мышкой
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("transform_to_ win", 489, 194, 428, 368)
$Label1 = GUICtrlCreateLabel("none", 8, 16, 473, 17)
$Input1 = GUICtrlCreateInput("150", 8, 48, 473, 21)
$Label2 = GUICtrlCreateLabel("Введите число от 0 до 255 чтобы задать прозрачность окна (по умолчанию 150) и нажмите", 11, 72, 466, 17)
$Label3 = GUICtrlCreateLabel("кнопку дальше , наведите на выбронное окно и выждете 10 секунд", 72, 96, 347, 17)
$Button1 = GUICtrlCreateButton("Дальше", 8, 120, 473, 49, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
Sleep(5000)
$set00 = GUICtrlRead($Input1)
$txt0 = _WinAPI_GetMousePos()
$txt1 = _WinAPI_WindowFromPoint($txt0)
$txt2 = _WinAPI_GetWindowText($txt1)
Sleep(5000)
_WinStyles()
$Label1 = GUICtrlCreateLabel($txt2, 8, 16, 473, 17)
EndSwitch
WEnd
Func _WinStyles()
Dim $txt2
$hWnd = WinGetHandle($txt2)
$nStyle = _WinGetStyle($hWnd, 0)
$nExStyle = _WinGetStyle($hWnd, 1)
_WinSetStyle($hWnd, -1,BitOr($nExStyle, BitOr($WS_EX_TRANSPARENT, $WS_EX_TOPMOST)))
WinSetTrans($hWnd,"",$set00);заменил 150 на переменую
WinSetOnTop($hWnd,"",1)
EndFunc
Func _WinSetStyle($hWnd, $nStyle = -1, $nExStyle = 0)
Local Const $GWL_STYLE = -16, $GWL_EXSTYLE = -20
Local Const $SWP_NOMOVE = 0x2, $SWP_NOSIZE = 0x1, $SWP_SHOWWINDOW = 0x40, $SWP_NOZORDER = 0x4
Local $iFlags = BitOR($SWP_SHOWWINDOW, $SWP_NOSIZE, $SWP_NOZORDER)
If $nStyle = -1 Then
$nStyle = BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU)
EndIf
$Pos = WinGetpos($hWnd)
$x = $Pos[0]
$y = $Pos[1]
DllCall("User32.dll", "int", "SetWindowLong", "hwnd", $hWnd, "int", $GWL_STYLE, "int", $nStyle)
DllCall("User32.dll", "int", "SetWindowLong", "hwnd", $hWnd, "int", $GWL_EXSTYLE, "int", $nExStyle)
DllCall("User32.dll", "int", "SetWindowPos", "hwnd", $hWnd, "hwnd", 0, "int", $x + 1, "int", $y + 1 , "int", 0, "int", 0, "int", $iFlags)
EndFunc
Func _WinGetStyle($hWnd, $iIndex = 0)
Local Const $GWL_STYLE = -16, $GWL_EXSTYLE = -20
Local $iGWL_Index = $GWL_STYLE
If $iIndex > 0 Then
$iGWL_Index = $GWL_EXSTYLE
EndIf
Local $aStyles = DllCall('User32.dll', 'long', 'GetWindowLong', 'hwnd', $hWnd, 'int', $iGWL_Index)
Return $aStyles[0]
EndFunc