Что нового

GUI окно прозрачна для "мышки"

zbz

Новичок
Сообщения
74
Репутация
1
Версия AutoIt: 3.

Описание:
Нужно чтоб это окно в скрипте было прозрачно для "мышки" (если возможно, для окна тоже можно было задать визуальную прозрачность).

Код:
local $Ipath = @Scriptdir&"\InstallSupport.png"
local $transColor = 0xABCDEF
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile($Ipath)
$width = _GDIPlus_ImageGetWidth($hImage)
$height = _GDIPlus_ImageGetHeight($hImage)
$hGui = GUICreate("InstallSupport", $width, $height,-1,1,$WS_POPUP,$WS_EX_TOPMOST)
Guisetbkcolor($transColor,$hGui)
_WinAPI_SetLayeredWindowAttributes($hGui,$transColor,255)
GUISetState()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGui)
_GDIPlus_GraphicsDrawImageRect($hGraphic,$hImage,0,0,$width,$height)
ProcessWait("123.exe")
ProcessWaitClose("123.exe")
GUIDelete("InstallSupport")
 
Автор
zbz

zbz

Новичок
Сообщения
74
Репутация
1
Вообщем пришлось, сделать так (наверняка есть "мусор" в скрипте, так как пришлось скрестить два скрипта):

Код:
#Region    ************ Preprocessor Directives ************
#preproc App(ExecLevel, highestAvailable)
#EndRegion ************ Preprocessor Directives ************
; #RequireAdmin
AutoItSetOption("TrayIconDebug",1)
#NoTrayIcon

#Region    ************ Includes ************
;~ #include <GUIConstantsEx.au3>;~~~
#include <WindowsConstants.au3>
;~ #include <winapi.au3>;~~~
#include <gdiplus.au3>
#EndRegion ************ Includes ************

;-----------------------------------------------InstallSupport.png---------------------------------------------------------------------
local $Ipath = @Scriptdir&"\InstallSupport.png"
local $transColor = 0xABCDEF
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile($Ipath)
$width = _GDIPlus_ImageGetWidth($hImage)
$height = _GDIPlus_ImageGetHeight($hImage)

Global $hGui = GUICreate("InstallSupport", $width, $height,-1,22,$WS_POPUP,$WS_EX_TOPMOST), $iExStyle = _WinAPI_GetWindowLong($hGUI, $GWL_EXSTYLE)

Guisetbkcolor($transColor,$hGui)
_WinAPI_SetLayeredWindowAttributes($hGui,$transColor,255)

GUIRegisterMsg($WM_ACTIVATE, "WM_ACTIVATE")
GUISetState()

Func WM_ACTIVATE($hWnd, $iMsg, $wParam, $lParam)
    Switch $hWnd
        Case $hGUI
            Switch _WinAPI_LoWord($wParam)
                Case 0
                    GUISetStyle(Default, $WS_EX_TRANSPARENT)
                    WinSetTrans($hGUI, Null, 130); Визуальная прозрачность (255 не прозрачно)
                Case 1, 2
                    _WinAPI_SetWindowLong($hGUI, $GWL_EXSTYLE, $iExStyle)
            EndSwitch
    EndSwitch
EndFunc   ;==>WM_ACTIVATE

$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGui)
_GDIPlus_GraphicsDrawImageRect($hGraphic,$hImage,0,0,$width,$height)
ProcessWait("123.exe")
ProcessWaitClose("123.exe")
GUIDelete("InstallSupport")
 
Верх