Problem bei "Taskleiste berechnen"

  • Ich komm einfach nicht mehr weiter,
    wenn die Taskbar unten ist funktioniert alles einbandfrei.
    Aber wie soll ich das ganze regeln wenn die Taskbar z.b. oben oder an der Seite ist? oO

    Script + Bilder: Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Eintrag im Script ist sicher wenn jemand das ganze zum laufen bringt X(

  • Könnte man das noch "etwas" besser umschreiben? Du willst die Hastybar links, rechts unten und oben anordnen können?

    [autoit]


    ElseIf $TaskbarPos = 2 Then
    $MainForm = GUICreate("", @DesktopWidth, 30, -1, 0, $Style, $ExStyle)
    $GUIBreite = @DesktopWidth

    [/autoit]


    So ist die Gui oben ?(

  • Hallo Sen,

    Ich komm einfach nicht mehr weiter,
    wenn die Taskbar unten ist funktioniert alles einbandfrei.
    Aber wie soll ich das ganze regeln wenn die Taskbar z.b. oben oder an der Seite ist? oO

    Script + Bilder: Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Eintrag im Script ist sicher wenn jemand das ganze zum laufen bringt X(


    Könntest du das Problem bitte etwas genauer beschreiben:

    • welche Taskbar meinst du?
      • deine also HastyBar
      • oder die von Windows also Taskleiste

      willst du bei HastyBar eventuell auf die Position der Taskleiste reagieren? BugFix hat eine Funktion (_GetTaskBarProps)

    • Auch könntest du dein Skript etwas kommentieren: bei TaskBarPos unbedingt Pflicht, damit man erkennt was du überhaupt vorhast.

    mfg (Auto)Bert

  • Hi,

    also um Informationen über die Taskleiste zu erhalten nimm dies: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Desktop
    Mit dem REG_BINARY: TaskbarWinXP
    Da es Binary ist kann zumindest ich mal wenig damit anfangen :/ Aber die Position wird so wohl auch angegeben sein ...
    Ich hab nur gelesen dass wenn man was ändern will die Änderung erst nach einem Neustart sichtbar wird. Änderungen on the fly funktionieren angeblich mit der ntuser.dat aber wie das speziell mit der Taskbar aussieht... keine Ahnung :/

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Hallo Sen,

    hab dein Skript mal überarbeitet (unter der Annahme, dass du die Position der Taskleiste nicht berücksichtigst):

    Spoiler anzeigen
    [autoit]

    ;---------------------------------------------------------------------------—
    ; HastyBar
    ; By Sen // Christopher Klay
    ;---------------------------------------------------------------------------—
    ; Version - V 1.2
    ;---------------------------------------------------------------------------—
    ; Beschreibung:
    ; Extra Toolbar
    ;---------------------------------------------------------------------------—-
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <INet.au3>
    #include <StaticConstants.au3>
    #include <File.au3>
    #include <Array.au3>
    #include <Winapi.au3>
    #NoTrayIcon

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

    #Region DesktopData
    Global $iHBarWidth, $iHBarHeight, $iHBarLeft, $iHBarTop ;Positionsdaten für Erstellung

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

    ;Variablen um die ID der Controls aufzunehmen
    Global $aPicID[14] ;13 Bilder
    Global $hlblTime ;Label für Uhrzeit
    Global $hinpIE ;Eingabe für Explorer etc.

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

    Global $aPicPath[16] ;1-13 OrdnerPfade für Bilder 15 = IE 16 = Uhrzeit
    ;die beiden letzten sind Dummys da die Controls über den Namen des BMPs indentifiziert werden sollen
    $aPicPath[15] = "TIME"
    $aPicPath[14] = "IE"
    $aPicPath[13] = "Images/BarTop.bmp" ;scheint ohne Funktion zu sein
    $aPicPath[12] = "Images/Offline.bmp"
    $aPicPath[11] = "Images/BlockScreenOn.bmp"
    $aPicPath[10] = "Images/VolDown.bmp"
    $aPicPath[9] = "Images/Stop.bmp"
    $aPicPath[8] = "Images/VolUp.bmp"
    $aPicPath[7] = "Images/Trans.bmp"
    $aPicPath[6] = "Images/Dokumente.bmp"
    $aPicPath[5] = "Images/Favorites.bmp"
    $aPicPath[4] = "Images/Ordner.bmp"
    $aPicPath[3] = "Images/Working.bmp"
    $aPicPath[2] = "Images/Browser.bmp"
    $aPicPath[1] = "Images/Exit.bmp"
    ;Global $aToolTips[16] ;ToolTips zu Cotronls 1-14 = Pics 15 = Eingabe für IE 16 = Uhrzeit
    #EndRegion DesktopData

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

    Opt("TrayAutoPause", 0)
    Opt("OnExitFunc", "OnExit")
    ;opt("MustDeclareVars",1)

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

    #Region - Create DllStruct
    Const $SPI_SETWORKAREA = 47
    Const $SPIF_SENDCHANGE = 2
    Local $tRECT = DllStructCreate('int;int;int;int')
    DllStructSetData($tRECT, 1, 0)
    DllStructSetData($tRECT, 2, 0)
    DllStructSetData($tRECT, 3, @DesktopWidth)
    #EndRegion - Create DllStruct

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

    $BackgroundFarbe = IniRead(@ScriptDir & "/Settings.ini", "HastyBar", "HintergrundFarbe", "FFFFFF")
    $TaskbarPos = IniRead(@ScriptDir & "/Settings.ini", "HastyBar", "Taskbar(1-Unten/2-Seite(links)/3-Seite(rechts)/4-Oben)", "1")
    $TransScal = IniRead(@ScriptDir & "/Settings.ini", "HastyBar", "Transparenz(1-100%/2-80%/3-50%)", "1")
    $OrdnerPfad = IniRead(@ScriptDir & "/Settings.ini", "HastyBar", "OrdnerPfad", "C:\")
    $TaskbarHohe = _Taskbar("Hoch")
    $TaskbarBreite = _Taskbar("Breit")
    $Style = "0x96000000"
    $ExStyle = "0x00000088"
    $Zeit = @HOUR & ":" & @MIN & ":" & @SEC
    $PlayStop = "Stop"
    $ShowHide = "Show"

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

    #Region SetDesktopAreaOn ;<========== überarbeiten
    If $TaskbarPos = "1" Then
    DllStructSetData($tRECT, 4, @DesktopHeight - $TaskbarHohe - 30)
    ElseIf $TaskbarPos = "2" Then
    DllStructSetData($tRECT, 4, @DesktopHeight - 30)
    EndIf
    _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tRECT), $SPIF_SENDCHANGE)
    #EndRegion SetDesktopAreaOn

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

    #Region GUI

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

    $TaskbarPos = 4 ; <======= zum Testen wiede entfernen

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

    Switch $TaskbarPos
    Case 1 ;unten
    $iHBarWidth = @DesktopWidth
    $iHBarHeight = 30
    $iHBarLeft = 0
    $iHBarTop = @DesktopHeight - $iHBarHeight
    Case 2 ;links
    $iHBarWidth = 150
    $iHBarHeight = @DesktopHeight
    $iHBarLeft = 0
    $iHBarTop = 0
    Case 3 ;rechts
    $iHBarWidth = 150
    $iHBarHeight = @DesktopHeight
    $iHBarLeft = @DesktopWidth - $iHBarWidth
    $iHBarTop = 0
    Case 4 ;oben
    $iHBarWidth = @DesktopWidth
    $iHBarHeight = 30
    $iHBarLeft = 0
    $iHBarTop = 0
    EndSwitch

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

    $MainForm = GUICreate("", $iHBarWidth, $iHBarHeight, $iHBarLeft, $iHBarTop, $Style, $ExStyle)

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

    $hlblTime = GUICtrlCreateLabel($Zeit, $iHBarWidth - 60, 5, 55, 20, $SS_CENTER)
    $PicTop = GUICtrlCreatePic("Images/BarTop.bmp", 0, 0, $iHBarWidth, 5)

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

    Switch $TaskbarPos
    Case 1, 4 ;HastyBar ist unten oder oben
    For $i = 1 To 12
    $iPicLeft = $iHBarWidth - 65 - $i * 20
    $iPicTop = 5
    ; ConsoleWrite($aPicPath[$i] & " für:" & $i & " Left: " & $iPicLeft & " Top: " & $iPicTop & @CRLF)
    $aPicID[$i] = GUICtrlCreatePic($aPicPath[$i], $iPicLeft, $iPicTop, 20, 20)
    Next
    $Input = GUICtrlCreateInput("", 5, 5, $iHBarWidth - 320)
    Case 2, 3 ;HastyBar ist links oder rechts hier musst du noch alle Controls anordnen (im Array mit Formeln gehts einfacher)
    For $i = 1 To 12
    Switch $i
    Case 1 To 6
    $iPicLeft = $iHBarWidth - $i * 20
    $iPicTop = 30
    Case Else
    $iPicLeft = $iHBarWidth - ($i - 6) * 20
    $iPicTop = 50
    EndSwitch
    ; ConsoleWrite($aPicPath[$i] & " für:" & $i & " Left: " & $iPicLeft & " Top: " & $iPicTop & @CRLF)
    $aPicID[$i] = GUICtrlCreatePic($aPicPath[$i], $iPicLeft, $iPicTop, 20, 20)
    Next
    $hinpIE = GUICtrlCreateInput("", 5, $iPicTop + 30, $iHBarWidth - 10, $iHBarHeight - $iPicTop - 60)
    EndSwitch

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

    GUISetBkColor($BackgroundFarbe, $MainForm)
    GUICtrlSetBkColor($hlblTime, 0xFFFFFF)
    GUICtrlSetBkColor($hinpIE, 0xFFFFFF)
    GUICtrlSetColor($hinpIE, $BackgroundFarbe)

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

    If $TransScal = 1 Then
    WinSetTrans($MainForm, "", "255")
    ElseIf $TransScal = 2 Then
    WinSetTrans($MainForm, "", "204")
    ElseIf $TransScal = 3 Then
    WinSetTrans($MainForm, "", "127")
    EndIf

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

    GUISetState(@SW_SHOW, $MainForm)
    #EndRegion GUI

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

    While 1
    ;Zeit aktualisieren
    $Zeit = @HOUR & ":" & @MIN & ":" & @SEC
    GUICtrlSetData($hlblTime, $Zeit)

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

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $aPicID[1]
    Exit
    Case $aPicID[11] ;BlockScreen
    If $ShowHide = "Show" Then
    SplashScreen("On")
    $ShowHide = "Hide"
    GUICtrlSetImage($aPicID[11], "Images/BlockScreenOff.bmp")
    ElseIf $ShowHide = "Hide" Then
    SplashScreen("Off")
    $ShowHide = "Show"
    GUICtrlSetImage($aPicID[11], "Images/BlockScreenOn.bmp")
    EndIf
    Case $aPicID[10] ;VolDownButton
    Send("{VOLUME_DOWN}")
    Send("{VOLUME_DOWN}")
    Send("{VOLUME_DOWN}")
    Case $aPicID[8] ;VolUpButton
    Send("{VOLUME_UP}")
    Send("{VOLUME_UP}")
    Send("{VOLUME_UP}")
    Case $aPicID[9] ;PlayStopButton
    If $PlayStop = "Play" Then
    Send("{VOLUME_MUTE}")
    $PlayStop = "Stop"
    GUICtrlSetImage($aPicID[9], "Images/Stop.bmp")
    ElseIf $PlayStop = "Stop" Then
    Send("{VOLUME_MUTE}")
    $PlayStop = "Play"
    GUICtrlSetImage($aPicID[9], "Images/Play.bmp")
    EndIf
    Case $aPicID[12] ;On- OfflineButton
    $OnlineStatus = _INetGetSource("www.google.com")
    If Not $OnlineStatus = "" Then
    GUICtrlSetImage($aPicID[12], "Images/Online.bmp")
    Else
    GUICtrlSetImage($aPicID[12], "Images/Offline.bmp")
    EndIf
    Case $aPicID[3] ;WorkingButton
    ShellExecute("::{20D04FE0-3AEA-1069-A2D8-08002B30309D}")
    Case $aPicID[5] ;FavoritesButton
    ShellExecute(@FavoritesDir)
    Case $aPicID[4] ;Ordner
    ShellExecute($OrdnerPfad)
    Case $aPicID[6] ;$DokumenteButton
    ShellExecute(@MyDocumentsDir)
    Case $aPicID[2] ;BrowserButton
    ShellExecute("http://")
    Case $aPicID[7] ;$TransButton
    If $TransScal = "1" Then
    WinSetTrans($MainForm, "", "204")
    $TransScal = "2"
    IniWrite(@ScriptDir & "/Settings.ini", "HastyBar", "Transparenz(1-100%/2-80%/3-50%)", "2")
    ElseIf $TransScal = "2" Then
    WinSetTrans($MainForm, "", "127")
    $TransScal = "3"
    IniWrite(@ScriptDir & "/Settings.ini", "HastyBar", "Transparenz(1-100%/2-80%/3-50%)", "3")
    ElseIf $TransScal = "3" Then
    WinSetTrans($MainForm, "", "255")
    $TransScal = "1"
    IniWrite(@ScriptDir & "/Settings.ini", "HastyBar", "Transparenz(1-100%/2-80%/3-50%)", "1")
    EndIf
    Case $hinpIE
    CheckFunktionInput()
    EndSwitch

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

    Sleep(50)
    WEnd

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

    Func CheckFunktionInput()
    $InputText = GUICtrlRead($hinpIE)

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

    If StringLeft($InputText, 7) = "!google" Then
    $InputText = StringReplace($InputText, "!google ", "http://www.google.de/search?q=")
    ShellExecute($InputText)
    ElseIf StringLeft($InputText, 4) = "!icq" Then
    $InputText = StringReplace($InputText, "!icq ", "http://people.icq.com/people/about_me.php?uin=")
    ShellExecute($InputText)
    ElseIf StringLeft($InputText, 4) = "!svz" Then
    $InputText = StringReplace($InputText, "!svz ", "http://www.schuelervz.net/Profile/")
    ShellExecute($InputText)
    ElseIf StringLeft($InputText, 4) = "!gbo" Then
    $InputText = StringReplace($InputText, "!gbo ", "http://german-bash.org/")
    ShellExecute($InputText)
    ElseIf StringLeft($InputText, 4) = "!dict" Then
    $InputText = StringReplace($InputText, "!dict ", "http://www.dict.cc/?s=")
    ShellExecute($InputText)
    ElseIf StringLeft($InputText, 7) = "!lmgtfy" Then
    $InputText = StringReplace($InputText, "!lmgtfy ", "http://lmgtfy.com/?q=")
    ShellExecute($InputText)
    ElseIf StringLeft($InputText, 5) = "!spin" Then
    $InputText = StringReplace($InputText, "!spin ", "http://www.spin.de/hp/")
    ShellExecute($InputText)
    ElseIf StringLeft($InputText, 12) = "!spieletipps" Then
    $InputText = StringReplace($InputText, "!spieletipps ", "http://www.spieletipps.de/cheats/search_v2.php?keyword=")
    ShellExecute($InputText)
    ElseIf StringLeft($InputText, 8) = "!twitter" Then
    $InputText = StringReplace($InputText, "!twitter ", "http://twitter.com/")
    ShellExecute($InputText)
    ElseIf StringLeft($InputText, 3) = "!dA" Then
    $InputText = StringReplace($InputText, "!dA ", "http://browse.deviantart.com/#order=9&q=")
    ShellExecute($InputText)
    ElseIf StringLeft($InputText, 5) = "!ping" Then
    $InputText = StringReplace($InputText, "!ping", "")
    $Ping = Ping($InputText)
    If $Ping = "0" Then $Ping = "Error"
    MsgBox(0, "", "Ping von " & $InputText & " = " & $Ping)
    ElseIf StringLeft($InputText, 8) = "!sysinfo" Then
    MsgBox(4096, "HastyBar - SysInfo", "Betreibssystem: " & @OSType & @CRLF & "OS-Build: " & @OSBuild & @CRLF & "Service Pack: " & @OSServicePack & @CRLF & "Computer Name: " & @ComputerName & @CRLF & "Username: " & @UserName & @CRLF & @CRLF & @CRLF & "IP-Adresse(1): " & @IPAddress1 & @CRLF & "IP-Adresse(2): " & @IPAddress2 & @CRLF & "IP-Adresse(3): " & @IPAddress3 & @CRLF & "IP-Adresse(4): " & @IPAddress4)
    ElseIf StringLeft($InputText, 4) = "www." Then
    ShellExecute($InputText)
    ElseIf StringLeft($InputText, 7) = "http://" Then
    ShellExecute($InputText)
    ElseIf StringLeft($InputText, 8) = "https://" Then
    ShellExecute($InputText)
    EndIf

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

    GUICtrlSetData($Input, "")
    EndFunc ;==>CheckFunktionInput

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

    Func _Taskbar($Art)
    Local $value = Opt("WinTitleMatchMode", 4)
    Local $Pos = WinGetPos("classname=Shell_TrayWnd")
    Opt("WinTitleMatchMode", $value)
    If $Art = "Hoch" Then
    Return $Pos[3]
    ElseIf $Art = "Breit" Then
    Return $Pos[2]
    EndIf

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

    EndFunc ;==>_Taskbar

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

    Func SplashScreen($OnOff) ;< =================== überarbeiten
    If $OnOff = "On" Then
    If $TaskbarPos = "1" Then
    $Splash = SplashImageOn("", "Images/Splash.bmp", @DesktopWidth, @DesktopHeight - 30 - $TaskbarHohe, 0, 0, 1)
    Else
    $Splash = SplashImageOn("", "Images/Splash.bmp", @DesktopWidth, @DesktopHeight - 30, -1, 0)
    EndIf
    ElseIf $OnOff = "Off" Then
    SplashOff()
    EndIf
    EndFunc ;==>SplashScreen

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

    Func OnExit() ;überarbeiten
    #Region SetDesktopAreaOff
    If $TaskbarPos = "1" Then
    DllStructSetData($tRECT, 4, @DesktopHeight - $iHBarHeight)
    _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tRECT), $SPIF_SENDCHANGE)
    Else
    DllStructSetData($tRECT, 4, @DesktopHeight - $iHBarHeight)
    _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tRECT), $SPIF_SENDCHANGE)
    EndIf
    #EndRegion SetDesktopAreaOff
    EndFunc ;==>OnExit

    [/autoit]

    Viel Spaß damit,

    mfg (Auto)Bert

  • Zitat

    welche Taskbar meinst du?

    Ich meine die Windows Taskleiste.
    Die Höhe/Breite der Taskleiste werden bereits ausgelelsen, siehe:

    [autoit]


    $TaskbarHohe = _Taskbar("Hoch")
    $TaskbarBreite = _Taskbar("Breit")

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

    Func _Taskbar($Art)
    Local $value = Opt("WinTitleMatchMode", 4)
    Local $Pos = WinGetPos("classname=Shell_TrayWnd")
    Opt("WinTitleMatchMode", $value)
    If $Art = "Hoch" Then
    Return $Pos[3]
    ElseIf $Art = "Breit" Then
    Return $Pos[2]
    EndIf
    EndFunc ;==>_Taskbar

    [/autoit]

    Mein Problem ist jetzt nur wie ich scripten kann das die HastyBar
    sich je nach Position der Windows Taskbar anpasst.
    Damit meine ich nicht die Position der HastyBar (sollte im Script bereits funktionieren)
    sondern die richtige Einschränkung über die WinApi

    [autoit]


    #Region SetDesktopAreaOn ;<========== überarbeiten
    If $TaskbarPos = "1" Then
    DllStructSetData($tRECT, 4, @DesktopHeight - $TaskbarHohe - 30)
    ElseIf $TaskbarPos = "2" Then
    DllStructSetData($tRECT, 4, @DesktopHeight - 30)
    EndIf
    _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tRECT), $SPIF_SENDCHANGE)
    #EndRegion SetDesktopAreaOn

    [/autoit]


    Da bei mir meistens Fehler mit dem Desktop auftauchen und ich ihn erst wieder auf meine
    Auflösung zurücksetzen muss wenn die Taskleiste nicht unten ist.

  • Hallo sen,

    Zitat

    Mein Problem ist jetzt nur wie ich scripten kann das die HastyBar
    sich je nach Position der Windows Taskbar anpasst.
    Damit meine ich nicht die Position der HastyBar (sollte im Script bereits funktionieren)
    sondern die richtige Einschränkung über die WinApi


    Bei deinem Skipt hatte ich abhängig von $TaskbarPos folgende Ergebnisse:

    • 1 = HastyBar war unten aber für die Taskleiste war noch Platz
    • 2 und 3 = Programm wird sofort beendet ohne Fehlermeldung
    • 4 = TaskLeiste ist ganz unten

    Getestet habe ich mit Setzen des $TaskbarPos direkt vor GuiCreate. (zu bequem INI zu editieren)
    Da ich TaskBar und HastyBar gleichgesetzt habe und dies nicht zu der Skriptzeile passt

    [autoit]

    $TaskbarPos = IniRead(@ScriptDir & "/Settings.ini", "HastyBar", "Taskbar(1-Unten/2-Seite(links)/3-Seite(rechts)/4-Oben)", "1")

    [/autoit]

    habe ich das Skript, das ich in #6 gepostet habe, geschrieben. Schade das es umsonst war, aber jetzt weiss ich HastyBar = HastyBar und TaskBar = Taskleiste.

    An diesen Teilbereichen des Codes solltest du noch arbeiten bzw. mit $TaskbarPos = 2 und 3 austesten

    Spoiler anzeigen
    [autoit]

    #Region SetDesktopAreaOn ;<========== überarbeiten
    If $TaskbarPos = "1" Then
    DllStructSetData($tRECT, 4, @DesktopHeight - $TaskbarHohe - 30)
    ElseIf $TaskbarPos = "2" Then
    DllStructSetData($tRECT, 4, @DesktopHeight - 30)
    EndIf
    _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tRECT), $SPIF_SENDCHANGE)
    #EndRegion SetDesktopAreaOn

    [/autoit]
    Spoiler anzeigen
    [autoit]

    Func SplashScreen($OnOff)
    If $OnOff = "On" Then
    If $TaskbarPos = "1" Then
    $Splash = SplashImageOn("", "Images/Splash.bmp", @DesktopWidth, @DesktopHeight - 30 - $TaskbarHohe, 0, 0, 1)
    Else
    $Splash = SplashImageOn("", "Images/Splash.bmp", @DesktopWidth, @DesktopHeight - 30, -1, 0)
    EndIf
    ElseIf $OnOff = "Off" Then
    SplashOff()
    EndIf
    EndFunc ;==>SplashScreen

    [/autoit]
    Spoiler anzeigen
    [autoit]

    Func OnExit()
    #Region SetDesktopAreaOff
    If $TaskbarPos = "1" Then
    DllStructSetData($tRECT, 4, $DesktopHeight - $TaskbarHohe)
    _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tRECT), $SPIF_SENDCHANGE)
    Else
    DllStructSetData($tRECT, 4, $DesktopHeight - $TaskbarHohe)
    _WinAPI_SystemParametersInfo($SPI_SETWORKAREA, 0, DllStructGetPtr($tRECT), $SPIF_SENDCHANGE)
    EndIf
    #EndRegion SetDesktopAreaOff
    EndFunc ;==>OnExit

    [/autoit]

    mein verfügbarer Desktopbereich hat sich nämlich verstellt.
    Hast du einen guten Link fü Infos zu $SPI_SETWORKAREA, damit ich dass mal nachlesen kann, im Moment nämlich (noch) kA,

    mfg (Auto)Bert