Window Transparency

  • Hallo.

    Nun mal wieder ein kleines Script von mir, welches die Transparenz von Fenstern verändern kann.
    Man muss einfach den Namen des Fensters eingeben, und die Transparenz auswählen, danach den Button drücken,
    und das Fenster hat eine andere Transparenz.
    Dies ist z.B. nützlich wenn ihr etwas im Editor schreiben müsst, und ihr wollt ein Video gucken, dann kann man mit meinem
    Programm einfach die Transparenz ändern, und man kann durch den Editor durchgucken.
    Es funktioniert auch mit anderen Programmen, aber nicht bei Full-Screen Spielen.

    MfG. PrideRage

  • ich habe auch gerade mal so n Ding gemacht, vielleicht hilft es dir weiter

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <SliderConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <array.au3>
    Opt("WinTitleMatchMode", 3)
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Window Transparency", 523, 251, 578, 335)
    $List1 = GUICtrlCreateList("", 0, 0, 521, 201)
    $Slider1 = GUICtrlCreateSlider(152, 216, 134, 29)
    GUICtrlSetLimit(-1, 255, 0)
    $Button1 = GUICtrlCreateButton("Setzte Transparenz", 8, 216, 123, 25, $WS_GROUP)
    $Label1 = GUICtrlCreateLabel("0", 296, 216, 34, 28)
    GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
    $Button2 = GUICtrlCreateButton("Liste erneuern", 352, 216, 107, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    Global $Slider_Read
    GUICtrlSetData($List1, "")
    $Win = WinList()
    For $i = 1 To $Win[0][0]
    If $Win[$i][0] <> "" Then _GUICtrlListBox_AddString($List1, $Win[$i][0])
    Next
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    WinSetTrans(GUICtrlRead($List1), "", GUICtrlRead($Slider1))
    If Not @error Then
    MsgBox(0, "", "Transparenz wurde gesetzt")
    Else
    MsgBox(0, "", "Fehlgeschlagen")
    EndIf
    Case $Button2
    GUICtrlSetData($List1, "")
    $Win = WinList()
    For $i = 1 To $Win[0][0]
    If $Win[$i][0] <> "" Then _GUICtrlListBox_AddString($List1, $Win[$i][0])
    Next
    EndSwitch
    If GUICtrlRead($Slider1) <> $Slider_Read Then
    $Slider_Read = GUICtrlRead($Slider1)
    GUICtrlSetData($Label1, $Slider_Read)
    EndIf
    Sleep(20)
    WEnd

    [/autoit]
  • @xXlowXx

    sieh dir mal die funktion ISVisible aus der hilfe bei winlist an da du sehr viele fenster hast die gar nicht zu öffnen sind

    bei mir in der taskleiste sind 3 in diner liste ca. Hundert
    dass solltest du noch überarbeiten

    @Pridrage

    ich würde an deiner stelle auch evtl mit listview alle wins anzeigen lassen aber auch nur die der taskleiste
    mach weiter so

    gruß Simon

  • Hab mir mal die Freiheit genommen eins zu basteln, so wie ich mir das Vorstelle ;)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #region - GUI Create
    GUICreate('Fenstertransparenz (mit ESC beenden)',300,300,-1,-1,"",$WS_EX_TOPMOST)
    $List = GUICtrlCreateList("", 20, 20, 260,200,$WS_VSCROLL)
    $Slider = GUICtrlCreateSlider(20,220,260,25)
    GUICtrlSetData($Slider,100)
    $Label = GUICtrlCreateLabel("0% Transparenz",100,250,160,25)
    GUISetState(@SW_SHOW)
    #endregion

    [/autoit] [autoit][/autoit] [autoit]

    $SliderOldVal = GUICtrlRead($Slider)

    [/autoit] [autoit][/autoit] [autoit]

    $WinList = WinList()
    For $i = 1 to $WinList[0][0]
    If _IsVisible($WinList[$i][1]) Then
    GUICtrlSetData($List,WinGetTitle($WinList[$i][0]))
    EndIf
    Next
    #region - GUI SelectLoop

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    For $i = 1 to $WinList[0][0]
    If _IsVisible($WinList[$i][1]) Then
    WinSetTrans($WinList[$i][1],"",255)
    If WinGetTitle($WinList[$i][1]) = "Start" Then
    WinSetTrans($WinList[$i][1],"",0)
    EndIf
    EndIf
    Next
    Exit
    EndSwitch
    If $SliderOldVal <> GUICtrlRead($Slider) Then
    If GUICtrlRead($List) == 'Fenstertransparenz (mit ESC beenden)' Then
    GUICtrlSetData($Slider,100)
    else
    GUICtrlSetData($Label,100-GUICtrlRead($Slider)&"% Transparenz")
    WinSetTrans(GUICtrlRead($List),"",GUICtrlRead($Slider)*2.55)
    $SliderOldVal = GUICtrlRead($Slider)
    EndIf
    EndIf

    WEnd
    #endregion

    [/autoit] [autoit][/autoit] [autoit]

    Func _IsVisible($handle)
    If BitAnd( WinGetState($handle), 2 ) Then
    Return 1
    Else
    Return 0
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit]