1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. nuts

Beiträge von nuts

  • Frage zu Bitand (Variablen zusammenfassen)

    • nuts
    • 12. Oktober 2008 um 17:39

    Trifft jetzt nicht ganz die Funktionsweise meines Skripts.

    Ich möchte ja die Hintergrundfarbe des Buttons dynamisch zum Fokus verändern (z.B. Button im Fokus = hellblau, Rest = dunkelblau).

    Trotzdem danke für deine Mühen.
    So wie ich das sehe könnte es etwas umgebaut trotzdem helfen - ich muss aber erstmal ne Pause einlegen, bei mir dreht sich schon alles. 8o

  • Frage zu Bitand (Variablen zusammenfassen)

    • nuts
    • 12. Oktober 2008 um 16:49

    BugFix erledigt, ist so wirklich übersichtlicher

    Oscar ah danke - eigentlich ganz easy.
    ob mein code dann einfacher wird muss ich jetzt mal ausprobieren.

  • Frage zu Bitand (Variablen zusammenfassen)

    • nuts
    • 12. Oktober 2008 um 16:34

    Also in meinem geposteten Skript (post8 ) setze ich ziemlich umständlich die Hintergrundfarbe zurück.

    Wenn ich im String die auszuschließende Variable rausnehme, dann muss ich für jeden Button einen neuen String schreiben.
    Diesen Teil meine ich.

    Spoiler anzeigen
    [autoit]


    If Not _IsFocused($EinstellungenGUI,$last_focus) Then
    Select
    Case _IsFocused($EinstellungenGUI, $720P)
    GUICtrlSetBkColor($720P, $Farbe)
    _EinstellungenReset($Back2)
    _EinstellungenReset($1080P)
    $last_focus = $720P
    Case _IsFocused($EinstellungenGUI, $1080P)
    GUICtrlSetBkColor($1080P, $Farbe)
    _EinstellungenReset($720P)
    _EinstellungenReset($Notfallskript)
    $last_focus = $1080P
    Case _IsFocused($EinstellungenGUI, $Notfallskript)
    GUICtrlSetBkColor($Notfallskript, $Farbe)
    _EinstellungenReset($1080P)
    _EinstellungenReset($Backupskript)
    $last_focus = $Notfallskript
    Case _IsFocused($EinstellungenGUI, $Backupskript)
    GUICtrlSetBkColor($Backupskript, $Farbe)
    _EinstellungenReset($Notfallskript)
    _EinstellungenReset($50HZ)
    $last_focus = $Backupskript
    Case _IsFocused($EinstellungenGUI, $50HZ)
    GUICtrlSetBkColor($50HZ, $Farbe)
    _EinstellungenReset($backupskript)
    _EinstellungenReset($24HZ)
    $last_focus = $50HZ
    Case _IsFocused($EinstellungenGUI, $24HZ)
    GUICtrlSetBkColor($24HZ, $Farbe)
    _EinstellungenReset($50HZ)
    _EinstellungenReset($60HZ)
    $last_focus = $24HZ
    Case _IsFocused($EinstellungenGUI, $60HZ)
    GUICtrlSetBkColor($60HZ, $Farbe)
    _EinstellungenReset($24HZ)
    _EinstellungenReset($back2)
    $last_focus = $60HZ
    Case _IsFocused($EinstellungenGUI, $back2)
    GUICtrlSetBkColor($back2, $Farbe)
    _EinstellungenReset($720P)
    _EinstellungenReset($60HZ)
    $last_focus = $back2
    EndSelect
    EndIf

    [/autoit]


    Über das gleiche System wie oben könnte ich das stark vereinfachen, allerdings müsste der Button mit dem Eingabefokus ausgeschlossen werden, sonst wird ja die Resetfunktion und der Befehl GUICtrlSetBkColor($720P, $Farbe) gleichzeitig angewendet.

  • Frage zu Bitand (Variablen zusammenfassen)

    • nuts
    • 12. Oktober 2008 um 16:20

    hehe genial läuft :thumbup:

    danke an alle die mitgeholfen haben!

    edit \ könnte ich auch eine der Variablen im array ausschließen?
    ich glaube dann könnte ich die schleife zur "is_focused" Funktion erheblich vereinfachen.

  • Frage zu Bitand (Variablen zusammenfassen)

    • nuts
    • 12. Oktober 2008 um 16:09

    mit $ beim eval zeigen die zeilen keine wirkung und ohne gibts ein fehler im skript.
    hm so ganz versteh ichs noch nicht. ?(

  • Frage zu Bitand (Variablen zusammenfassen)

    • nuts
    • 12. Oktober 2008 um 14:19

    Hey,

    kein problem. mein code ist nur ziemlich unübersichtlich:
    habs etwas abgespeckt - so wirds denke ich klar war ich machen will.

    Spoiler anzeigen
    [autoit]


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

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

    ;;;;;;;;;;;;;;;;;;;; Haupt-Menü Variablen
    Opt("GUICoordMode", 1)
    Global $last_focus = -1
    Global $Farbe = 0x000080
    Global $HauptGUI = GUICreate("HTPC", 400, 800, -1, -1, BitOR($WS_POPUP,$WS_BORDER,$WS_CLIPSIBLINGS))
    GUICtrlSetState(-1, $GUI_DISABLE)

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

    ;;;;;;;;;;;;;;;;;;;;;;Buttons;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    Dim $L = 100 ; Buttonleft
    Dim $W = 200 ; Buttonwidth
    Dim $H = 60; Buttonheight
    Dim $C = 4169E1 ;Hintergrundfarbe Button
    Dim $F = GUISetFont( 18, 800, 0, "MS Sans Serif") ;Schrift der Buttons

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

    Global $TV = GUICtrlCreateButton("TV", $L, 8, $W, $H, -1, $WS_EX_STATICEDGE)
    Global $DVD = GUICtrlCreateButton("DVD", $L, 88, $W, $H, -1, $WS_EX_STATICEDGE)
    Global $Aufnahmen = GUICtrlCreateButton("Aufnahmen", $L, 168, $W, $H, -1, $WS_EX_STATICEDGE)
    Global $Internet = GUICtrlCreateButton("Internet", $L, 248, $W, $H, -1, $WS_EX_STATICEDGE)
    Global $Musik = GUICtrlCreateButton("Musik/Bilder", $L, 328, $W, $H, -1, $WS_EX_STATICEDGE)
    Global $Bluray = GUICtrlCreateButton("Bluray", $L, 408, $W, $H, -1, $WS_EX_STATICEDGE)
    Global $Einstellungen = GUICtrlCreateButton("Einstellungen", $L, 488, $W, $H, -1, $WS_EX_STATICEDGE)
    Global $Beenden = GUICtrlCreateButton("Beenden", $L, 568, $W, $H, -1, $WS_EX_STATICEDGE)
    Global $Exit = GUICtrlCreateButton("exit", $L, 648, $W, $H, -1, $WS_EX_STATICEDGE)

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

    ;$lala = $Internet ;& $Aufnahmen Hier will ich die Funktion für die oben genannten Variablen aufrufen um die default Farbe zu setzen
    ;_HauptReset ($lala)

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

    GUISetState(@SW_SHOW, $HauptGUI)
    GUISetState(@SW_MAXIMIZE, $HauptGUI)
    While 1
    $msg = GUIGetMsg()
    switch $msg
    case $GUI_EVENT_Close
    Exit
    Case $TV
    Case $DVD
    Case $Aufnahmen
    Case $Musik
    Case $Bluray
    Case $Einstellungen ;Aufruf Einstellungen
    Case $Beenden ;Aufruf Beenden
    Case $Exit
    exit
    EndSwitch
    ; Start Farbe ButtonFokus Hauptmenü
    If Not _IsFocused($HauptGUI,$last_focus) Then
    Select
    Case _IsFocused($HauptGUI, $TV)
    GUICtrlSetBkColor($TV, $Farbe)
    _HauptReset($Exit)
    _HauptReset($DVD)
    $last_focus = $TV
    Case _IsFocused($HauptGUI, $DVD)
    GUICtrlSetBkColor($DVD, $Farbe)
    _HauptReset($TV)
    _HauptReset($Aufnahmen)
    $last_focus = $DVD
    Case _IsFocused($HauptGUI, $Aufnahmen)
    GUICtrlSetBkColor($Aufnahmen, $Farbe)
    _HauptReset($DVD)
    _HauptReset($Internet)
    $last_focus = $Aufnahmen
    Case _IsFocused($HauptGUI, $Internet)
    GUICtrlSetBkColor($Internet, $Farbe)
    _HauptReset($Aufnahmen)
    _HauptReset($Musik)
    $last_focus = $Internet
    Case _IsFocused($HauptGUI, $Musik)
    GUICtrlSetBkColor($Musik, $Farbe)
    _HauptReset($Internet)
    _HauptReset($Bluray)
    $last_focus = $Musik
    Case _IsFocused($HauptGUI, $Bluray)
    GUICtrlSetBkColor($Bluray, $Farbe)
    _HauptReset($Musik)
    _HauptReset($Einstellungen)
    $last_focus = $Bluray
    Case _IsFocused($HauptGUI, $Einstellungen)
    GUICtrlSetBkColor($Einstellungen, $Farbe)
    _HauptReset($Bluray)
    _HauptReset($Beenden)
    $last_focus = $Einstellungen
    Case _IsFocused($HauptGUI, $Beenden)
    GUICtrlSetBkColor($Beenden, $Farbe)
    _HauptReset($Einstellungen)
    _HauptReset($exit)
    $last_focus = $Beenden
    Case _IsFocused($HauptGUI, $exit)
    GUICtrlSetBkColor($exit, $Farbe)
    _HauptReset($beenden)
    _HauptReset($TV)
    $last_focus = $exit
    EndSelect
    EndIf
    ;Ende Farbe ButtonFokus Hauptmenü

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

    WEnd

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

    Func _IsFocused($hWnd, $nCID)
    Return GUICtrlGetHandle($nCID) = ControlGetHandle($hWnd, '', ControlGetFocus($hWnd))
    EndFunc

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

    Func _HauptReset ($ID)
    $Resetfarbe = 4169E1
    Switch $ID
    Case $TV
    GUICtrlSetBkColor($ID, $Resetfarbe)
    Case $DVD
    GUICtrlSetBkColor($ID, $Resetfarbe)
    Case $Aufnahmen
    GUICtrlSetBkColor($ID, $Resetfarbe)
    Case $Internet
    GUICtrlSetBkColor($ID, $Resetfarbe)
    Case $Musik
    GUICtrlSetBkColor($ID, $Resetfarbe)
    Case $Bluray
    GUICtrlSetBkColor($ID, $Resetfarbe)
    Case $Einstellungen
    GUICtrlSetBkColor($ID, $Resetfarbe)
    Case $Beenden
    GUICtrlSetBkColor($ID, $Resetfarbe)
    Case $Exit
    GUICtrlSetBkColor($ID, $Resetfarbe)
    EndSwitch
    EndFunc

    [/autoit]

    edit \
    Oscar : funktioniert leider noch nicht bei mir.
    muss mir aber auch erstmal die von dir verwendeten funktionen in der hilfe ansehen.

  • Frage zu Bitand (Variablen zusammenfassen)

    • nuts
    • 12. Oktober 2008 um 13:43

    hey,

    danke für die antworten.

    ich möchte diesen ausdruck zusammenfassen (sind im echten skript natürlich viel mehr variablen)
    es soll die funktion zuerst auf $1 und dann auf $2 angewendet werden.

    [autoit]


    _HauptReset ($1)
    _HauptReset ($2)

    [/autoit]

    meine variablen erstellen alle buttons und ich damit ich selber noch durchblicke hab ich den variablen eindeutige bezeichnungen gegeben.
    somit fällt die array lösung raus oder?

    edit \

    [autoit]


    $lala = $1 & $2
    _HauptReset ($lala)

    [/autoit]


    funktioniert bei mir leider nicht :(

  • Frage zu Bitand (Variablen zusammenfassen)

    • nuts
    • 11. Oktober 2008 um 18:40

    Hey,

    kurze Frage:

    Ich möchte eine Funktion für mehrere Variablen anwenden.
    Eigentlich dachte ich mit Bitand schaffe ich es, leider funktioniert das ganze nicht.
    Im Beispiel wird die Funktion nur auf Variable 1 angewendet.

    [autoit]


    $lala = BitAND ($1, $2)
    _HauptReset ($lala)

    [/autoit]

    Bin ich mit Bitand völlig auf dem Holzweg?

    Gruß nuts

  • Probleme beim Abändern von Buttons

    • nuts
    • 8. Oktober 2008 um 23:55

    hey,

    danke für die antwort.

    du meinst als hintergrund der buttons ein bild? über GUICtrlSetImage?
    und das bild soll sich dann je nach fokus einblenden?

  • Probleme beim Abändern von Buttons

    • nuts
    • 8. Oktober 2008 um 21:51

    so hab doch noch ne gescheite lösung gefunden :D
    schlüssel zum sieg war eine hier im forum gefundene funktion (ganz unten im script).

    hat zwar lange gedauert, aber dafür hab ich halbwegs verstanden wie man funktionen einsetzt.

    Spoiler anzeigen


    #include <GuiConstants.au3>

    Global $last_focus = -1
    Opt("GUICoordMode", 1)
    $GUI = GUICreate("HTPC", 400, 600, 1000, 0)
    $Button1 = GUICtrlCreateButton ("lala", 100, 8, 200, 60, 0)
    $Button2 = GUICtrlCreateButton ("lala2", 100, 80, 200, 60, 0)
    $Button = GUICtrlCreateButton("Button", 100, 168, 200, 60, 0)
    GUISetState()

    While 1
    $Msg = GUIGetMsg()
    Switch $Msg
    Case -3
    Exit
    EndSwitch
    If Not _IsFocused($GUI,$last_focus) Then

    Select
    Case _IsFocused($GUI, $Button1)
    GUICtrlSetBkColor(3, 0x008080)
    GUICtrlSetBkColor(4, -1)
    GUICtrlSetBkColor(5, -1)
    $last_focus = $Button1
    Case _IsFocused($GUI, $Button2)
    GUICtrlSetBkColor(4, 0x008080)
    GUICtrlSetBkColor(3, -1)
    GUICtrlSetBkColor(5, -1 )
    $last_focus = $Button2
    Case _IsFocused($GUI, $Button)
    GUICtrlSetBkColor(5, 0x008080)
    GUICtrlSetBkColor(3, -1)
    GUICtrlSetBkColor(4, -1)
    $last_focus = $Button

    EndSelect
    EndIf
    WEnd

    Func _IsFocused($hWnd, $nCID)
    Return GUICtrlGetHandle($nCID) = ControlGetHandle($hWnd, '', ControlGetFocus($hWnd))
    EndFunc

    was mir noch nicht gefällt ist der ausdruck um die hintergrundfarbe des button wieder zu reseten.

  • Probleme beim Abändern von Buttons

    • nuts
    • 8. Oktober 2008 um 00:01

    auf die Gefahr hin mit dem thema zu nerven .. :whistling:

    hier meine fertige lösung:

    Spoiler anzeigen


    #include <GUIConstants.au3>

    Opt("GUICoordMode", 1)

    ;;;;;;;;;;;;;;;;; Hauptvariablen
    $HauptGUI = GUICreate("HTPC", 400, 600, 1000, 0)
    GUISetBkColor(0x000000)
    $Button1 = GUICtrlCreateButton("TV", 100, 8, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    $Button2 = GUICtrlCreateButton("DVD", 100, 88, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    $Button3 = GUICtrlCreateButton("Aufnahmen", 100, 168, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    $Button4 = GUICtrlCreateButton("Musik/Bilder", 100, 248, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    $Button5 = GUICtrlCreateButton("Bluray", 100, 328, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    $Button6 = GUICtrlCreateButton("Einstellungen", 100, 408, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    $Beenden = GUICtrlCreateButton("Beenden", 100, 488, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    GUISetState(@SW_SHOW)
    $Hover_Old = "" ;gehört zum Hover Beispiel
    run ("C:\Dokumente und Einstellungen\Nussman\Desktop\autoitskripte\tests\mousemove\mausmove.exe") ;setzt die maus auf den ersten button

    While 1
    ;Mausroutine in Zusammenspiel mit Eventghost
    $fensterHTPC = WinGetState("HTPC", "")
    IF BitAND($fensterHTPC, 8) then
    _Down()
    Endif
    ;Hoverdings
    $Cursor = GUIGetCursorInfo($HauptGUI)
    If $Cursor[4] <> $Hover_Old Then
    Normal($Hover_Old) ; reset the previous control
    Hover($Cursor[4]) ; set the new control hovered
    $Hover_Old = $Cursor[4]
    EndIf
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $Beenden
    Exit
    EndSelect
    WEnd

    Func Hover($ID)
    Switch $ID
    Case $Button1
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Case $Button2
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Case $Button3
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Case $Button4
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Case $Button5
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Case $Button6
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Case $Beenden
    GUICtrlSetBkColor($ID, 0xFFFF00)
    EndSwitch
    EndFunc
    Func Normal($ID)
    Switch $ID
    Case $Button1
    GUICtrlSetBkColor($ID, 0x008080)
    Case $Button2
    GUICtrlSetBkColor($ID, 0x008080)
    Case $Button3
    GUICtrlSetBkColor($ID, 0x008080)
    Case $Button4
    GUICtrlSetBkColor($ID, 0x008080)
    Case $Button5
    GUICtrlSetBkColor($ID, 0x008080)
    Case $Button6
    GUICtrlSetBkColor($ID, 0x008080)
    Case $Beenden
    GUICtrlSetBkColor($ID, 0x008080)
    EndSwitch
    EndFunc
    Func _Down ()
    $pos = MouseGetPos()
    IF $pos [1] > 547 then
    MouseMove (1198, 67, 0)
    EndIf
    IF $pos [1] <67 Then
    MouseMove (1198, 547, 0)
    Endif
    EndFunc

    mit dem fernbedienungsprog. (eventghost) lasse ich bei jedem {down} bzw. {up} befehl die maus um 80 "Punkte" (= abstand der buttons) nach oben/unter verschieben.
    wirklich gut gefällt mir das ganze nicht, muss ja auch an jedem monitor anhand der mauskoordinaten neu einstellt werden.

    wenn noch jemand eine idee hat wie das "richtig" geht ... nur zu.
    würde mich freuen.

  • Probleme beim Abändern von Buttons

    • nuts
    • 7. Oktober 2008 um 03:26

    Meine ziemlich komische Lösung:

    Spoiler anzeigen


    #include <GUIConstants.au3>

    Opt("GUICoordMode", 1)
    ;;;;;;;;;;;;;;;;; Beenden Variablen wegen Hoverdings
    $Herunterfahren = GUICtrlCreateButton ("Herunterfahren", 100, 8, 200, 60, 0)
    $Neustart = GUICtrlCreateButton ("Neustart", 100, 88, 200, 60, 0)
    $Standby = GUICtrlCreateButton ("Standby", 100, 168, 200, 60, 0)
    $close = GUICtrlCreateButton ("Close", 100, 248, 200, 60, 0)
    $backbutton = GUICtrlCreateButton ("Zurück", 100, 328, 200, 60, 0)
    ;;;;;;;;;;;;;;;;; Hauptvariablen
    $HauptGUI = GUICreate("HTPC", 400, 600, 1000, 0)
    GUISetBkColor(0x000000)
    $Button1 = GUICtrlCreateButton("TV", 100, 8, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    $Button2 = GUICtrlCreateButton("DVD", 100, 88, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    $Button3 = GUICtrlCreateButton("Aufnahmen", 100, 168, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    $Button4 = GUICtrlCreateButton("Musik/Bilder", 100, 248, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    $Button5 = GUICtrlCreateButton("Bluray", 100, 328, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    $Button6 = GUICtrlCreateButton("Einstellungen", 100, 408, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    $Beenden = GUICtrlCreateButton("Beenden", 100, 488, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    GUISetState(@SW_SHOW)
    $Hover_Old = "" ;gehört zum Hover Beispiel
    run ("C:\Dokumente und Einstellungen\Nussman\Desktop\autoitskripte\tests\mausmove.exe") ;setzt die maus auf den ersten button
    HotKeySet("{Down}", "_Down" )

    While 1
    ;Hoverdings
    $Cursor = GUIGetCursorInfo($HauptGUI)
    If $Cursor[4] <> $Hover_Old Then
    Normal($Hover_Old) ; reset the previous control
    Hover($Cursor[4]) ; set the new control hovered
    $Hover_Old = $Cursor[4]
    EndIf
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $Beenden

    ;Start der Beenden GUI
    $BeendenGUI = GUICreate("Beenden", 400, 600, 1000 , 0)
    GUISetBkColor(0x000000)

    ;Definition der Beenden Variablen
    Opt("GUICoordMode",1)
    GUISetFont( 18, 800, 0, "MS Sans Serif")
    $Herunterfahren = GUICtrlCreateButton ("Herunterfahren", 100, 8, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    $Neustart = GUICtrlCreateButton ("Neustart", 100, 88, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    $Standby = GUICtrlCreateButton ("Standby", 100, 168, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    $close = GUICtrlCreateButton ("Close", 100, 248, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    $backbutton = GUICtrlCreateButton ("Zurück", 100, 328, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetBkColor(-1, 0x008080)
    GUISetState(@SW_HIDE, $HauptGUI)
    GUISetState(@SW_SHOW, $BeendenGUI)
    While 1 ;Start der Beenden Schleife

    ;Hoverdings
    $Cursor = GUIGetCursorInfo($BeendenGUI)
    If $Cursor[4] <> $Hover_Old Then
    Normal($Hover_Old) ; reset the previous control
    Hover($Cursor[4]) ; set the new control hovered
    $Hover_Old = $Cursor[4]
    EndIf

    $msg = GUIGetMsg()
    Select

    Case $msg = $close
    Exit

    Case $msg = $Herunterfahren
    ;Schliesse alle Anwendungen und fahre den PC herunter
    run ("C:\WINDOWS\system32\shutdown.exe -f -s -t 00")
    Exit

    Case $msg = $backbutton
    GUISetState(@SW_HIDE, $BeendenGUI)
    GUISetState(@SW_SHOW, $HauptGUI)
    ExitLoop

    Case $msg = $Neustart
    ;Schliesse alle Anwendungen und starte den PC neu
    run ("C:\WINDOWS\system32\shutdown.exe -f -r -t 00")
    Exit

    Case $msg = $Standby
    ;standby (S3 im System eingestellt))
    run ("rundll32.exe powrprof.dll,SetSuspendState")
    Exit
    EndSelect

    Wend ;Ende Herunterfahren GUI
    EndSelect
    WEnd

    Func Hover($ID)
    Switch $ID
    Case $Button1
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Case $Button2
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Case $Button3
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Case $Button4
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Case $Button5
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Case $Button6
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Case $Beenden
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Case $Herunterfahren
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Case $Neustart
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Case $Standby
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Case $Close
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Case $backbutton
    GUICtrlSetBkColor($ID, 0xFFFF00)
    EndSwitch
    EndFunc
    Func Normal($ID)
    Switch $ID
    Case $Button1
    GUICtrlSetBkColor($ID, 0x008080)
    Case $Button2
    GUICtrlSetBkColor($ID, 0x008080)
    Case $Button3
    GUICtrlSetBkColor($ID, 0x008080)
    Case $Button4
    GUICtrlSetBkColor($ID, 0x008080)
    Case $Button5
    GUICtrlSetBkColor($ID, 0x008080)
    Case $Button6
    GUICtrlSetBkColor($ID, 0x008080)
    Case $Beenden
    GUICtrlSetBkColor($ID, 0x008080)
    Case $Herunterfahren
    GUICtrlSetBkColor($ID, 0x008080)
    Case $Neustart
    GUICtrlSetBkColor($ID, 0x008080)
    Case $Standby
    GUICtrlSetBkColor($ID, 0x008080)
    Case $Close
    GUICtrlSetBkColor($ID, 0x008080)
    Case $backbutton
    GUICtrlSetBkColor($ID, 0x008080)
    EndSwitch
    EndFunc

    Func _Down ()
    $pos = MouseGetPos()
    IF $pos [1] < 548 then
    MouseMove (1198, $pos [1] + 80, 0)
    Elseif $pos[1] > 548 then
    run ("C:\Dokumente und Einstellungen\Nussman\Desktop\autoitskripte\tests\mausmove.exe")
    EndIf
    EndFunc

    ist eher noch suboptimal :wacko:
    hab jetzt aber keine lust mehr und geh ins bett 8)

  • Probleme beim Abändern von Buttons

    • nuts
    • 6. Oktober 2008 um 16:05

    Hehe hab noch eine ganz "billige" Lösung gefunden.
    Man muss einfach den Windows Standard Style ändern.
    Ist natürlich keine schöne Lösung ..

    am Vorschlag von peethebee "arbeite" ich noch.

    edit \ muss eigentlich zwingend auf das eingestellte Design zurückgegriffen werden?
    könnte man das Andern ergebe das einen riesen Vorteil beim "stylen" von autoit gui's.
    Weil Windows Themes gibts ja massig zum downloaden. Dann könnte man sich für sein Programm was nettes aussuchen und für den normalen Desktopbetrieb die vertraute Oberfläche behalten.

    edit2 \ naja kommando zurück. das nützt nichts :(
    sobald ich dann wieder was am button ändere (Schriftfarbe, Hintergrund) wird der button wieder "hässlich"

    irgendwie verstehe ich die Zusammenhänge leider nicht.

    edit3 \
    @ peethebee hast du mal ein kurzes Beispiel deines Vorschlags?
    Bekomme das alleine nicht zuende gedacht. Wie schaffe ich es den Button durch erneutes drücken wieder zu "entfärben"?

  • Probleme beim Abändern von Buttons

    • nuts
    • 5. Oktober 2008 um 23:24

    hm klingt trickreich und macht mir mut.

    mit der grafischen oberfläche hab ich ganz schön zu kämpfen. hab auch schon versucht eine mit turbodelphi zu erstellen und dort die autoit skripte einzubinden.
    allerdings ist das dort mit dem button design genauso eigenartig (bzw. noch schlimmer).
    ich verstehe auch ehrlich gesagt die problematik nicht. wird beim standardbutton auf ein windows standarddesign zurückgegriffen?

    auf jeden fall vielen dank für die antwort - ich werd mich morgen mal dran versuchen!

  • Probleme beim Abändern von Buttons

    • nuts
    • 5. Oktober 2008 um 21:09

    hm verstehe gerade nicht wie du das meinst ?(

  • Probleme beim Abändern von Buttons

    • nuts
    • 5. Oktober 2008 um 20:04

    Gibt wohl keine Möglichkeit das so umzusetzen wie ich will oder?
    Auch die echte Hover Funktion aus dem englischen autoit Forum färbt die Buttons bei meinen versuchen nur wenn der Mauszeiger darüber ist.

  • Probleme beim Abändern von Buttons

    • nuts
    • 5. Oktober 2008 um 14:33

    leider stecke ich schon wieder fest.

    Um die angewählten Buttons hervorzuheben hab ich hier im forum ein Beispiel gefunden.

    Spoiler anzeigen


    $GUI = GuiCreate("Test", 480, 220)
    Opt("GUICoordMode",0)
    $Button = GuiCtrlCreateButton("Button1", 30, 60, 100, 30)
    $Button2 = GuiCtrlCreateButton("Button2", 1, 60, 100, 30)

    GuiSetState()

    ; Hover Functions
    Func Hover($ID)
    Switch $ID
    Case $Button
    GUICtrlSetBkColor($ID, 0xFFFF00)
    Case $Button2
    GUICtrlSetBkColor($ID, 0xFFFF00)

    EndSwitch
    EndFunc

    Func Normal($ID)
    Switch $ID
    Case $Button
    GUICtrlSetBkColor($ID, -1)
    Case $Button2
    GUICtrlSetBkColor($ID, -1)
    EndSwitch
    EndFunc

    ; Main While
    $Hover_Old = ""

    While 1

    If GUIGetMsg() = -3 Then Exit

    $Cursor = GUIGetCursorInfo($GUI) ; it's important that the gui variable is setted in this function!
    If $Cursor[4] <> $Hover_Old Then
    Normal($Hover_Old) ; reset the previous control
    Hover($Cursor[4]) ; set the new control hovered
    $Hover_Old = $Cursor[4]
    EndIf

    WEnd

    Damit färbt sich jeder Button über dem sich der Mauszeiger befindet in meinem Beispiel "gelb".
    Ich wollte aber den Programmstarter mit den Hoch/Runter Tasten bedienen. Dabei ändert sich die Farbe leider nicht (GUIGetCursorInfo ist da wohl ungeeignet)
    Was wäre der passende Befehl? Der "blaue" Rahmen wandert ja sauber mit - irgendwie muss ich doch abfragen können wo sich dieser gerade befindet?!?

  • Probleme beim Abändern von Buttons

    • nuts
    • 4. Oktober 2008 um 20:07

    Ah ja. Nur wie kommt die Farbe in den Button? und wieso im Beispiel nur in den Ersten?
    Ziemlich schwierig, da kommt man sich ja richtig blöd vor ;(

    Danke aber schonmal für die Hilfestellung.

    Edit \
    Aha ich komme der Sache näher. Ist ja ganz einfach :thumbup:

    [autoit]


    $Button1 = GUICtrlCreateButton("TV", 100, 8, 200, 60, 0)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFFFF00)
    GUICtrlSetBkColor(-1, 0x004E98)

    [/autoit]

    Das Beispielscript (das ich im moment gar nicht kapiere) bezieht sich jetzt aus den von mir erwähnten "blauen Rahmen" des angewählten Button richtig?

  • Probleme beim Abändern von Buttons

    • nuts
    • 4. Oktober 2008 um 19:48

    Klingt ganz schön kompliziert nur für das abändern der Schriftfarbe 8|
    Naja ich werd mal versuchen mich durchzu wurschteln.

  • Probleme beim Abändern von Buttons

    • nuts
    • 4. Oktober 2008 um 19:18

    Ah hehe danke.
    Wenn man den richtigen Befehl nimmt ist ja ganz leicht.

    Ok farbig müssten die Buttons nicht umbedingt sein! Nur ist die Schriftfarbe irgendwie änderbar?

    Was mir gerade noch einfällt:
    Der angewählte Button ist ganz leicht blau umrandet. Ist es möglich den angewählten Buttons ganz zu färben oder zumindest den Rahmen stärker zu betonen?

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™