Hallo,
ich bekomme es nicht hin, unter Vista (keine Ahnung ob das auf Xp funktioniert) eine GUI, direkt über die Traybar zu positionieren. Es ist leider wenige Pixel zu weit nach unten verschoben. Ich denke mal, dass das an dem Fensterrahmen liegt. Wie bekomme ich die breite der Fensterrahmen heraus?
[Blockierte Grafik: http://deepsoftware.spacequadrat.de/Downloads/www.AutoIt.de/GUI_Traybar.jpg]
Ich denke mal so etwas geht mit _WinAPI_GetSystemMetrics? Aber welche Parameter brauche ich dafür?Die "7"?
Spoiler anzeigen
#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.0.0
Author: Burak Keskin ©
Script Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]; Script Start - Add your code below here
[/autoit] [autoit][/autoit] [autoit]#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
_StreamGUI()
[/autoit] [autoit][/autoit] [autoit]Func _StreamGUI()
Opt("WinTitleMatchMode", 4)
Local $TrayPos = WinGetPos("classname=Shell_TrayWnd")
Opt("WinTitleMatchMode", 1)
Local $ReturnValue
Local $TestWindow = GUICreate("Audiodatei streamen", 306, 29, -1, -1, -1, BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE))
Local $WinPos = WinGetPos($TestWindow)
Local $ClientSize = WinGetClientSize($TestWindow)
GUIDelete()
Global $StreamGUI_Handle = GUICreate("Audiodatei streamen", 306, 29, @DesktopWidth - 306, @DesktopHeight - $TrayPos[3] - 29 - ($WinPos[3] - $ClientSize[1]), -1, BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE))
WinSetOnTop($StreamGUI_Handle, "", 1)
GUICtrlCreateLabel("Link:", 8, 8, 27, 17)
GUICtrlSetTip(-1, 'Geben Sie bitte hier die Adresse zur Audiodatei an. Beispiel: "www.musik.de/sänger/interpret.mp3"' & @CRLF _
& "Diese Funktion dient dazu, Audiodateien direkt ohne Download abzuspielen (streamen).", "Link", 1, 1)
Global $StreamGUI_Input = GUICtrlCreateInput(ClipGet(), 40, 4, 225, 19)
Global $StreamGUI_Button = GUICtrlCreateButton("Ok", 272, 4, 27, 19, $BS_DEFPUSHBUTTON)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg(1)
Switch $nMsg[1]
Case $StreamGUI_Handle
Switch $nMsg[0]
Case $GUI_EVENT_CLOSE
GUIDelete($StreamGUI_Handle)
Return SetError(1, 0, 0)
Case $StreamGUI_Input
$ReturnValue = GUICtrlRead($StreamGUI_Input)
GUIDelete($StreamGUI_Handle)
Return $ReturnValue
Case $StreamGUI_Button
$ReturnValue = GUICtrlRead($StreamGUI_Input)
GUIDelete($StreamGUI_Handle)
Return $ReturnValue
EndSwitch
EndSwitch
WEnd
EndFunc ;==>_StreamGUI
Danke schonmal für die Hilfe :).