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

Beiträge von bernd670

  • Sudoku

    • bernd670
    • 8. Mai 2007 um 23:00

    So, jetzt haben wir einen LevelEditor und am Programm habe ich auch noch ein paar Ergänzungen vorgenommen!

    Komischerweise springt bei mir der Cursor in verkehrter Reihenfolge wenn ich Tab drücke!? ?(


    Der Speichern-Button wird erst aktiviert wenn mindestens 22 Ziffern eingetragen sind! Gibt's auch sinnvolle Rätsel mit weniger Ziffern?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    Const $ciTop = 40
    Const $ciLeft = 20
    Const $cstrIniFile = @ScriptDir & "\Sudoku.ini"

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

    Dim $arSudokuFeld[9][9] ; Speichert die ControlID's der Inputfelder
    Dim $arLevels ; Array für die Spielstufen
    Dim $arGames ; Array für die Spiele in den Spielstufen

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

    Global $bLevelsChanged ; Ist True wenn sich an den Levels was geändert hat
    Global $bSheetSaveOK ; Ist True wenn das Blatt mit mehr als 21 Ziffern gefüllt ist
    Global $bSheetChanged ; Ist True wenn das Blatt verändert wurde
    Global $iGameIndex ; Speichert die aktuelle Spielnummer

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

    $FrmMain = GUICreate("Sudoku - Level Editor", 633, 454, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "FormMainClose")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "FormMainMinimize")
    GUISetOnEvent($GUI_EVENT_MAXIMIZE, "FormMainMaximize")
    GUISetOnEvent($GUI_EVENT_RESTORE, "FormMainRestore")

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

    $PicLeft = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft, $ciTop + 5, 5, 334, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicInnerLeft = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft + 113, $ciTop + 5, 5, 334, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicInnerRight = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft + 226, $ciTop + 5, 5, 334, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicRight = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft + 339, $ciTop + 5, 5, 334, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicTop = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft, $ciTop, 344, 5, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicInnerTop = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft + 5, $ciTop + 113, 334, 5, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicInnerBottom = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft + 5, $ciTop + 226, 334, 5, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicBottom = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft, $ciTop + 339, 344, 5, BitOR($SS_NOTIFY, $WS_GROUP))

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

    For $iZeile = 0 To 8
    $iTop = $ciTop + 8 + $iZeile * 35 + Int($iZeile / 3) * 8
    For $iSpalte = 0 To 8
    $iLeft = $ciLeft + 8 + $iSpalte * 35 + Int($iSpalte / 3) * 8
    $arSudokuFeld[$iZeile][$iSpalte] = GUICtrlCreateInput("", $iLeft, $iTop, 32, 32, BitOR($ES_CENTER, $ES_NUMBER))
    GUICtrlSetOnEvent(-1, "FieldChange")
    GUICtrlSetLimit(-1, 1)
    GUICtrlSetFont(-1, 16, 400, 0, "Arial")
    Next
    Next

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

    $LblLevels = GUICtrlCreateLabel("Level:", $ciLeft + 360, $ciTop + 5, 50)
    GUICtrlSetFont(-1, 12, 600, 0, "Arial")
    $CBLevels = GUICtrlCreateCombo("", $ciLeft + 420, $ciTop + 5, 120, 100, $CBS_DROPDOWNLIST)
    GUICtrlSetOnEvent(-1, "LevelChange")

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

    $LblGames = GUICtrlCreateLabel("Spiel:", $ciLeft + 360, $ciTop + 30, 50)
    GUICtrlSetFont(-1, 12, 600, 0, "Arial")
    $CBGames = GUICtrlCreateCombo("", $ciLeft + 420, $ciTop + 30, 120, 100, $CBS_DROPDOWNLIST)
    GUICtrlSetOnEvent(-1, "GameChange")

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

    $ButChangeLevel = GUICtrlCreateButton("Levelbez. ä&ndern", $ciLeft + 360, $ciTop + 130, 190)
    GUICtrlSetFont(-1, 12, 600, 0, "Arial")
    GUICtrlSetOnEvent(-1, "ButChangeLevelClick")

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

    $ButNewLevel = GUICtrlCreateButton("Neuer &Level", $ciLeft + 360, $ciTop + 160, 190)
    GUICtrlSetFont(-1, 12, 600, 0, "Arial")
    GUICtrlSetOnEvent(-1, "ButNewLevelClick")

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

    $ButNewSheet = GUICtrlCreateButton("Neues &Blatt", $ciLeft + 360, $ciTop + 210, 190)
    GUICtrlSetFont(-1, 12, 600, 0, "Arial")
    GUICtrlSetOnEvent(-1, "ButNewSheetClick")

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

    $ButSave = GUICtrlCreateButton("Blatt &speichern", $ciLeft + 360, $ciTop + 240, 190)
    GUICtrlSetFont(-1, 12, 600, 0, "Arial")
    GUICtrlSetOnEvent(-1, "ButSaveClick")
    GUICtrlSetState(-1, $GUI_DISABLE)

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

    $ButUndo = GUICtrlCreateButton("Änderungen &verwerfen", $ciLeft + 360, $ciTop + 270, 190)
    GUICtrlSetFont(-1, 12, 600, 0, "Arial")
    GUICtrlSetOnEvent(-1, "ButSaveClick")
    GUICtrlSetState(-1, $GUI_DISABLE)

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

    GUISetState(@SW_SHOW)

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

    #region -- Initialisierung
    $arLevels = IniReadSection($cstrIniFile, "Levels")
    If @error Then
    Dim $arLevels[2][2]
    Dim $arGames[2][2]

    $arLevels[0][0] = 1
    $arLevels[1][0] = "Stufe1"
    $arLevels[1][1] = "Level 1"
    GUICtrlSetData($CBLevels, "Level 1", "Level 1")

    $arGames[0][0] = 1
    $arGames[1][0] = "001"
    $arGames[1][1] = StringFormat("%081s", "0")
    GUICtrlSetData($CBGames, "001", "001")

    IniWriteSection($cstrIniFile,"Levels",$arLevels)
    IniWriteSection($cstrIniFile,"Stufe1",$arGames)

    GameChange()
    $bLevelsChanged = True
    $bSheetChanged = True
    $bSheetSaveOK = False
    Else

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

    $strLevels = ""
    For $iIndex = 1 To $arLevels[0][0]
    $strLevels &= $arLevels[$iIndex][1] & "|"
    Next
    $strLevels = StringTrimRight($strLevels, 1)

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

    GUICtrlSetData($CBLevels, $strLevels, StringLeft($strLevels, StringInStr($strLevels, "|") - 1))
    LevelChange()
    FieldChange()
    $bSheetChanged = False
    EndIf
    #endregion

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

    While 1
    If Not $bSheetChanged Then
    If BitAND(GUICtrlGetState($CBLevels), $GUI_DISABLE) = $GUI_DISABLE Then GUICtrlSetState($CBLevels, $GUI_ENABLE)
    If BitAND(GUICtrlGetState($CBGames), $GUI_DISABLE) = $GUI_DISABLE Then GUICtrlSetState($CBGames, $GUI_ENABLE)
    If BitAND(GUICtrlGetState($ButNewLevel), $GUI_DISABLE) = $GUI_DISABLE Then GUICtrlSetState($ButNewLevel, $GUI_ENABLE)
    If BitAND(GUICtrlGetState($ButNewSheet), $GUI_DISABLE) = $GUI_DISABLE Then GUICtrlSetState($ButNewSheet, $GUI_ENABLE)
    Else
    If BitAND(GUICtrlGetState($CBLevels), $GUI_ENABLE) = $GUI_ENABLE Then GUICtrlSetState($CBLevels, $GUI_DISABLE)
    If BitAND(GUICtrlGetState($CBGames), $GUI_ENABLE) = $GUI_ENABLE Then GUICtrlSetState($CBGames, $GUI_DISABLE)
    If BitAND(GUICtrlGetState($ButNewLevel), $GUI_ENABLE) = $GUI_ENABLE Then GUICtrlSetState($ButNewLevel, $GUI_DISABLE)
    If BitAND(GUICtrlGetState($ButNewSheet), $GUI_ENABLE) = $GUI_ENABLE Then GUICtrlSetState($ButNewSheet, $GUI_DISABLE)
    EndIf

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

    If $bSheetChanged And $bSheetSaveOK Then
    If BitAND(GUICtrlGetState($ButSave), $GUI_DISABLE) = $GUI_DISABLE Then GUICtrlSetState($ButSave, $GUI_ENABLE)
    Else
    If BitAND(GUICtrlGetState($ButSave), $GUI_ENABLE) = $GUI_ENABLE Then GUICtrlSetState($ButSave, $GUI_DISABLE)
    EndIf

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

    Sleep(100)
    WEnd

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

    Func FormMainClose()
    Exit
    EndFunc ;==>FormMainClose
    Func FormMainMaximize()

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

    EndFunc ;==>FormMainMaximize
    Func FormMainMinimize()

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

    EndFunc ;==>FormMainMinimize
    Func FormMainRestore()

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

    EndFunc ;==>FormMainRestore

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

    ; FieldChange -> eines der Inputfelder wurde geändert
    Func FieldChange()
    $iCounter = 0
    $arGames[$iGameIndex][1] = ""
    For $iZeile = 0 To 8
    For $iSpalte = 0 To 8
    $iWert = Int(GUICtrlRead($arSudokuFeld[$iZeile][$iSpalte]))
    If $iWert > 0 Then
    $iCounter += 1
    $arGames[$iGameIndex][1] &= String($iWert)
    Else
    $arGames[$iGameIndex][1] &= "0"
    EndIf
    Next
    Next

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

    $bSheetSaveOK = False
    If $iCounter > 21 Then $bSheetSaveOK = True

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

    $bSheetChanged = True
    EndFunc ;==>FieldChange

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

    ; LevelChange -> Schwierigkeitsstufe wurde geändert
    Func LevelChange()
    $strLevel = GUICtrlRead($CBLevels)
    For $iIndex = 1 To $arLevels[0][0]
    If $arLevels[$iIndex][1] == $strLevel Then ExitLoop
    Next
    $arGames = IniReadSection($cstrIniFile, $arLevels[$iIndex][0])

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

    If @error Then
    MsgBox(4096, "", "Fehler beim lesen der Ini-Datei!")
    Exit
    EndIf

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

    Switch $arGames[0][0]
    Case 0
    MsgBox(4096, "", "Für diesen Level existieren keine Spiele")
    Return

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

    Case 1
    GUICtrlSetData($CBGames, "|" & $arGames[1][0], $arGames[1][0])

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

    Case Else
    $strGames = ""
    For $iIndex = 1 To $arGames[0][0]
    $strGames &= $arGames[$iIndex][0] & "|"
    Next
    $strGames = StringTrimRight($strGames, 1)

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

    GUICtrlSetData($CBGames, "|" & $strGames, StringLeft($strGames, StringInStr($strGames, "|") - 1))
    EndSwitch

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

    GameChange()
    EndFunc ;==>LevelChange

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

    ; GameChange -> Neues Spiel wurde gewählt
    Func GameChange()
    $strGame = GUICtrlRead($CBGames)
    For $iIndex = 1 To $arGames[0][0]
    If $arGames[$iIndex][0] == $strGame Then ExitLoop
    Next

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

    For $iZeile = 0 To 8
    For $iSpalte = 0 To 8
    $iWert = StringMid($arGames[$iIndex][1], $iZeile * 9 + $iSpalte + 1, 1)
    If $iWert <> 0 Then
    GUICtrlSetData($arSudokuFeld[$iZeile][$iSpalte], $iWert)
    GUICtrlSetStyle($arSudokuFeld[$iZeile][$iSpalte], BitOR($ES_CENTER, $ES_NUMBER))
    Else
    GUICtrlSetData($arSudokuFeld[$iZeile][$iSpalte], "")
    GUICtrlSetStyle($arSudokuFeld[$iZeile][$iSpalte], BitOR($ES_CENTER, $ES_NUMBER))
    EndIf
    Next
    Next

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

    $iGameIndex = $iIndex
    EndFunc ;==>GameChange

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

    ; Button "Levelbez. ändern" wurde betätigt
    Func ButChangeLevelClick()
    $StrOldName = GUICtrlRead($CBLevels)
    For $iIndex = 1 To $arLevels[0][0]
    If $arLevels[$iIndex][1] == $StrOldName Then ExitLoop
    Next

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

    $strNewName = InputBox("Levelbezeichnung ändern", "Bitte neue Levelbezeichnung eingeben!" & @CRLF & @CRLF & _
    "Die derzeitige Bezeichnung ist: " & $StrOldName)
    If $strNewName <> $StrOldName And StringLen($strNewName) Then
    $arLevels[$iIndex][1] = $strNewName
    $bLevelsChanged = True

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

    $strLevels = ""
    For $iIndex = 1 To $arLevels[0][0]
    $strLevels &= $arLevels[$iIndex][1] & "|"
    Next
    $strLevels = StringTrimRight($strLevels, 1)

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

    GUICtrlSetData($CBLevels, $strLevels, $strNewName)
    EndIf
    EndFunc ;==>ButChangeLevelClick

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

    ; Button "Neuer Level" wurde betätigt
    Func ButNewLevelClick()
    $strNewName = InputBox("Level hinzufügen", "Bitte Bezeichnung für den neuen Level eingeben!")

    If StringLen($strNewName) Then
    ReDim $arLevels[$arLevels[0][0] + 2][2]
    $arLevels[0][0] += 1

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

    $strLevels = ""
    For $iIndex = 1 To $arLevels[0][0] - 1
    $strLevels &= $arLevels[$iIndex][1] & "|"
    If Int(StringMid($arLevels[$iIndex][0],6)) >= Int($arLevels[$arLevels[0][0]][0]) Then
    $arLevels[$arLevels[0][0]][0] = Int(StringMid($arLevels[$iIndex][0],6)) + 1
    EndIf
    Next
    $arLevels[$arLevels[0][0]][0] = "Stufe" & $arLevels[$arLevels[0][0]][0]
    $arLevels[$arLevels[0][0]][1] = $strNewName
    $strLevels &= $strNewName

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

    GUICtrlSetData($CBLevels, $strLevels, $strNewName)

    ReDim $arGames[2][2]

    $arGames[0][0] = 1
    $arGames[1][0] = "001"
    $arGames[1][1] = StringFormat("%081s", "0")
    GUICtrlSetData($CBGames, "001", "001")
    GameChange()
    $bLevelsChanged = True
    $bSheetChanged = True
    $bSheetSaveOK = False
    EndIf

    EndFunc ;==>ButNewLevelClick

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

    ; Button "Neues Blatt" wurde betätigt
    Func ButNewSheetClick()
    ReDim $arGames[$arGames[0][0] + 2][2]
    $arGames[0][0] += 1
    $arGames[$arGames[0][0]][1] = StringFormat("%081s", "0")

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

    Switch $arGames[0][0]
    Case 0
    MsgBox(4096, "", "Für diesen Level existieren keine Spiele!")
    Return

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

    Case 1
    GUICtrlSetData($CBGames, "|" & $arGames[1][0], $arGames[1][0])

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

    Case Else
    $strGames = ""
    For $iIndex = 1 To $arGames[0][0] - 1
    $strGames &= $arGames[$iIndex][0] & "|"
    If Int($arGames[$iIndex][0]) >= Int($arGames[$arGames[0][0]][0]) Then
    $arGames[$arGames[0][0]][0] = StringFormat("%03i", Int($arGames[$iIndex][0]) + 1)
    EndIf
    Next
    $strGames &= $arGames[$arGames[0][0]][0]

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

    GUICtrlSetData($CBGames, "|" & $strGames, $arGames[$arGames[0][0]][0])
    EndSwitch

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

    GameChange()
    $bSheetSaveOK = False
    EndFunc ;==>ButNewSheetClick

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

    ; Button "Blatt speichern" wurde betätigt
    Func ButSaveClick()
    If $bLevelsChanged Then
    IniWriteSection($cstrIniFile, "Levels", $arLevels)

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

    If @error Then
    MsgBox(4096, "", "Fehler beim lesen der Ini-Datei!")
    Exit
    EndIf
    $bLevelsChanged = False
    EndIf

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

    $strLevel = GUICtrlRead($CBLevels)

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

    For $iIndex = 1 To $arLevels[0][0]
    If $arLevels[$iIndex][1] == $strLevel Then ExitLoop
    Next

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

    IniWriteSection($cstrIniFile, $arLevels[$iIndex][0], $arGames)

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

    If @error Then
    MsgBox(4096, "", "Fehler beim lesen der Ini-Datei!")
    Exit
    EndIf

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

    $bSheetChanged = False
    $bSheetSaveOK = False
    EndFunc ;==>ButSaveClick

    [/autoit]

    Edit: Dateianhang entfernt -> veraltet

  • IfPressed

    • bernd670
    • 8. Mai 2007 um 22:50

    Ja!

  • IfPressed

    • bernd670
    • 8. Mai 2007 um 20:23

    Hallo Mega,

    warum geht es nicht?

    Bei mir (z.Z. auf W2K) läuft's!

  • Sudoku

    • bernd670
    • 8. Mai 2007 um 17:54
    Zitat

    Original von Alina
    ...

    Bernd, wenn das nicht super ausschaut, dann weiß ich auch nicht. Die Idee mit der INI-Datei ist super. Bis halt echt ein sehr helles "Köpfchen" <-- ist Spaß und nicht beleidigend auffassen bitte.

    ...

    Warum sollte ich das als beleidigend auffassen, wenns doch stimmt! ;)


    Level-Generator wird schwierig aber ein Level-Editor wäre kein Problem!

  • IfPressed

    • bernd670
    • 8. Mai 2007 um 17:33

    Hallo!

    Folgende codes sollten funktionieren!

    Code
    ä = 0xDE
    ö = 0xC0
    ü = 0xBA
  • Sudoku

    • bernd670
    • 8. Mai 2007 um 12:56

    Hallo!

    Ich habe mal ein Programm geschrieben das die Grundfunktionen für Sudoku enthält. Damit sollte der Grundstein gelegt sein... =)

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    Const $ciTop = 40
    Const $ciLeft = 20
    Const $cstrIniFile = @ScriptDir & "\Sudoku.ini"

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

    Dim $arSudokuFeld[9][9] ; Speichert die ControlID's der Inputfelder
    Dim $arErgebnis[3][9] ; Zur Berechnung der Ergebnisse [0][x] = Zeile, [1][x] = Spalte, [2][x] = Block
    Dim $arLevels ; Array für die Spielstufen
    Dim $arGames ; Array für die Spiele in den Spielstufen

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

    Global $geloest = False ; Rätsel gelöst

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

    $FrmMain = GUICreate("Sudoku", 633, 454, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "FormMainClose")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "FormMainMinimize")
    GUISetOnEvent($GUI_EVENT_MAXIMIZE, "FormMainMaximize")
    GUISetOnEvent($GUI_EVENT_RESTORE, "FormMainRestore")

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

    $PicLeft = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft, $ciTop + 5, 5, 334, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicInnerLeft = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft + 113, $ciTop + 5, 5, 334, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicInnerRight = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft + 226, $ciTop + 5, 5, 334, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicRight = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft + 339, $ciTop + 5, 5, 334, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicTop = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft, $ciTop, 344, 5, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicInnerTop = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft + 5, $ciTop + 113, 334, 5, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicInnerBottom = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft + 5, $ciTop + 226, 334, 5, BitOR($SS_NOTIFY, $WS_GROUP))
    $PicBottom = GUICtrlCreatePic(@ScriptDir & "\Images\Black.jpg", $ciLeft, $ciTop + 339, 344, 5, BitOR($SS_NOTIFY, $WS_GROUP))

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

    For $iZeile = 0 To 8
    $iTop = $ciTop + 8 + $iZeile * 35 + Int($iZeile / 3) * 8
    For $iSpalte = 0 To 8
    $iLeft = $ciLeft + 8 + $iSpalte * 35 + Int($iSpalte / 3) * 8
    $arSudokuFeld[$iZeile][$iSpalte] = GUICtrlCreateInput("", $iLeft, $iTop, 32, 32, BitOR($ES_CENTER, $ES_NUMBER))
    GUICtrlSetOnEvent(-1, "FieldChange")
    GUICtrlSetLimit(-1, 1)
    GUICtrlSetFont(-1, 16, 400, 0, "Arial")
    Next
    Next

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

    $LblLevels = GUICtrlCreateLabel("Level:", $ciLeft + 360, $ciTop + 5, 50)
    GUICtrlSetFont(-1, 12, 600, 0, "Arial")
    $CBLevels = GUICtrlCreateCombo("", $ciLeft + 420, $ciTop + 5, 100, 100)
    GUICtrlSetOnEvent(-1, "LevelChange")

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

    $LblGames = GUICtrlCreateLabel("Spiel:", $ciLeft + 360, $ciTop + 30, 50)
    GUICtrlSetFont(-1, 12, 600, 0, "Arial")
    $CBGames = GUICtrlCreateCombo("", $ciLeft + 420, $ciTop + 30, 100, 100)
    GUICtrlSetOnEvent(-1, "GameChange")

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

    GUISetState(@SW_SHOW)

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

    #region -- Initialisierung
    $arLevels = IniReadSection($cstrIniFile, "Levels")
    If @error Then
    MsgBox(4096, "", "Fehler beim lesen der Ini-Datei!")
    Exit
    EndIf

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

    $strLevels = ""
    For $iIndex = 1 To $arLevels[0][0]
    $strLevels &= $arLevels[$iIndex][1] & "|"
    Next
    $strLevels = StringTrimRight($strLevels, 1)

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

    GUICtrlSetData($CBLevels, $strLevels, StringLeft($strLevels, StringInStr($strLevels, "|") - 1))
    LevelChange()
    #endregion

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

    While 1
    If $geloest = True Then
    If MsgBox(262148, "", "Sudoku wurde gelöst!" & @CRLF & "Glückwunsch!" & @CRLF & @CRLF & "Weiterspielen ?") = 7 Then ExitLoop
    $geloest = False
    EndIf
    Sleep(100)
    WEnd

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

    Func FormMainClose()
    Exit
    EndFunc ;==>FormMainClose
    Func FormMainMaximize()

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

    EndFunc ;==>FormMainMaximize
    Func FormMainMinimize()

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

    EndFunc ;==>FormMainMinimize
    Func FormMainRestore()

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

    EndFunc ;==>FormMainRestore

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

    ; FieldChange -> eines der Inputfelder wurde geändert
    Func FieldChange()
    For $iZeile = 0 To 8
    $arErgebnis[0][$iZeile] = 0
    For $iSpalte = 0 To 8
    If $iZeile = 0 Then
    $arErgebnis[1][$iSpalte] = 0
    $arErgebnis[2][$iSpalte] = 0
    EndIf
    $iWert = Int(GUICtrlRead($arSudokuFeld[$iZeile][$iSpalte]))
    $arErgebnis[0][$iZeile] += $iWert ; Zeilenergebnis
    $arErgebnis[1][$iSpalte] += $iWert ; Spaltenergebnis
    $arErgebnis[2][Int($iZeile / 3) * 3 + Int($iSpalte / 3) ] += $iWert ; Blockergebnis
    Next
    Next

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

    $geloest = True
    For $iIndex = 0 To 8
    If $arErgebnis[0][$iIndex] <> 45 Or $arErgebnis[1][$iIndex] <> 45 Or $arErgebnis[2][$iIndex] <> 45 Then
    $geloest = False
    ExitLoop
    EndIf
    Next
    EndFunc ;==>FieldChange

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

    ; LevelChange -> Schwierigkeitsstufe wurde geändert
    Func LevelChange()
    $strLevel = GUICtrlRead($CBLevels)
    For $iIndex = 1 To $arLevels[0][0]
    If $arLevels[$iIndex][1] == $strLevel Then ExitLoop
    Next
    $arGames = IniReadSection($cstrIniFile, $arLevels[$iIndex][0])

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

    If @error Then
    MsgBox(4096, "", "Fehler beim lesen der Ini-Datei!")
    Exit
    EndIf

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

    $strGames = ""
    For $iIndex = 1 To $arGames[0][0]
    $strGames &= $arGames[$iIndex][0] & "|"
    Next
    $strGames = StringTrimRight($strGames, 1)

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

    GUICtrlSetData($CBGames, "|" & $strGames, StringLeft($strGames, StringInStr($strGames, "|") - 1))
    GameChange()
    EndFunc ;==>LevelChange

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

    ; GameChange -> Neues Spiel wurde gewählt
    Func GameChange()
    $strGame = GUICtrlRead($CBGames)
    For $iIndex = 1 To $arGames[0][0]
    If $arGames[$iIndex][0] == $strGame Then ExitLoop
    Next

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

    For $iZeile = 0 To 8
    For $iSpalte = 0 To 8
    $iWert = StringMid($arGames[$iIndex][1], $iZeile * 9 + $iSpalte + 1, 1)
    If $iWert <> 0 Then
    GUICtrlSetData($arSudokuFeld[$iZeile][$iSpalte], $iWert)
    GUICtrlSetStyle($arSudokuFeld[$iZeile][$iSpalte], BitOR($ES_CENTER, $ES_NUMBER, $ES_READONLY))
    Else
    GUICtrlSetData($arSudokuFeld[$iZeile][$iSpalte], "")
    GUICtrlSetStyle($arSudokuFeld[$iZeile][$iSpalte], BitOR($ES_CENTER, $ES_NUMBER))
    EndIf
    Next
    Next
    EndFunc ;==>GameChange

    [/autoit]

    Ich war mal so frei die Levels in eine Ini-Datei zu schreiben (ist einfacher zu händeln). Dabei ist nur zu beachten das die Schlüsselnamen unter der Section [Levels] als Sectionnamen für die Spiele verwendet werden.

    Spoiler anzeigen
    Code
    [Levels]
    Stufe1=Level 1
    Stufe2=Level 2
    Stufe3=Level 3
    
    
    [Stufe1]
    001=000670900360005028805002100020506004009407000700100583070054261000703000084090050
    002=628009000109056004500872001900510467807000030060020900004907103000201709091000280
    003=076930000000108400300026000045080130010567090200310058068002005704000982020003710
    004=120500360300009020007208004019000873403897001002350400000000087850016900200980140
    005=906020100020050460000009730004260070700030608030871204800700041213000090490308006
    
    
    [Stufe2]
    001=007000300050908004900030060070004080102070900000500006800010000000000405060007000
    002=060070008900104070003000500200007000008050906030900020000600010805000000000030007
    003=000400050107000000000060003800003000001070904060900080040030001900502030006000700
    004=004010050050900208300006000020000100000403000005000060000700005901004030070060900
    005=500000006004902010070050900020004060900060803007100000000080200401000000000006070
    
    
    [Stufe3]
    001=009050200500000004000907000000204000100000005003010600035060720010000080074080510
    002=700100002010070000008005300800000650006809000400300000009004000503600000000003071
    003=200000140001209000500800000600700003070060000002004800009005000408100000000008067
    004=000300150309001000200800000008009000100502000002000046600400007040060000005003200
    005=003500100000010050700004008240000800000809002000700600000006009000200407015007000
    Alles anzeigen


    Edit: Dateianhang entfernt -> veraltet

  • Minesweeper in 2D

    • bernd670
    • 6. Mai 2007 um 08:27

    Moin!

    Einfach in Optionen.au3 und MS_in_2D.au3 die Zeile

    [autoit]

    $file = FileOpen(@ScriptDir & "\Einstellungen.ini",1)

    [/autoit]

    durch

    [autoit]

    $file = @ScriptDir & "\Einstellungen.ini"

    [/autoit]

    Dann klappt es auch mit der Einstellungen.ini.

    IniRead und IniWrite arbeiten nicht mit Filehandle sondern mit Dateinamen.

  • Hyperlink in Worddokument erstellen

    • bernd670
    • 5. Mai 2007 um 10:46

    Hallo!

    Du kannst folgendes machen (Funktioniert zumindest bei Word2000):

    wenn Dokument auf Server liegt:
    Strg+F9 drücken -> erzeugt die zwei geschweifte Klammern für Feldfunktionen => schreiben -> Hyperlink "\\\\SERVER\\mandant01\\files\\musterdatei.jpg" (Backslash muss verdoppelt werden) => 2x Alt+F9 drücken -> wird als Hyperlink dargestellt

    wenn Dokument lokal liegt:
    Strg+F9 drücken -> erzeugt die zwei geschweifte Klammern für Feldfunktionen => schreiben -> Hyperlink "C:\\Muster\\musterdatei.jpg" (Backslash muss verdoppelt werden) => 2x Alt+F9 drücken -> wird als Hyperlink dargestellt

  • Fragen eines Anfängers

    • bernd670
    • 5. Mai 2007 um 00:53

    Hallo!

    Da Du innerhalb der Funktion die Tabelle bearbeitest musst Du vor die Variable $f ein ByRef setzten. Ansonsten kommst Du aus der Funktion leftclick nicht mehr heraus.

    [autoit]


    Func leftclick(ByRef $f,$x,$y)
    .....
    EndFunc

    [/autoit]
  • OnEvent Problem - *bin verzweifelt*

    • bernd670
    • 4. Mai 2007 um 08:23

    Hallo!

    Die Lösung ist eingentlich ganz einfach, Du musst statt

    [autoit]

    GUISetOnEvent($btn_hotkeyhelp, "_hotkeyhelp")

    [/autoit]

    folgendes schreiben

    [autoit]

    GUICtrlSetOnEvent($btn_hotkeyhelp, "_hotkeyhelp")

    [/autoit]
  • Aktion kurz vor dem herunterfahren durchführen!

    • bernd670
    • 4. Mai 2007 um 08:15

    Hallo!

    Man kann über die Gruppenrichtlinien auch Programme und Scripte ausführen bevor der Rechner herunterfährt!

    Start => Ausführen => GPEDIT.MSC => Computerkonfiguration => Windows-Einstellungen => Skripts => Herunterfahren
    (Die Gruppenrichtline findet man auch auf dem Domänenkontroller)

  • goto alternative

    • bernd670
    • 2. Mai 2007 um 08:16

    Hallo!

    Durch die Verwendung von goto und gosub wie man es aus allten BASIC-Dialekten kennt wird ein Programm sehr unübersichtlich (Spaghetticode). In höheren Programmiersprachen wird man nach Befehlen wie goto und gosub vergebens suchen weil man dort mit Schleifen, Funktionen und Verzweigungen effektivere und übersichtlichere Programme schreiben kann.

    In dem von dir dargestellten Code ist ein goto übrigens völlig überflüssig weil das genau das gleiche ist wie das:

    [autoit]


    if ... then
    mache dies und das
    else
    mache was anderes
    endif

    [/autoit]
  • AutoIt_64.exe

    • bernd670
    • 29. April 2007 um 07:11

    Das ist eine 64bit Version von AutoIt. Die befindet sich allerdings noch im Alpha-Stadium.

  • selbsterstellte .ico-Datei in AutoIt richtig verwenden...

    • bernd670
    • 26. April 2007 um 01:29

    Hallo!

    In einer ICO-Datei kann nur ein Icon gespeichert werden. Wenn Du mehrere Icons in einer Datei speichern willst benöigst Du eine ICL-Datei. Man kann zwar mehrere Bilder in einer ICO-Datei speichern, aber alle Bilder haben die gleiche ID. Das ist nur gedacht für animierte Icon's.

  • Durchlaufzeit

    • bernd670
    • 25. April 2007 um 16:59

    Hallo Alina!

    Intressante Umsetzung! :klatschen:

    Nur wenn Du immer wieder GuiCtrlCreatePic aufrufst wird irgendwann das Programm aussteigen well keine Controls mehr erstellt werden können. Besser ist es mit GUICtrlSetImage ein neues Image zuzuweisen (verhindert ausserdem das Flackern).

    Hier mal eine andere Lösung (kannst ja mal schauen ob Du es nachvollziehen kannst) ;-):

    Spoiler anzeigen
    [autoit]


    #include <GuiConstants.au3>
    ; EXITBUTTON-Start
    Opt("GUIOnEventMode", 1)
    GuiCreate("Die Berliner Mengenlehreuhr", 411, 470,-1, -1 , BitOr($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))
    ;GUISetBkColor (0x000000) ; will change background color
    GUISetOnEvent($GUI_EVENT_CLOSE, "OnExit")

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

    ;~ $user = GUICtrlCreateDummy()
    ;~ GUICtrlSetOnEvent(-1, "Onexit")
    $Button_1 = GuiCtrlCreateButton("Exit", 20, 380, 70, 30)
    GUICtrlSetOnEvent(-1, "OnExit") ; to handle click on button
    ; EXITBUTTON-Ende Teil 2 unten

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

    $PIC_SEC = GuiCtrlCreatePic("gelb.jpg", 30, 60, 350, 50)
    $PIC_MIN01 = GuiCtrlCreatePic("gelb.jpg", 30, 120, 80, 50)
    $PIC_MIN02 = GuiCtrlCreatePic("gelb.jpg", 120, 120, 80, 50)
    $PIC_MIN03 = GuiCtrlCreatePic("gelb.jpg", 210, 120, 80, 50)
    $PIC_MIN04 = GuiCtrlCreatePic("gelb.jpg", 300, 120, 80, 50)
    $PIC_MIN05 = GuiCtrlCreatePic("gelb.jpg", 30, 180, 20, 50)
    $PIC_MIN10 = GuiCtrlCreatePic("gelb.jpg", 60, 180, 20, 50)
    $PIC_MIN15 = GuiCtrlCreatePic("gelb.jpg", 90, 180, 20, 50)
    $PIC_MIN20 = GuiCtrlCreatePic("gelb.jpg", 120, 180, 20, 50)
    $PIC_MIN25 = GuiCtrlCreatePic("gelb.jpg", 150, 180, 20, 50)
    $PIC_MIN30 = GuiCtrlCreatePic("gelb.jpg", 180, 180, 50, 50)
    $PIC_MIN35 = GuiCtrlCreatePic("gelb.jpg", 240, 180, 20, 50)
    $PIC_MIN40 = GuiCtrlCreatePic("gelb.jpg", 270, 180, 20, 50)
    $PIC_MIN45 = GuiCtrlCreatePic("gelb.jpg", 300, 180, 20, 50)
    $PIC_MIN50 = GuiCtrlCreatePic("gelb.jpg", 330, 180, 20, 50)
    $PIC_MIN55 = GuiCtrlCreatePic("gelb.jpg", 360, 180, 20, 50)
    $PIC_HOU01 = GuiCtrlCreatePic("gelb.jpg", 30, 240, 80, 50)
    $PIC_HOU02 = GuiCtrlCreatePic("gelb.jpg", 120, 240, 80, 50)
    $PIC_HOU03 = GuiCtrlCreatePic("gelb.jpg", 210, 240, 80, 50)
    $PIC_HOU04 = GuiCtrlCreatePic("gelb.jpg", 300, 240, 80, 50)
    $PIC_HOU05 = GuiCtrlCreatePic("gelb.jpg", 30, 300, 80, 50)
    $PIC_HOU10 = GuiCtrlCreatePic("gelb.jpg", 120, 300, 80, 50)
    $PIC_HOU15 = GuiCtrlCreatePic("gelb.jpg", 210, 300, 80, 50)
    $PIC_HOU20 = GuiCtrlCreatePic("gelb.jpg", 300, 300, 80, 50)

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

    $Group_25 = GuiCtrlCreateGroup("", 20, 40, 370, 330)
    $Label_26 = GuiCtrlCreateLabel("Es gibt unendlich viele Möglichkeiten, die Uhrzeit anzuzeigen, und eine der seltsameren Möglichkeiten nutzt die von Dieter Binninger erfundene Berlin-Uhr.", 20, 10, 370, 30)
    $Label_27 = GuiCtrlCreateLabel("1. Reihe: Sekunden-Balken", 100, 380, 280, 20)
    $Label_28 = GuiCtrlCreateLabel("2. Reihe: 1, 2, 3, 4 Minuten", 100, 395, 280, 20)
    $Label_29 = GuiCtrlCreateLabel("3. Reihe: 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55 Minuten", 100, 410, 280, 20)
    $Label_30 = GuiCtrlCreateLabel("4. Reihe: 1, 2, 3, 4 Stunden", 100, 425, 280, 20)
    $Label_31 = GuiCtrlCreateLabel("5. Reihe: 5, 10, 15, 20 Stunden", 100, 440, 280, 20)

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

    GuiSetState()
    While 1

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

    ; Sekunden-Anzeige
    Switch Mod(Int(@SEC/2),2)
    Case 1
    GUICtrlSetImage($PIC_SEC, "rot.jpg")

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

    Case Else
    GUICtrlSetImage($PIC_SEC, "gelb.jpg")
    EndSwitch

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

    ; Minute 1 - 4
    Switch Mod(@MIN,5)
    Case 1
    GUICtrlSetImage($PIC_MIN01,"rot.jpg")

    Case 2
    GUICtrlSetImage($PIC_MIN01,"rot.jpg")
    GUICtrlSetImage($PIC_MIN02,"rot.jpg")

    Case 3
    GUICtrlSetImage($PIC_MIN01,"rot.jpg")
    GUICtrlSetImage($PIC_MIN02,"rot.jpg")
    GUICtrlSetImage($PIC_MIN03,"rot.jpg")

    Case 4
    GUICtrlSetImage($PIC_MIN01,"rot.jpg")
    GUICtrlSetImage($PIC_MIN02,"rot.jpg")
    GUICtrlSetImage($PIC_MIN03,"rot.jpg")
    GUICtrlSetImage($PIC_MIN04,"rot.jpg")

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

    Case Else
    GUICtrlSetImage($PIC_MIN01,"gelb.jpg")
    GUICtrlSetImage($PIC_MIN02,"gelb.jpg")
    GUICtrlSetImage($PIC_MIN03,"gelb.jpg")
    GUICtrlSetImage($PIC_MIN04,"gelb.jpg")

    EndSwitch

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

    ; Minute 5,10,15,20,25,30,35,40,45,50,55
    Switch Int(@MIN/5)
    Case 1
    GUICtrlSetImage($PIC_MIN05,"rot.jpg")

    Case 2
    GUICtrlSetImage($PIC_MIN05,"rot.jpg")
    GUICtrlSetImage($PIC_MIN10,"rot.jpg")

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

    Case 3
    GUICtrlSetImage($PIC_MIN05,"rot.jpg")
    GUICtrlSetImage($PIC_MIN10,"rot.jpg")
    GUICtrlSetImage($PIC_MIN15,"rot.jpg")

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

    case 4
    GUICtrlSetImage($PIC_MIN05,"rot.jpg")
    GUICtrlSetImage($PIC_MIN10,"rot.jpg")
    GUICtrlSetImage($PIC_MIN15,"rot.jpg")
    GUICtrlSetImage($PIC_MIN20,"rot.jpg")

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

    case 5
    GUICtrlSetImage($PIC_MIN05,"rot.jpg")
    GUICtrlSetImage($PIC_MIN10,"rot.jpg")
    GUICtrlSetImage($PIC_MIN15,"rot.jpg")
    GUICtrlSetImage($PIC_MIN20,"rot.jpg")
    GUICtrlSetImage($PIC_MIN25,"rot.jpg")

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

    case 6
    GUICtrlSetImage($PIC_MIN05,"rot.jpg")
    GUICtrlSetImage($PIC_MIN10,"rot.jpg")
    GUICtrlSetImage($PIC_MIN15,"rot.jpg")
    GUICtrlSetImage($PIC_MIN20,"rot.jpg")
    GUICtrlSetImage($PIC_MIN25,"rot.jpg")
    GUICtrlSetImage($PIC_MIN30,"hblau.jpg")

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

    case 7
    GUICtrlSetImage($PIC_MIN05,"rot.jpg")
    GUICtrlSetImage($PIC_MIN10,"rot.jpg")
    GUICtrlSetImage($PIC_MIN15,"rot.jpg")
    GUICtrlSetImage($PIC_MIN20,"rot.jpg")
    GUICtrlSetImage($PIC_MIN25,"rot.jpg")
    GUICtrlSetImage($PIC_MIN30,"hblau.jpg")
    GUICtrlSetImage($PIC_MIN35,"rot.jpg")

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

    case 8
    GUICtrlSetImage($PIC_MIN05,"rot.jpg")
    GUICtrlSetImage($PIC_MIN10,"rot.jpg")
    GUICtrlSetImage($PIC_MIN15,"rot.jpg")
    GUICtrlSetImage($PIC_MIN20,"rot.jpg")
    GUICtrlSetImage($PIC_MIN25,"rot.jpg")
    GUICtrlSetImage($PIC_MIN30,"hblau.jpg")
    GUICtrlSetImage($PIC_MIN35,"rot.jpg")
    GUICtrlSetImage($PIC_MIN40,"rot.jpg")

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

    case 9
    GUICtrlSetImage($PIC_MIN05,"rot.jpg")
    GUICtrlSetImage($PIC_MIN10,"rot.jpg")
    GUICtrlSetImage($PIC_MIN15,"rot.jpg")
    GUICtrlSetImage($PIC_MIN20,"rot.jpg")
    GUICtrlSetImage($PIC_MIN25,"rot.jpg")
    GUICtrlSetImage($PIC_MIN30,"hblau.jpg")
    GUICtrlSetImage($PIC_MIN35,"rot.jpg")
    GUICtrlSetImage($PIC_MIN40,"rot.jpg")
    GUICtrlSetImage($PIC_MIN45,"rot.jpg")

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

    case 10
    GUICtrlSetImage($PIC_MIN05,"rot.jpg")
    GUICtrlSetImage($PIC_MIN10,"rot.jpg")
    GUICtrlSetImage($PIC_MIN15,"rot.jpg")
    GUICtrlSetImage($PIC_MIN20,"rot.jpg")
    GUICtrlSetImage($PIC_MIN25,"rot.jpg")
    GUICtrlSetImage($PIC_MIN30,"hblau.jpg")
    GUICtrlSetImage($PIC_MIN35,"rot.jpg")
    GUICtrlSetImage($PIC_MIN40,"rot.jpg")
    GUICtrlSetImage($PIC_MIN45,"rot.jpg")
    GUICtrlSetImage($PIC_MIN50,"rot.jpg")

    case 11
    GUICtrlSetImage($PIC_MIN05,"rot.jpg")
    GUICtrlSetImage($PIC_MIN10,"rot.jpg")
    GUICtrlSetImage($PIC_MIN15,"rot.jpg")
    GUICtrlSetImage($PIC_MIN20,"rot.jpg")
    GUICtrlSetImage($PIC_MIN25,"rot.jpg")
    GUICtrlSetImage($PIC_MIN30,"hblau.jpg")
    GUICtrlSetImage($PIC_MIN35,"rot.jpg")
    GUICtrlSetImage($PIC_MIN40,"rot.jpg")
    GUICtrlSetImage($PIC_MIN45,"rot.jpg")
    GUICtrlSetImage($PIC_MIN50,"rot.jpg")
    GUICtrlSetImage($PIC_MIN55,"rot.jpg")

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

    Case Else
    GUICtrlSetImage($PIC_MIN05,"gelb.jpg")
    GUICtrlSetImage($PIC_MIN10,"gelb.jpg")
    GUICtrlSetImage($PIC_MIN15,"gelb.jpg")
    GUICtrlSetImage($PIC_MIN20,"gelb.jpg")
    GUICtrlSetImage($PIC_MIN25,"gelb.jpg")
    GUICtrlSetImage($PIC_MIN30,"gelb.jpg")
    GUICtrlSetImage($PIC_MIN35,"gelb.jpg")
    GUICtrlSetImage($PIC_MIN40,"gelb.jpg")
    GUICtrlSetImage($PIC_MIN45,"gelb.jpg")
    GUICtrlSetImage($PIC_MIN50,"gelb.jpg")
    GUICtrlSetImage($PIC_MIN55,"gelb.jpg")

    EndSwitch

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

    ; Stunde 1 - 4
    Switch Mod(@HOUR,5)
    Case 1
    GUICtrlSetImage($PIC_HOU01,"rot.jpg")

    Case 2
    GUICtrlSetImage($PIC_HOU01,"rot.jpg")
    GUICtrlSetImage($PIC_HOU02,"rot.jpg")

    Case 3
    GUICtrlSetImage($PIC_HOU01,"rot.jpg")
    GUICtrlSetImage($PIC_HOU02,"rot.jpg")
    GUICtrlSetImage($PIC_HOU03,"rot.jpg")

    Case 4
    GUICtrlSetImage($PIC_HOU01,"rot.jpg")
    GUICtrlSetImage($PIC_HOU02,"rot.jpg")
    GUICtrlSetImage($PIC_HOU03,"rot.jpg")
    GUICtrlSetImage($PIC_HOU04,"rot.jpg")

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

    Case Else
    GUICtrlSetImage($PIC_HOU01,"gelb.jpg")
    GUICtrlSetImage($PIC_HOU02,"gelb.jpg")
    GUICtrlSetImage($PIC_HOU03,"gelb.jpg")
    GUICtrlSetImage($PIC_HOU04,"gelb.jpg")

    EndSwitch

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

    ; Minute 5,10,15,20
    Switch Int(@HOUR/5)
    Case 1
    GUICtrlSetImage($PIC_HOU05,"rot.jpg")

    Case 2
    GUICtrlSetImage($PIC_HOU05,"rot.jpg")
    GUICtrlSetImage($PIC_HOU10,"rot.jpg")

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

    Case 3
    GUICtrlSetImage($PIC_HOU05,"rot.jpg")
    GUICtrlSetImage($PIC_HOU10,"rot.jpg")
    GUICtrlSetImage($PIC_HOU15,"rot.jpg")

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

    case 4
    GUICtrlSetImage($PIC_HOU05,"rot.jpg")
    GUICtrlSetImage($PIC_HOU10,"rot.jpg")
    GUICtrlSetImage($PIC_HOU15,"rot.jpg")
    GUICtrlSetImage($PIC_HOU20,"rot.jpg")

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

    Case Else
    GUICtrlSetImage($PIC_HOU05,"gelb.jpg")
    GUICtrlSetImage($PIC_HOU10,"gelb.jpg")
    GUICtrlSetImage($PIC_HOU15,"gelb.jpg")
    GUICtrlSetImage($PIC_HOU20,"gelb.jpg")

    EndSwitch

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

    Sleep(100)
    WEnd

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

    Exit

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

    ; EXITBUTTON-Start
    Func OnExit()
    Exit
    EndFunc
    ; EXITBUTTON-Ende

    [/autoit]
  • Durchlaufzeit

    • bernd670
    • 25. April 2007 um 08:33

    Hallo!

    Meinst Du vllt. sowas. Der Doppelpunkt blinkt im sekundentakt!

    Spoiler anzeigen
    [autoit]


    #Include <Misc.au3>

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

    $splTime = SplashTextOn("Zeit","",70,30,0,0,1,"",20,600)

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

    AdlibEnable("SetTimer",100)

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

    While 1
    Sleep(100)

    If _IsPressed("1B") Then Exit
    Wend

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

    Func SetTimer ()
    If Not Mod(@SEC,2) Then
    $splTimeTxt = @HOUR & ":" & @MIN
    Else
    $splTimeTxt = @HOUR & " " & @MIN
    EndIf

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

    ControlSetText($splTime,"","Static1", $splTimeTxt)
    EndFunc

    [/autoit]
  • Abkürzungen funktionieren in Scite nicht...

    • bernd670
    • 23. April 2007 um 12:38

    Hallo!

    Prüf mal ob die Dateien au3.keywords.abbreviations.properties und au3abbrev.properties im SciTE-Verzeichnis vorhanden sind.

  • GUICreate - Schließen ohne Exit, aber Wie? 8D

    • bernd670
    • 22. April 2007 um 13:39

    Hallo!

    Das Problem ist das nach dem until $msg = $GUI_EVENT_CLOSE das Script nicht zu ende ist sonder eine zweite Do .. Until-Schleife beginnt. Wenn Du nach dem der ersten Schleife ein GuiDelete für die Gui aufrufst wird das Fenster geschlossen!

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

    $gui=GUICreate("Diablo II Spam Bot", 300, 200)
    ; background picture
    $background = GUICtrlCreatePic ("background_pic.jpg", 0, 0, 300, 200)
    GUISetState(@SW_SHOW)

    do
    $msg = GUIGetMsg()

    until $msg = $GUI_EVENT_CLOSE

    GUIDelete($gui)

    Opt("SendKeyDelay", 1) ;1 milliseconds
    Do
    Sleep(1000)
    If WinActive("Diablo II") Then
    HotKeySet("^a", "_send1")
    HotKeySet("^s", "_send2")
    HotKeySet("^d", "_send3")
    Else
    HotKeySet("^a")
    HotKeySet("^s")
    HotKeySet("^d")
    EndIf
    Until False

    Func _send1()
    Send("{enter}")
    Send("eZPK over Europe. Gtfo /delete Asap{!}")
    Send("{enter}")
    EndFunc ;==>_send1

    Func _send2()
    Send("{enter}")
    Send("~*~ Have Fun & Good Luck - Don't Rage{!} ~*~")
    Send("{enter}")
    EndFunc ;==>_send2

    Func _send3()
    Send("{enter}")
    Send("~*~ Text Text ~*~")
    Send("{enter}")
    EndFunc ;==>_send3

    [/autoit]
  • ControlClick geht nicht oO

    • bernd670
    • 22. April 2007 um 12:15

    Also wenn ich das richtig sehe ist in "Dateindownload" ein "n" zu viel das Fenster heisst Dateidownload!

    Dann sollte ControlClick("Dateidownload", "", "Button2") auch funktionieren!

  • GUI Tab Aktualisieren

    • bernd670
    • 21. April 2007 um 21:27

    Ganz einfach, $Status hat bei jedem Schleifendurchgang den 0 oder 1, d.h. es wird bei jedem Schleifendurchgang auch "Case $Status = 0" oder "Case $Status = 1" abgearbeitet. Mit dem aktivitem1 und aktivitem2 wird dafür gesorgt das nur bei einem Statuswechsel von 0 auf 1 oder von 1 auf 0 die aktionen ausgeführt werden.

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™