Heyho Leute
Ich hab da mal eine Frage. Es geht um dieses Bild.
autoit.de/wcf/attachment/6371/
Wie kann man die Buttons "oben rechts" verändern? Bzw. einen hinzufügen?
Und wie hat Google das gemacht? Das Google Label.
Weiß wer ob das geht? Viel mehr wie das geht?
Kann man sowas mit AutoIt erstellen?
-
- [ offen ]
-
Nischlas -
14. Oktober 2009 um 18:19 -
Geschlossen -
Erledigt
-
-
HeyHo Nischlas,
erstelle eine Gui mit dem Stil $WS_POPUP, darauf kannst du dann eigene Icons im Bereich der normalen Titelleiste erzeugen z.B:
[autoit]#include <WindowsConstants.au3>
[/autoit][autoit][/autoit][autoit]
#include <GUIConstantsEx.au3>#cs ----------------------------------------------------------------------------
[/autoit][autoit][/autoit][autoit]AutoIt Version: 3.3.0.0
[/autoit][autoit][/autoit][autoit]
Author: AutoBert
Script Function: Template for Background-Image (JPG)#ce ----------------------------------------------------------------------------
[/autoit][autoit][/autoit][autoit][/autoit][autoit]Opt("GUIOnEventMode", 1) ;ONEvent Mode.
[/autoit][autoit][/autoit][autoit][/autoit][autoit]Global $iWidht = 1024, $iHeight = 550
[/autoit][autoit][/autoit][autoit]HotKeySet("{F6}", "_hide")
[/autoit][autoit][/autoit][autoit]
$hfrmMain = GUICreate("HintergrundBild", $iWidht, $iHeight,0,0,$WS_POPUP, $WS_EX_CLIENTEDGE)
$hjpgBckgrnd = GUICtrlCreatePic("bin\bg" & Random(1, 8, 1) & ".jpg", 0, 0, $iWidht, $iHeight) ;change bgX.jpg with your jpeg
GUICtrlSetState(-1, $GUI_DISABLE)
$hclose = GUICtrlCreateIcon("close.ico", -1,900, 0, 16, 16)
GUICtrlSetOnEvent($hclose, "_exitMain")
$hbtnMini = GUICtrlCreateIcon("mini.ico", -1,820,0, 16, 16)
GUICtrlSetOnEvent($hbtnmini, "_Minimize")
$hbtnMaxi = GUICtrlCreateIcon("maxi.ico", -1,860,0, 16, 16)
GUICtrlSetOnEvent($hbtnmaxi, "_Maximize")
$hbtnExit = GUICtrlCreateButton("Be&enden", $iWidht - 100, $iHeight - 50, 80)
GUICtrlSetOnEvent(-1, "_exitMain")
GUISetState()While True
[/autoit][autoit][/autoit][autoit]
Sleep(1000)
WEndFunc _exitMain()
[/autoit][autoit][/autoit][autoit]
Exit
EndFunc ;==>_exitMainFunc _Minimize()
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
GUISetState(@SW_MINIMIZE,$hfrmMain)
EndFunc ;==>_exitMain
Func _Maximize()
GUISetState(@SW_MAXIMIZE,$hfrmMain)
EndFunc ;==>_exitMain; -------------- func
[/autoit][autoit][/autoit][autoit]
Func _hide()
GUISetState(@SW_HIDE, $hfrmMain)
HotKeySet("{F6}", "_show")
EndFunc ;==>_hideFunc _show()
[/autoit][autoit][/autoit][autoit]
GUISetState(@SW_SHOW, $hfrmMain)
HotKeySet("{F6}", "_hide")
EndFunc ;==>_showFunc _OpenJPG()
[/autoit]
$sjpgBckgrnd = FileOpenDialog("Hintergrundbild auswählen", @ScriptDir & "\bin", "Images (*.jpg)", 1, "", $hfrmMain)
GUICtrlSetImage($hjpgBckgrnd, $sjpgBckgrnd)
EndFunc ;==>_OpenJPGmfg (Auto)Bert
-
Du kannst dir auch einfach selber die bilder machen und sie dort positionieren
-
HeyHo Nischlas,
ich habe das Skript noch einmal überarbeitet:
Spoiler anzeigen
[autoit]#include <WindowsConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.0.0
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Authors: AutoBert => MainWindow with personalized Icons
funkey => Menu-everywhere
Script Function: Template for Background-Image (JPG)
#ce ----------------------------------------------------------------------------Opt("GUIOnEventMode", 1) ;ONEvent Mode.
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Global $iWidht = 1024, $iHeight = 550
[/autoit] [autoit][/autoit] [autoit]HotKeySet("{F6}", "_hide")
[/autoit] [autoit][/autoit] [autoit]
$hfrmMain = GUICreate("", $iWidht, $iHeight, 0, 0, BitOR($WS_POPUPWINDOW, $WS_THICKFRAME)) ;$WS_POPUPWINDOW oder $WS_POPUP ist unbedingt erforderlich
GUISetOnEvent($GUI_EVENT_CLOSE, "_exitMain") ;damit GUI auch mit F4 h´geschlossen werden kann
;$hjpgBckgrnd = GUICtrlCreatePic(@ScriptDir & "\bin\beetle.JPG", 0, 0, $iWidht, $iHeight)
GUISetIcon(@ScriptDir & "\bin\app.ico") ;Setzt ein Icon für das Programm, bei diesem Stil nur in der Taskleiste bemerkbar
$hjpgBckgrnd = GUICtrlCreatePic(@ScriptDir & "\bin\beetle.JPG", 0, -40, $iWidht, $iHeight) ;Ersatz für Programmicon, da bei diesem Stil nicht anders möglich
GUICtrlSetState(-1, $GUI_DISABLE)
$hlblMyTitle = GUICtrlCreateLabel("Meine personalisierte GUI", 200, 2, 500, 22, -1, BitOR($GUI_WS_EX_PARENTDRAG,$WS_EX_TRANSPARENT))
;um das Verschieben zu rmöglichen ist der erweiterte Stil $GUI_WS_EX_PARENTDRAG notwendig
GUICtrlSetTip(-1, "hier kann das Fenster mit der Maus verschoben werden", "Personalized Gui", 1,1)
GUICtrlSetBkColor(-1, 0xffffff) ; alles was die Farbe weiß hat, erscheint transparent
GUICtrlSetFont(-1, 16)
GUICtrlSetResizing(-1, $GUI_DOCKAll)GUISwitch($hfrmMain)
[/autoit] [autoit][/autoit] [autoit]
$hicoApp = GUICtrlCreateIcon(@ScriptDir & "\bin\App.ico", -1, 0, -4, 58, 30)
GUICtrlSetOnEvent($hicoApp, "_about")
GUICtrlSetTip(-1, "Zeigt Infos zu dem Programm", "Personalized Gui", 1,1)$hicoClose = GUICtrlCreateIcon(@ScriptDir & "\bin\close.ico", -1, 900, 5, 16, 16)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetOnEvent($hicoClose, "_exitMain")
GUICtrlSetTip(-1, "Programm schliessen", "Personalized Gui", 1, 1)$hicoMini = GUICtrlCreateIcon(@ScriptDir & "\bin\mini.ico", -1, 820, 5, 16, 16)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetOnEvent($hicoMini, "_Minimize")
GUICtrlSetTip(-1, "minimieren", "Personalized Gui", 1,1)$hicoMaxi = GUICtrlCreateIcon(@ScriptDir & "\bin\maxi.ico", -1, 860, 5, 16, 16)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetOnEvent($hicoMaxi, "_Maximize")
GUICtrlSetTip(-1, "maximieren", "Personalized Gui", 1,1)$hicoNorm = GUICtrlCreateIcon(@ScriptDir & "\bin\normalize.ico", -1, 860, 5, 16, 16)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetOnEvent($hicoNorm, "_Normalize")
GUICtrlSetTip(-1, "wiederherstellen", "Personalized Gui", 1,1)
GUICtrlSetState($hicoNorm, $GUI_HIDE)$hbtnExit = GUICtrlCreateButton("Be&enden", $iWidht - 100, $iHeight - 70, 80, 20, -1, $WS_EX_TRANSPARENT)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetTip(-1, "Programm beenden", "Personalized Gui", 1,1)
GUICtrlSetOnEvent(-1, "_exitMain")
;-------------------LINE
$line = GUICtrlCreateGraphic(0, 24, $iWidht, 2)
GUICtrlSetGraphic($line, $GUI_GR_LINE, 0, 0)
GUICtrlSetBkColor(-1, 0xffffff)
GUICtrlSetColor(-1, 0)#Region ;ab hier Menü überall plazieren siehe http://www.autoit.de/index.php?page…0614#post110614 von funkey
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateLabel('', 0, 25, $iWidht, 2, $SS_SUNKEN )
GUICtrlSetResizing(-1, $GUI_DOCKTOP)$MenueDatei = GUICtrlCreateLabel('&Datei', 60, 5, 40, 19, BitOR($SS_CENTERIMAGE,$SS_CENTER))
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetResizing(-1, $GUI_DOCKAll)
GUICtrlSetBkColor(-1, 0xffffff) ; alles was die Farbe weiß hat, ist transparent
GUICtrlSetOnEvent(-1, '_MenuPressed')$DateiContext = GUICtrlCreateContextMenu(GUICtrlCreateDummy())
[/autoit] [autoit][/autoit] [autoit]
$OptionsOpen = GUICtrlCreateMenuItem("Ö&ffnen", $DateiContext)
GUICtrlSetOnEvent(-1, "_openJPG")$OptionsClose = GUICtrlCreateMenuItem("S&chließen", $DateiContext)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateMenuItem("", $DateiContext)
GUICtrlSetOnEvent(-1, "_Close")$OptionsExit = GUICtrlCreateMenuItem("B&eenden", $DateiContext)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetOnEvent(-1, '_ExitMain')$MenueHelp = GUICtrlCreateLabel("&Hilfe", 135, 5, 30, 19, BitOR($SS_CENTERIMAGE,$SS_CENTER))
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetResizing(-1, $GUI_DOCKAll)
GUICtrlSetBkColor(-1, 0xffffff) ; alles was die Farbe weiß hat, ist transparent
GUICtrlSetOnEvent(-1, '_MenuPressed')$HelpContext = GUICtrlCreateContextMenu(GUICtrlCreateDummy())
[/autoit] [autoit][/autoit] [autoit]
$HelpWWW = GUICtrlCreateMenuItem("&Website", $HelpContext)
GUICtrlSetOnEvent(-1, '_Website')
GUICtrlCreateMenuItem("", $HelpContext)
$HelpAbout = GUICtrlCreateMenuItem("Ü&ber...", $HelpContext)
GUICtrlSetTip(-1, "Zeigt Infos zu dem Programm", "Personalized Gui", 1)
GUICtrlSetOnEvent(-1, '_About')GUICtrlCreateLabel('', 0, $iHeight - 25, $iWidht, 2, 0x1000)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetResizing(-1, $GUI_DOCKBOTTOM)$hlblStatus = GUICtrlCreateLabel('', 0, $iHeight - 21, $iWidht - 2, 18, $SS_SUNKEN)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
GUICtrlSetResizing(-1, $GUI_DOCKBOTTOM);Global $AccelKeys[3][2] = [["!d", $MenueDatei],["!h", $MenueHelp],["!e", $hbtnExit]]
[/autoit] [autoit][/autoit] [autoit]
Global $AccelKeys[2][2] = [["!d", $MenueDatei],["!h", $MenueHelp]] ;,["!e", $hbtnExit]]
;Zugriffstasten für GUI setzen ($hbtnExit ist nicht unbedingt notwendig, da bereits auf dem Button
GUISetAccelerators($AccelKeys) ;zuweisen der Taten
;ende Menü überall
#EndRegion
GUISetState(@SW_SHOW, $hfrmMain)While True
[/autoit] [autoit][/autoit] [autoit]
Sleep(1000)
WEndFunc _exitMain()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFunc ;==>_exitMainFunc _Minimize()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_MINIMIZE, $hfrmMain)
EndFunc ;==>_MinimizeFunc _Maximize()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_MAXIMIZE, $hfrmMain)
GUICtrlSetState($hicoMaxi, $GUI_HIDE)
GUICtrlSetState($hicoNorm, $GUI_SHOW)
EndFunc ;==>_MaximizeFunc _Normalize()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_RESTORE, $hfrmMain)
GUICtrlSetState($hicoNorm, $GUI_HIDE)
GUICtrlSetState($hicoMaxi, $GUI_SHOW)
EndFunc ;==>_Normalize; -------------- func
[/autoit] [autoit][/autoit] [autoit]
Func _hide()
GUISetState(@SW_HIDE, $hfrmMain)
HotKeySet("{F6}", "_show")
EndFunc ;==>_hideFunc _show()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW, $hfrmMain)
HotKeySet("{F6}", "_hide")
EndFunc ;==>_showFunc _OpenJPG()
[/autoit] [autoit][/autoit] [autoit]
$sjpgBckgrnd = FileOpenDialog("Hintergrundbild auswählen", @ScriptDir & "\bin", "Images (*.jpg)", 1, "", $hfrmMain)
GUICtrlSetImage($hjpgBckgrnd, $sjpgBckgrnd)
EndFunc ;==>_OpenJPGFunc _Close()
[/autoit] [autoit][/autoit] [autoit]
MsgBox(0, "Button", "Schliessen wurde geklickt!",0,$hfrmMain)
EndFunc ;==>_Close#cs
[/autoit] [autoit][/autoit] [autoit]Switch $CtrlID
[/autoit] [autoit][/autoit] [autoit]
Case $OptionsExit
GUICtrlSetData($hlblStatus, "Programm beenden")
Case $OptionsOpen
GUICtrlSetData($hlblStatus, "Hintergrundbild auswählen")
Case Else
GUICtrlSetData($hlblStatus, "")
EndSwitch
#ce;ab hier Funktionen von Menü überall plazieren siehe http://www.autoit.de/index.php?page…0614#post110614 von funkey
[/autoit] [autoit][/autoit] [autoit]
Func _MenuPressed()
Switch @GUI_CtrlId
Case $MenueDatei
ShowMenu($hfrmMain, $MenueDatei, $DateiContext)
Case $MenueHelp
ShowMenu($hfrmMain, $MenueHelp, $HelpContext)
EndSwitch
EndFunc ;==>_MenuPressedFunc _About()
[/autoit] [autoit][/autoit] [autoit]
MsgBox(64, "About...", "Beispiel für personalisierte GUI von (Auto)Bert" & @CRLF & "mit Beispiel für ein eigenes Menü von funkey" & @CRLF & "www.autoit.de/index.php?page=Thread&postID=110614#post110614,0,$hfrmMain")
EndFunc ;==>_AboutFunc _Website()
[/autoit] [autoit][/autoit] [autoit]
MsgBox(64, "Website...", "http://www.autoit.de/index.php?page=Thread&postID=116673#post116673",0,$hfrmMain)
EndFunc ;==>_Website; Show a menu in a given GUI window which belongs to a given GUI ctrl
[/autoit] [autoit][/autoit] [autoit]
Func ShowMenu($hWnd, $CtrlID, $nContextID)
Local $arPos, $x, $y
Local $hMenu = GUICtrlGetHandle($nContextID)$arPos = ControlGetPos($hWnd, "", $CtrlID)
[/autoit] [autoit][/autoit] [autoit]$x = $arPos[0]
[/autoit] [autoit][/autoit] [autoit]
$y = $arPos[1] + $arPos[3]ClientToScreen($hWnd, $x, $y)
[/autoit] [autoit][/autoit] [autoit]
TrackPopupMenu($hWnd, $hMenu, $x, $y)
EndFunc ;==>ShowMenu; Convert the client (GUI) coordinates to screen (desktop) coordinates
[/autoit] [autoit][/autoit] [autoit]
Func ClientToScreen($hWnd, ByRef $x, ByRef $y)
Local $stPoint = DllStructCreate("int;int")DllStructSetData($stPoint, 1, $x)
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($stPoint, 2, $y)DllCall("user32.dll", "int", "ClientToScreen", "hwnd", $hWnd, "ptr", DllStructGetPtr($stPoint))
[/autoit] [autoit][/autoit] [autoit]$x = DllStructGetData($stPoint, 1)
[/autoit] [autoit][/autoit] [autoit]
$y = DllStructGetData($stPoint, 2)
; release Struct not really needed as it is a local
$stPoint = 0
EndFunc ;==>ClientToScreen; Show at the given coordinates (x, y) the popup menu (hMenu) which belongs to a given GUI window (hWnd)
[/autoit]
Func TrackPopupMenu($hWnd, $hMenu, $x, $y)
DllCall("user32.dll", "int", "TrackPopupMenuEx", "hwnd", $hMenu, "int", 0, "int", $x, "int", $y, "hwnd", $hWnd, "ptr", 0)
EndFunc ;==>TrackPopupMenuzusätzlich habe ich noch Menü überall platzieren von funkey eingebaut.
Edit: GuiCtrlTip eingebaut und Kommentare eingefügt
mfg (Auto)Bertmoritz1243 wenn du ohne den Stil $WS_POPUPWINDOW bzw. $WS_POPUP eine GUI erzeugst bekommst du spätestens dann Probleme wenn du auf dieser GUI auch noch ein Menü plazieren möchtest,
-
Hi,
Sorry erstmal, dass ich diesen verstaubten Thread wieder
aus der Kiste hole.
Aber ich habe eine Frage dazu und wollte keinen neuen
Thread erstellen. Also:
Gibt es die Möglichkeit, den "Windows-Rand" auch zu
überschreiben? In dem letzten Beispiel hier wird der ja
noch angezeigt.MfG
qixx -
Hallo gixx,
Hi,
Sorry erstmal, dass ich diesen verstaubten Thread wieder
aus der Kiste hole.
Aber ich habe eine Frage dazu und wollte keinen neuen
Thread erstellen. Also:
Gibt es die Möglichkeit, den "Windows-Rand" auch zu
überschreiben? In dem letzten Beispiel hier wird der ja
noch angezeigt.MfG
qixxeinfach beim erstellen
[autoit]$hfrmMain = GUICreate("", $iWidht, $iHeight, 0, 0, $WS_POPUPWINDOW)
[/autoit]mfg (Auto)Bert
-
Yeah, danke.
Einfacher als ich dachte.MfG
qixx -
POPUP ist aber nicht überschreiben, da wird nur dei Richtige Taskleiste ausgebledet, wenn man es überschreiben will muss Man Einen API-Hook anwende (weißt net genau wie es geschreiben wird) aber das ist sehr schwer und ich kann es leider auch nicht
-
Jam00:
Mir ging es lediglich darum, dass ein Bild
über dem Rand ist, nicht direkt überschreiben.
Aber trotzdem Danke für die Info!Edit:
Ich benatworte mal eben meine Frage durch
dieses Thema (SkinCrafter), das mir eben
in die Augen gefallen ist.MfG
qixx