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. Oscar

Beiträge von Oscar

  • textdatei auslesen und verwerten

    • Oscar
    • 16. Oktober 2008 um 17:26

    Sieh Dir mal die Textdatei an. Evtl. gibt es dort eine Leerzeile oder eine Zeile enthält keine Kommata. In diesem Fall gibt StringSplit nur ein Array mit 2 Elementen zurück, was die nachfolgenden Zeilen mit einem Fehler quittieren.
    Am besten nach StringSplit eine Fehlerbehandlung einbauen.

  • Präfix von mehreren Datei-Namen ändern

    • Oscar
    • 16. Oktober 2008 um 16:54

    Dann kannst Du mit _FileListToArray() alle (oder mit Filter ausgewählte) Dateien in ein Array einlesen und dieses der Reihe nach durchgehen und die Dateien dann entsprechend umbenennen.

  • In .txt Datei exportieren

    • Oscar
    • 16. Oktober 2008 um 04:45
    Zitat von MOZ


    Wie kann ich machen, dass die TxT dateien nach dem aktuellen Datum genannt werden und wenn es die datei schon gibt, dass dann eine 1 hintendran kommt und wenns die schon gibt ne 2 usw. ?

    Beispielcode:

    Spoiler anzeigen
    [autoit]


    Global $sFileName = @YEAR & @MON & @MDAY, $tmp = 1

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

    If FileExists($sFileName & '.txt') Then
    $sFileName &= '_'
    While FileExists($sFileName & $tmp & '.txt')
    $tmp += 1
    WEnd
    $sFileName &= $tmp & '.txt'
    Else
    $sFileName &= '.txt'
    EndIf
    FileWrite($sFileName, 'bla')

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

    MsgBox(0,0,$sFileName)

    [/autoit]
  • Erhalte zu viele emails

    • Oscar
    • 16. Oktober 2008 um 04:28

    Du musst eine Variable einfügen, mit der Du testest, ob bereits eine Mail verschickt wurde. In etwa so:

    Spoiler anzeigen
    [autoit]


    Global $bSend = False ; An den Anfang Deines Scripts

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

    Func Absenden()
    $size = FileGetSize("C:\Hardware\in337.txt")
    If $size > '1032' And $size < '1038' And Not $bSend Then
    $read = FileRead("C:\Hardware\in337.txt")

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

    Global $oMyRet[2]
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")

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

    $rc = _INetSmtpMailCom('meine daten')
    If @error Then
    MsgBox(0, "Error sending message", "Error code:" & @error & " Description:" & $rc)
    EndIf
    $bSend = True
    EndIf
    EndFunc ;==>Absenden

    [/autoit]
  • fragen zu controlclick

    • Oscar
    • 15. Oktober 2008 um 20:46

    Versuch's einfach noch mal. Wir sind ja bereit zu helfen, aber dazu müssen wir das Problem kennen.
    Am einfachsten ist es, wenn Du das Problem in einem Beispiel-Script darstellen kannst. Ansonsten erkläre möglichst genau den Ablauf, was Dein Script tun soll.

  • fragen zu controlclick

    • Oscar
    • 15. Oktober 2008 um 18:30

    Folgende Punkte können Deine Chancen auf eine brauchbare Antwort erhöhen:

    1. Präzise Fragestellung
    2. Groß-/Kleinschreibung
    3. Satzzeichen
    4. evtl. vorhandenes Script posten
    5. Fehlerbeschreibung, was genau nicht funktioniert

    Mit dem, was Du bisher gepostet hast, bräuchte man eine verdammt gute Kristallkugel. ;)

  • Frage zu Bitand (Variablen zusammenfassen)

    • Oscar
    • 14. Oktober 2008 um 20:24

    Ja, mit GUIRegisterMsg wird eine Funktion (MY_WM_USER) registriert, die ausgeführt wird, wenn ein User-Ereignis eintritt (Up-/Down-Taste gedrückt).

    In der Funktion (MY_WM_USER) wird dann mit WinGetHandle(_WinAPI_GetFocus()) das Handle zu dem Button geholt, der gerade den Focus besitzt.
    Der Befehl _WinAPI_GetDlgCtrlID wandelt dann das Handle in die GUI-ID um, damit GUICtrlSetBKColor funktioniert. Der Rest ist, wie schon von Dir vermutet.

    Das Flackern tritt also nur noch (wenn überhaupt) beim gerade aktiven und/oder am zuletzt aktiven Button auf. Wobei ich nicht sagen kann, warum das so ist. Es tritt ja auch nicht jedesmal auf, sondern nur gelegentlich. :S

  • Frage zu Bitand (Variablen zusammenfassen)

    • Oscar
    • 14. Oktober 2008 um 19:36

    Diese Version ist noch etwas besser:

    Spoiler anzeigen
    [autoit]


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

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

    ;;;;;;;;;;;;;;;;;;;; Haupt-Menü Variablen
    Opt("GUICoordMode", 1)
    Global $Farbe = 0x00BFFF
    Global $HauptGUI = GUICreate("HTPC", 400, 800, -1, -1, BitOR($WS_POPUP, $WS_BORDER, $WS_CLIPSIBLINGS))
    GUISetBkColor(000000)

    [/autoit] [autoit][/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)
    GUICtrlSetBkColor(-1, 0x00BFFF)
    Global $DVD = GUICtrlCreateButton("DVD", $L, 88, $W, $H, -1, $WS_EX_STATICEDGE)
    GUICtrlSetBkColor(-1, 0x4169E1)
    Global $Aufnahmen = GUICtrlCreateButton("Aufnahmen", $L, 168, $W, $H, -1, $WS_EX_STATICEDGE)
    GUICtrlSetBkColor(-1, 0x4169E1)
    Global $Internet = GUICtrlCreateButton("Internet", $L, 248, $W, $H, -1, $WS_EX_STATICEDGE)
    GUICtrlSetBkColor(-1, 0x4169E1)
    Global $Musik = GUICtrlCreateButton("Musik/Bilder", $L, 328, $W, $H, -1, $WS_EX_STATICEDGE)
    GUICtrlSetBkColor(-1, 0x4169E1)
    Global $Bluray = GUICtrlCreateButton("Bluray", $L, 408, $W, $H, -1, $WS_EX_STATICEDGE)
    GUICtrlSetBkColor(-1, 0x4169E1)
    Global $Einstellungen = GUICtrlCreateButton("Einstellungen", $L, 488, $W, $H, -1, $WS_EX_STATICEDGE)
    GUICtrlSetBkColor(-1, 0x4169E1)
    Global $Beenden = GUICtrlCreateButton("Beenden", $L, 568, $W, $H, -1, $WS_EX_STATICEDGE)
    GUICtrlSetBkColor(-1, 0x4169E1)
    Global $Exit = GUICtrlCreateButton("exit", $L, 648, $W, $H, -1, $WS_EX_STATICEDGE)
    GUICtrlSetBkColor(-1, 0x4169E1)

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

    GUISetState(@SW_SHOW, $HauptGUI)
    GUISetState(@SW_MAXIMIZE, $HauptGUI)

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

    Global $last_focus = GUICtrlGetHandle($TV)
    GUIRegisterMsg($WM_USER, "MY_WM_USER")

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

    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
    WEnd

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

    Func MY_WM_USER($hWnd, $msg, $wParam, $lParam)
    Local $Button = WinGetHandle(_WinAPI_GetFocus())
    Local $Farbe = 0x4169E1, $Fokusfarbe = 0x00BFFF
    GUICtrlSetBkColor(_WinAPI_GetDlgCtrlID($last_focus), $Farbe)
    GUICtrlSetBkColor(_WinAPI_GetDlgCtrlID($Button), $Fokusfarbe)
    $last_focus = $Button
    EndFunc ;==>_HauptReset

    [/autoit]
  • Frage zu Bitand (Variablen zusammenfassen)

    • Oscar
    • 14. Oktober 2008 um 17:44

    So flackert es weniger:

    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 = 0x00BFFF
    Global $HauptGUI = GUICreate("HTPC", 400, 800, -1, -1, BitOR($WS_POPUP, $WS_BORDER, $WS_CLIPSIBLINGS))
    GUISetBkColor(000000)

    [/autoit] [autoit][/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)
    GUICtrlSetBkColor(-1, 0x00BFFF)
    Global $DVD = GUICtrlCreateButton("DVD", $L, 88, $W, $H, -1, $WS_EX_STATICEDGE)
    GUICtrlSetBkColor(-1, 0x4169E1)
    Global $Aufnahmen = GUICtrlCreateButton("Aufnahmen", $L, 168, $W, $H, -1, $WS_EX_STATICEDGE)
    GUICtrlSetBkColor(-1, 0x4169E1)
    Global $Internet = GUICtrlCreateButton("Internet", $L, 248, $W, $H, -1, $WS_EX_STATICEDGE)
    GUICtrlSetBkColor(-1, 0x4169E1)
    Global $Musik = GUICtrlCreateButton("Musik/Bilder", $L, 328, $W, $H, -1, $WS_EX_STATICEDGE)
    GUICtrlSetBkColor(-1, 0x4169E1)
    Global $Bluray = GUICtrlCreateButton("Bluray", $L, 408, $W, $H, -1, $WS_EX_STATICEDGE)
    GUICtrlSetBkColor(-1, 0x4169E1)
    Global $Einstellungen = GUICtrlCreateButton("Einstellungen", $L, 488, $W, $H, -1, $WS_EX_STATICEDGE)
    GUICtrlSetBkColor(-1, 0x4169E1)
    Global $Beenden = GUICtrlCreateButton("Beenden", $L, 568, $W, $H, -1, $WS_EX_STATICEDGE)
    GUICtrlSetBkColor(-1, 0x4169E1)
    Global $Exit = GUICtrlCreateButton("exit", $L, 648, $W, $H, -1, $WS_EX_STATICEDGE)
    GUICtrlSetBkColor(-1, 0x4169E1)

    [/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
    _HauptReset(ControlGetFocus('', ''))
    WEnd

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

    Func _HauptReset($Button) ;Grundfunktion von Oscar http://www.autoit.de
    If $Button <> $last_focus Then
    Local $aID = StringSplit('tv,dvd,aufnahmen,internet,musik,bluray,einstellungen,beenden,exit', ',')
    Local $aButton = StringSplit('button1,button2,button3,button4,button5,button6,button7,button8,button9', ',')
    Local $Farbe = 0x4169E1, $Fokusfarbe = 0x00BFFF
    GUICtrlSetBkColor(Eval($aID[StringTrimLeft($last_focus, 6)]), $Farbe)
    GUICtrlSetBkColor(Eval($aID[StringTrimLeft($Button, 6)]), $Fokusfarbe)
    $last_focus = $Button
    EndIf
    EndFunc ;==>_HauptReset

    [/autoit]
  • vershlüsselugsalgorithmus schreiben

    • Oscar
    • 14. Oktober 2008 um 16:40

    ROT13 ist ein denkbar schlechter Algorithmus. Er rotiert jeden Buchstaben lediglich um 13 Plätze (darum ROT13) in der ASCII-Tabelle. Das kann jeder innerhalb von Sekunden rückgängig machen.

    XOR mit einem langen und guten (Groß-/Kleinschreibung, Zahl, Sonderzeichen) Passwort hingegen erfordert schon sehr viel mehr Aufwand. Wenn Du das Passwort geheim hälst ist die Methode relativ sicher.

  • vershlüsselugsalgorithmus schreiben

    • Oscar
    • 14. Oktober 2008 um 16:31

    Einen XOR-Algo habe ich auch mal geschrieben: Datei Verschlüsselung

    Für komplexere Algorithmen ist AutoIt IMHO nicht schnell genug. Da solltest Du lieber auf externe Programme ausweichen und die dann automatisieren.

  • Fenster Maximieren?

    • Oscar
    • 14. Oktober 2008 um 16:14

    So sollte es auch gehen:

    [autoit]


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

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

    GUICreate("My GUI", 640, 480, -1, -1, BitOr($WS_MAXIMIZE, $WS_MAXIMIZEBOX))
    GUISetState(@SW_SHOW)
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    [/autoit]

    Wichtig ist, dass man zusätzlich zu $WS_MAXIMIZE auch $WS_MAXIMIZEBOX angibt.

  • Text finden

    • Oscar
    • 14. Oktober 2008 um 13:57

    Man benutzt dann ein zweidimensionales Array (z.B. $test[1][3]). Die Zuweisung erfolgt dann folgendermaßen:

    Dim $test[1][3]
    $test[0][0] = Name1
    $test[0][1] = Adresse1
    $test[0][2] = Telefonnummer1

    Willst Du weitere Einträge zu dem Array hinzufügen machst Du ein ReDim:

    ReDim $test[2][3]

    und kannst dann dem neuen Array-Element Werte zuweisen:

    $test[1][0] = Name2
    $test[1][1] = Adresse2
    $test[1][2] = Telefonnummer2

    Wenn Du einen Datensatz auslesen willst, benutzt Du eine For...Next-Schleife:

    For $i = 0 To 2
    MsgBox(0,0, $test[0][$i])
    Next

    Beachten musst Du, dass Arrays immer mit Null beginnen. Wenn Du ein Array deklarierst z.B. mit Dim $test[2], dann hat das Array zwei Elemente (0 und 1) .

    Edit: Da waren welche schneller. :)

  • Schon wieder Mauskoordinaten :D

    • Oscar
    • 14. Oktober 2008 um 05:04

    Ein bißchen viel FileOpen und FileClose. So sieht's übersichtlicher aus:

    Spoiler anzeigen
    [autoit]


    MsgBox(0, "Tastaturkürzel", "Mit STRG+S werden die Koordinaten in der Textdatei gespeichert." & @CRLF & "Mit STRG+D wird der Inhalt der Textdatei gelöscht")

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

    HotKeySet("{esc}", "ende")
    HotKeySet("^s", "save")
    HotKeySet("^d", "delete")

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

    While 1 ;eigentliche schleife die die Koordinaten abliest und anzeigt
    $pos = MouseGetPos()
    ToolTip($pos[0] & ", " & $pos[1], 0, 0)
    Sleep(20)
    WEnd

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

    Func save() ;speichert die Koordinaten
    $file = FileOpen("coords.txt", 1)
    If $file = -1 Then Exit MsgBox(0, 'Maus-Koordinaten', 'Datei konnte nicht geöffnet werden!') ;überprüft ob die Datei schon vorhanden ist
    FileWrite($file, $pos[0] & ", " & $pos[1] & @CRLF)
    FileClose($file)
    EndFunc ;==>save

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

    Func delete() ;löscht den Inhalt der Textdatei
    FileDelete("coords.txt")
    EndFunc ;==>delete

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

    Func ende() ; logischerweise: Ende xD
    Exit
    EndFunc ;==>ende

    [/autoit]
  • Fenster bewegen ohne WS_CAPTION

    • Oscar
    • 13. Oktober 2008 um 19:01

    Beispiel:

    Spoiler anzeigen
    [autoit]


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

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

    Opt('MustDeclareVars', 1)

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

    Example1()

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

    ; example 1
    Func Example1()
    Local $msg

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

    GUICreate("My GUI", 640, 480, -1, -1, $WS_POPUP)
    GUICtrlCreateLabel('', 0, 0, 640, 480, 0, $GUI_WS_EX_PARENTDRAG)
    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()

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

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
    GUIDelete()
    EndFunc ;==>Example1

    [/autoit]
  • DriveLetter Auswahl

    • Oscar
    • 13. Oktober 2008 um 04:33

    Oder wenn Du das für ein Combo-Feld haben willst:

    Spoiler anzeigen
    [autoit]


    #include<ComboConstants.au3>
    #include<GUIConstantsEx.au3>

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

    $sDrivesFree = _DriveLetterFree()
    $sFirstDrive = StringLeft($sDrivesFree, 3)

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

    GUICreate('Test')

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

    GUICtrlCreateCombo('', 32, 32, 64, 25, $CBS_DROPDOWNLIST)
    GUICtrlSetFont(-1, 16, 600, 0, 'Arial')
    GUICtrlSetData(-1, $sDrivesFree, $sFirstDrive)

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

    GUISetState()

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    Func _DriveLetterFree()
    Local $i, $v, $j, $letters, $aAllDrives = DriveGetDrive('ALL')
    For $i = 67 To 90 ; Buchstaben 'C' bis 'Z' durchgehen
    $v = True
    For $j = 1 To $aAllDrives[0] ; Alle belegten Buchstaben
    If Chr($i) & ':' = $aAllDrives[$j] Then ; Buchstabe ist nicht frei
    $v = False ; dann kennzeichnen
    ExitLoop ; und For $j - Schleife verlassen
    EndIf
    Next
    If $v Then $letters &= Chr($i) & ':\|' ; War der Buchstabe noch frei, dann in die Liste übernehmen
    Next
    Return StringTrimRight($letters, 1)
    EndFunc

    [/autoit]
  • Frage zu Bitand (Variablen zusammenfassen)

    • Oscar
    • 12. Oktober 2008 um 22:13
    Zitat von nuts

    Was dagegen wenn ich die Funktionen so einfach abschreibe und anpasse?

    Habe ich doch für Dich geschrieben! :)
    Bau es weiter aus, pass es an, ganz wie Du es haben willst.

  • Frage zu Bitand (Variablen zusammenfassen)

    • Oscar
    • 12. Oktober 2008 um 21:07

    Dann vielleicht so:

    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 $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 $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]

    GUISetState(@SW_SHOW, $HauptGUI)
    GUISetState(@SW_MAXIMIZE, $HauptGUI)
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_Close
    Exit
    Case $TV
    _HauptReset($TV)
    Case $DVD
    _HauptReset($DVD)
    Case $Aufnahmen
    _HauptReset($Aufnahmen)
    Case $Internet
    _HauptReset($Internet)
    Case $Musik
    _HauptReset($Musik)
    Case $Bluray
    _HauptReset($Bluray)
    Case $Einstellungen ;Aufruf Einstellungen
    _HauptReset($Einstellungen)
    Case $Beenden ;Aufruf Beenden
    _HauptReset($Beenden)
    Case $Exit
    Exit
    EndSwitch
    _FokusReset(ControlGetFocus('',''))
    WEnd

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

    Func _FokusReset($Button)
    If $Button <> $last_focus Then
    $last_focus = $Button
    Local $FarbeNorm = 0x000080, $FarbeMark = 0x6189F1, $FarbeTeil = 0x1139b1
    Local $aID = StringSplit('tv,dvd,aufnahmen,internet,musik,bluray,einstellungen,beenden,exit', ',')
    Local $aButton = StringSplit('button1,button2,button3,button4,button5,button6,button7,button8,button9', ',')
    For $i = 1 To $aID[0]
    GUICtrlSetBkColor(Eval($aID[$i]), $FarbeNorm)
    Next
    For $i = 1 To $aID[0]
    If $aButton[$i] = $Button Then
    If $i > 1 Then GUICtrlSetBkColor(Eval($aID[$i-1]), $FarbeTeil)
    GUICtrlSetBkColor(Eval($aID[$i]), $FarbeMark)
    If $i < $aID[0] Then GUICtrlSetBkColor(Eval($aID[$i+1]), $FarbeTeil)
    EndIf
    Next
    EndIf
    EndFunc

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

    Func _HauptReset($ID)
    Local $FarbeNorm = 0x000080, $FarbeMark = 0xFFFF44, $FarbeTeil = 0x1139b1
    Local $aID = StringSplit('tv,dvd,aufnahmen,internet,musik,bluray,einstellungen,beenden,exit', ',')
    For $i = 1 To $aID[0]
    GUICtrlSetBkColor(Eval($aID[$i]), $FarbeNorm)
    Next
    For $i = 1 To $aID[0]
    If Eval($aID[$i]) = $ID Then
    If $i > 1 Then GUICtrlSetBkColor(Eval($aID[$i-1]), $FarbeTeil)
    GUICtrlSetBkColor(Eval($aID[$i]), $FarbeMark)
    If $i < $aID[0] Then GUICtrlSetBkColor(Eval($aID[$i+1]), $FarbeTeil)
    EndIf
    Next
    EndFunc

    [/autoit]
  • Frage zu Bitand (Variablen zusammenfassen)

    • Oscar
    • 12. Oktober 2008 um 18:59

    Verstehe ich jetzt nicht so ganz. Das Script macht doch genau das von Dir gewollte (Button mit Fokus ist hellblau, Rest dunkelblau)?!
    Oder willst Du einen Hover-Effekt (Mauszeiger über den Button)?

  • Frage zu Bitand (Variablen zusammenfassen)

    • Oscar
    • 12. Oktober 2008 um 17:10

    Ich habe Dein Script mal einfacher gestaltet:

    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 $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 $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]

    _HauptReset($Internet)

    [/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
    _HauptReset($TV)
    Case $DVD
    _HauptReset($DVD)
    Case $Aufnahmen
    _HauptReset($Aufnahmen)
    Case $Internet
    _HauptReset($Internet)
    Case $Musik
    _HauptReset($Musik)
    Case $Bluray
    _HauptReset($Bluray)
    Case $Einstellungen ;Aufruf Einstellungen
    _HauptReset($Einstellungen)
    Case $Beenden ;Aufruf Beenden
    _HauptReset($Beenden)
    Case $Exit
    Exit
    EndSwitch
    WEnd

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

    Func _HauptReset($ID)
    Local $FarbeNorm = 0x000080, $FarbeMark = 0x4169E1
    Local $aID = StringSplit('tv,dvd,aufnahmen,internet,musik,bluray,einstellungen,beenden,exit', ',')
    For $i = 1 To $aID[0]
    If Eval($aID[$i]) = $ID Then
    GUICtrlSetBkColor(Eval($aID[$i]), $FarbeMark)
    Else
    GUICtrlSetBkColor(Eval($aID[$i]), $FarbeNorm)
    EndIf
    Next
    EndFunc

    [/autoit]

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™