2 Verbesserungen: Bei WinGetPos $hGUI statt $sTitle und Schatten nicht mehr klickbar
Spoiler anzeigen
#NoTrayIcon ; Trayicon erstmal verstecken
#include<EditConstants.au3>
#include<StaticConstants.au3>
#include<GUIConstantsEx.au3>
#include<WindowsConstants.au3>
Opt('GUIOnEventMode', 1) ; OnEventMode für die GUI
Opt('TrayOnEventMode', 1) ; OnEventMode für das Traymenü
Opt('TrayMenuMode', 1) ; Standard-Traymenü entfernen
$sTitle = 'Extended Tooltip'
$BgColor = 0xFFFFDF ; Hintergrundfarbe
$ShColor = 0x666666 ; Schattenfarbe
$Width = 320 ; Breite des Fensters
$Height = 200 ; Höhe des Fensters
$Left = Int(@DesktopWidth/2-$Width/2) ; Horizontale Position (zentriert)
$Top = Int(@DesktopHeight/2-$Height/2) ; Vertikale Position (zentriert)
$hGui = GUICreate($sTitle, $Width, $Height, $Left, $Top, $WS_POPUPWINDOW, $WS_EX_TOOLWINDOW) ; keine Titelleiste, kein Button in der Taskleiste
GUISetBkColor($BgColor) ; Hintergrundfarbe setzen
GUISetOnEvent($GUI_EVENT_CLOSE, '_End') ; [ESC] beendet das Programm
$hLabel = GUICtrlCreateLabel('', 0, 0, $Width, $Height, Default, $GUI_WS_EX_PARENTDRAG) ; Transparentes Label zum verschieben des Fensters
[/autoit] [autoit][/autoit] [autoit]$hHead = GUICtrlCreateLabel('', 10, 10, $Width-20, 30, $SS_CENTER, $GUI_WS_EX_PARENTDRAG) ; Ein Label für die Überschrift
GUICtrlSetFont(-1, 16, 600, 0, 'Arial') ; Größe und Zeichensatz der Überschrift setzen
$hText = GUICtrlCreateEdit('', 10, 45, $Width-20, $Height-60, BitOr($WS_VSCROLL, $ES_AUTOVSCROLL, $ES_READONLY), $WS_EX_TRANSPARENT) ; ein scrollbares Editfeld erstellen
GUICtrlSetBkColor(-1, $BgColor) ; Hintergrundfarbe setzen
GUICtrlSetState(-1, $GUI_ONTOP) ; Das Editfeld nach vorne holen, damit man scrollen kann
$hContextMenu = GUICtrlCreateContextMenu($hLabel) ; Kontextmenü erstellen
GUICtrlCreateMenuItem('Minimieren', $hContextMenu) ; Minimieren-Eintrag erstellen
GUICtrlSetOnEvent(-1, '_Minimize') ; dem Eintrag eine Funktion zuweisen
GUICtrlCreateMenuItem('Beenden', $hContextMenu) ; Beenden-Eintrag erstellen
GUICtrlSetOnEvent(-1, '_End') ; dem Eintrag eine Funktion zuweisen
TrayCreateItem('Wiederherstellen') ; Traymenüeintrag erstellen
TrayItemSetOnEvent(-1, '_Restore') ; dem Eintrag eine Funktion zuweisen
TrayCreateItem('Beenden') ; Traymenüeintrag erstellen
TrayItemSetOnEvent(-1, '_End') ; dem Eintrag eine Funktion zuweisen
$hShadow = GUICreate('Shadow', $Width, $Height, $Left+6, $Top+6, $WS_POPUP, BitOR($WS_EX_TOOLWINDOW,$WS_EX_TRANSPARENT,$WS_EX_LAYERED)) ; Schattenfenster erzeugen
; Schatten sollte Click-through sein, also WS_EX_TRANSPARENT
GUISetBkColor($ShColor) ; Farbe des Schattens setzen
WinSetTrans($hShadow, '', 128) ; Transparenz des Schattens einstellen
GUISetState(@SW_SHOW, $hShadow) ; Schatten anzeigen
GUISetState(@SW_SHOW, $hGui) ; GUI anzeigen
WinSetOnTop('Shadow', '', 1) ; Schatten immer im Vordergrund
WinSetOnTop($sTitle, '', 1) ; GUI immer im Vordergrund
GUIRegisterMsg($WM_MOVE, '_ShadowMove') ; Funktion zum "Schatten verschieben" registrieren
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$msg = 'In der großen Koalition sorgt der Zank um die Novelle des Gesetzes für das Bundeskriminalamt (BKA) weiter für Unmut. Vor allem Bundesinnenminister Wolfgang Schäuble ist nach wie vor erzürnt über den Widerstand auch aus SPD-regierten Ländern gegen die vom Bundestag abgesegnete Ausweitung der BKA-Befugnisse einschließlich einer Lizenz für heimliche Online-Durchsuchungen.'
$msg &= '"Die Führung der Partei kann ihre Entscheidungen derzeit nicht durchsetzen", klagte der CDU-Minister dem "Focus" sein Leid. Der Koalitionspartner befinde sich in einer "akuten Krise". Eine "Handvoll Jusos" in Sachsen könne das Inkrafttreten eines jahrelang beratenen Gesetzes verzögern, schimpfte Schäuble gegen das erste Nein eines Landes gegen das Vorhaben, in dem die Sozialdemokraten mit an der Macht sind.'
GUICtrlSetData($hHead, 'Streit um BKA-Gesetz') ; Überschrift anzeigen
GUICtrlSetData($hText, $msg) ; denText anzeigen
While True ; Endlosschleife
Sleep(10) ; Prozessor entlasten
WEnd
Func _End()
Exit
EndFunc
Func _Minimize()
GUISetState(@SW_HIDE, $hShadow) ; Schatten verstecken
GUISetState(@SW_HIDE, $hGui) ; GUI verstecken
TraySetState(1) ; Trayicon anzeigen
EndFunc
Func _Restore()
GUISetState(@SW_SHOW, $hShadow) ; Schatten wiederherstellen
GUISetState(@SW_SHOW, $hGui) ; GUI wiederherstellen
TraySetState(2) ; Trayicon verstecken
EndFunc
Func _ShadowMove()
Local $pos = WinGetPos($hGui) ; Fensterposition der GUI holen
WinMove('Shadow', '', $pos[0]+6, $pos[1]+6) ; das Schatten-Fenster entsprechend verschieben
EndFunc