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

Beiträge von AltairKD

  • Star Wars Intro NEU

    • AltairKD
    • 26. März 2010 um 13:35

    Kann mich nur anschliessen, sau geil gemacht.

  • GUI Terminkalender mit Passwortabfrage

    • AltairKD
    • 26. März 2010 um 13:29

    wurde gesagt :P :D , aber das mit den ändern sollte net xD, also bitte ändern nachdem ersten start da es sonst immerwieder sagt bitte neues PW geben. ;)

  • GUI Terminkalender mit Passwortabfrage

    • AltairKD
    • 26. März 2010 um 13:22

    Hi zusammen, habe vorgestern angefangen mit AutoIT zu programmieren (vorher hatte ich 2Monate C++ und C# gemacht) die waren mir aber zu Komplex und ich wollte erstmal hiermit anfangen.


    Habe gestern einen Terminkalender programmiert (mit bischen beihilfe von SEuBo) den ich euch hier mal vorstellen will.

    Der ganze Terminkalender ist Passwortgeschütz und noch net ganz fertig.

    Das standard-Passwort ist "12345".

    Werde hier einfach mal den Code posten und ihr könnt dann ja mal reinschauen.


    [autoit]

    #include <Array.au3>
    #include <GuiListView.au3>
    $input = InputBox("Passwort eingeben", "Bitte geben Sie das Passwort ein", "", "*")
    If $input <> IniRead(@ScriptDir & "\config.ini", "data", "passwort", "12345") Then
    Exit MsgBox(0, "", "Falsches Passwort")
    Else
    If $input = "12345" Then
    $neup = InputBox("Neues Passwort", "Bitte geben Sie ein neues Passwort ein", "", "*")
    IniWrite(@ScriptDir & "\config.ini", "data", "passwort", $neup)
    EndIf
    EndIf
    Opt("TrayMenuMode", 1)
    TraySetClick(16)
    $hMax = TrayCreateItem("Anzeigen")
    $hGhost = TrayCreateItem("Verstecken")
    TrayCreateItem("")
    $hTray = TrayCreateItem("Schliessen")
    $SEC = @SEC
    $GUI = GUICreate("Terminkalender", 440, 400)
    GUISetBkColor(0xFACBAFF)
    $ccal = GUICtrlCreateMonthCal("Kalender", 20, 225, 400, 160)
    GUISetState()
    ;~ Liste für termine
    $cListView = GUICtrlCreateListView("Termin|Beschreibung|Datum|Uhrzeit", 20, 30, 400, 150)
    $hListView = GUICtrlGetHandle($cListView)
    _GUICtrlListView_SetColumnWidth($hListView, 1, 175) ; für Beschreibung abstand
    _GUICtrlListView_SetColumnWidth($hListView, 0, 100) ; für Termin abstand
    ;~ Buttons
    $cNeu = GUICtrlCreateButton("Neu", 20, 2, 100, 20)
    $csave = GUICtrlCreateButton("Speichern", 220, 2, 100, 20)
    $load = GUICtrlCreateButton("Laden", 120, 2, 100, 20)
    $cLoeschen = GUICtrlCreateButton("Löschen", 320, 2, 100, 20)
    $such = GUICtrlCreateInput("", 20, 185, 200, 30)
    $suchGo = GUICtrlCreateButton("Suchen", 240, 185, 100, 30)
    $uhr = GUICtrlCreateLabel(@HOUR & ":" & @MIN & ":" & @SEC, 360, 185, 50, 20)
    ;~ Contextmenü
    $contextmenu = GUICtrlCreateContextMenu($cListView)
    $iNeu = GUICtrlCreateMenu("Neu", $contextmenu)
    $iDel = GUICtrlCreateMenuItem("Löschen", $contextmenu)
    $iEin = GUICtrlCreateMenuItem("Eintrag", $iNeu)

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

    While 1
    $nMsg = GUIGetMsg() ; Fragt ab, was auf der GUI passiert, und speichert das in $nMSg
    Switch $nMsg ; Welchen Wert hat $nMSg grade?
    Case -3 ; $nMsg = -3 [also das X oben rechts]
    Exit
    Case $cNeu, $iEin
    $sInput = InputBox("Neuer Termin", "Bitte Termin eingeben:")
    $sbeschreibung = InputBox("Neuer Eintrag:", "Bitte geben Sie die Beschreibung ein!")
    $suhrzeit = InputBox("Neuer Eintrag:", "Bitte geben Sie die Uhrzeit ein!")
    $sdatum = InputBox("Neuer Eintrag:", "Bitte geben Sie das Datum ein!")
    GUICtrlCreateListViewItem($sInput & "|" & $sbeschreibung & "|" & $sdatum & "|" & $suhrzeit, $cListView)
    Case $csave
    $PathSave = FileSaveDialog("Speichern unter", @DesktopDir, "Textdateien (*.txt)")
    If StringRight($PathSave, 4) <> ".txt" Then $PathSave &= ".txt"
    $aArrayListView = _ListViewToArray()
    _FileWriteFromArray2D($PathSave, $aArrayListView)
    Case $load
    $PathLoad = FileOpenDialog("Datei öffnen", @DesktopDir, "Textdateien (*.txt)")
    Local $ARRAY
    _FileReadToArray2D($PathLoad, $ARRAY, "|")
    _ArrayDelete($ARRAY, 0)
    _GUICtrlListView_AddArray($hListView, $ARRAY)
    Case $cLoeschen, $iDel
    _GUICtrlListView_DeleteItemsSelected($hListView)
    Case $suchGo, $such
    $suchterm = GUICtrlRead($such)
    $gefunden = _GUICtrlListView_FindInText($hListView, $suchterm)
    _GUICtrlListView_ClickItem($hListView, $gefunden)
    EndSwitch
    $TrayMessage = TrayGetMsg()
    Switch $TrayMessage
    Case $hTray
    Exit
    EndSwitch
    If @SEC <> $SEC Then
    $SEC = @SEC
    GUICtrlSetData($uhr, @HOUR & ":" & @MIN & ":" & @SEC)
    EndIf
    WEnd

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

    Func _ListViewToArray()
    Local $iCnt = _GUICtrlListView_GetItemCount($hListView) ; Anzahl der Zeilen auslesen.
    If $iCnt < 1 Then Return SetError(1) ; Falls kein Eintrag, dann Funktion verlassen.
    Dim $aRet[$iCnt][4] ; Array erstellen. Mit genauso vielen Zeilen wie die Listview einträge hat, und 4 Spalten (termin, beschreibung usw)
    For $i = 0 To $iCnt - 1 ; Alle Elemente der Listview in einer For-Next Schleife durchgehen. Wir starten bei 0 (erste Zeile) und hören bei $iCnt-1 auf. (icnt ist ja die anzahl der Zeilen. -1 müssen wir machen, weil die Zeilen ja bei 0 beginnen, und nicht bei 1)
    $aRet[$i][0] = _GUICtrlListView_GetItemText($hListView, $i, 0) ; Kannst dir ja denken ;)
    $aRet[$i][1] = _GUICtrlListView_GetItemText($hListView, $i, 1)
    $aRet[$i][2] = _GUICtrlListView_GetItemText($hListView, $i, 2)
    $aRet[$i][3] = _GUICtrlListView_GetItemText($hListView, $i, 3)
    Next
    Return $aRet ; Array zurückgeben, damit wir den in Zeile 33 in eine Variable speichern können.
    EndFunc ;==>_ListViewToArray
    ;==========================================================================================================================================
    ; Function: _FileWriteFromArray2D($FILEPATH, $ARRAY [, $iROWstart=0 [, $iROWend=0 [, $iCOLstart=0 [, $iCOLend=0 [, $DELIM='|']]]]])
    ;
    ; Description: Write 1D/2D array to file, 2D with delimiter between every entry
    ;
    ; Parameter(s): $FILEPATH - path/filename of the file to be write
    ; $ARRAY - array to write from
    ; optional $iROWstart - start row-index, default 0
    ; optional $iROWend - end row-index, default Ubound(array)-1
    ; optional $iCOLstart - start column-index, default 0
    ; optional $iCOLend - end column-index, default Ubound(array,2)-1
    ; optional $DELIM - delimiter for 2D-array entries, default '|'
    ;
    ; Requirement(s): None
    ;
    ; Return Value(s): On Success - Returns -1
    ; On Failure - Returns 0 and sets @error = 1 (given array is'nt array); @error = 2 (unable to open filepath)
    ;
    ; Note: If $iROWstart > $iROWend or $iCOLstart > $iCOLend the values will be swapped among
    ;
    ; Author(s): BugFix ( [email='bugfix@autoit.de'][/email] )
    ;==========================================================================================================================================
    Func _FileWriteFromArray2D($FILEPATH, $ARRAY, $iROWstart = 0, $iROWend = 0, $iCOLstart = 0, $iCOLend = 0, $DELIM = '|')
    If Not IsArray($ARRAY) Then
    SetError(1)
    Return 0
    EndIf
    Local $Ubound = UBound($ARRAY)
    If $iROWend = 0 Then $iROWend = $Ubound - 1
    Local $fh = FileOpen($FILEPATH, 2)
    If $fh = -1 Then
    SetError(2)
    Return 0
    EndIf
    Select
    Case $iROWstart < 0 Or $iROWstart > $Ubound - 1
    $iROWstart = 0
    ContinueCase
    Case $iROWend < 0 Or $iROWend > $Ubound - 1
    $iROWend = $Ubound - 1
    ContinueCase
    Case $iROWstart > $iROWend
    $tmp = $iROWstart
    $iROWstart = $iROWend
    $iROWend = $tmp
    EndSelect
    Local $Ubound2nd = UBound($ARRAY, 2)
    If @error = 2 Then
    For $i = $iROWstart To $iROWend
    FileWriteLine($fh, $ARRAY[$i])
    Next
    Else
    If $iCOLend = 0 Then $iCOLend = $Ubound2nd - 1
    Select
    Case $iCOLstart < 0 Or $iCOLstart > $Ubound2nd - 1
    $iCOLstart = 0
    ContinueCase
    Case $iCOLend < 0 Or $iCOLend > $Ubound2nd - 1
    $iCOLend = $Ubound2nd - 1
    ContinueCase
    Case $iCOLstart > $iCOLend
    $tmp = $iCOLstart
    $iCOLstart = $iCOLend
    $iCOLend = $tmp
    EndSelect
    For $i = $iROWstart To $iROWend
    $tmp = ''
    For $k = $iCOLstart To $iCOLend
    If $k < $iCOLend Then
    $tmp &= $ARRAY[$i][$k] & $DELIM
    Else
    $tmp &= $ARRAY[$i][$k]
    EndIf
    Next
    FileWriteLine($fh, $tmp)
    Next
    EndIf
    FileClose($fh)
    Return -1
    EndFunc ;==>_FileWriteFromArray2D
    ;==========================================================================================================================================
    ; Function: _FileReadToArray2D($FILEPATH, $ARRAY [, $DELIM=-1])
    ;
    ; Description: Read 1D/2D array from file, if $DELIM is given (<> -1) 2D array will created
    ;
    ; Parameter(s): $FILEPATH - path/filename of the file to read in an array
    ; $ARRAY - array variable to hold readed data
    ; optional $DELIM - delimiter for 2D-array entries, default -1 (none 2D-array)
    ;
    ; Requirement(s): None
    ;
    ; Return Value(s): On Success - Returns -1
    ; On Failure - Returns 0 and sets @error = 1 (given file are not seperated with given delimiter or count of delimiters
    ; are not equal); @error = 2 (unable to open filepath)
    ;
    ; Note: If given file is delimited to create 2D-array ALL lines need the same count of delimiters, otherwise an error occurs!
    ;
    ; Author(s): BugFix ( [email='bugfix@autoit.de'][/email] )
    ;==========================================================================================================================================
    Func _FileReadToArray2D($FILEPATH, ByRef $ARRAY, $DELIM = -1)
    Local $fh = FileOpen($FILEPATH, 0), $line, $var, $n = 1
    If $fh = -1 Then
    SetError(2)
    Return 0
    EndIf
    If $DELIM <> -1 Then
    $line = FileReadLine($fh, 1)
    $var = StringSplit($line, $DELIM)
    If IsArray($var) Then
    $Ubound2nd = $var[0]
    Local $AR[1][$Ubound2nd]
    $AR[0][0] = 0
    Else
    SetError(1)
    Return 0
    EndIf
    While 1
    $line = FileReadLine($fh, $n)
    If @error = -1 Then ExitLoop
    $var = StringSplit($line, $DELIM)
    If IsArray($var) Then
    ReDim $AR[UBound($AR) + 1][$Ubound2nd]
    For $i = 0 To $Ubound2nd - 1
    $AR[UBound($AR) - 1][$i] = $var[$i + 1]
    Next
    $AR[0][0] += 1
    Else
    SetError(1)
    Return 0
    EndIf
    $n += 1
    WEnd
    Else
    Local $AR[1]
    $AR[0] = 0
    While 1
    $line = FileReadLine($fh, $n)
    If @error = -1 Then ExitLoop
    ReDim $AR[UBound($AR) + 1]
    $AR[UBound($AR) - 1] = $line
    $AR[0] += 1
    $n += 1
    WEnd
    EndIf
    FileClose($fh)
    $ARRAY = $AR
    Return -1
    EndFunc ;==>_FileReadToArray2D

    [/autoit]
  • Passwor eingabe bei Computer start

    • AltairKD
    • 24. März 2010 um 14:23

    Autostart würde nix bringen da er erst starten kann wenn explorer.exe und sowas schon alles da ist, also sieht man vorher den bildschirm ja auch schon. (denke mal ist nicht gewünscht)

    Als Dienst ist ne gute idee da kann man ja i.wie sagen wann der Dienst starten soll.

  • Anrufliste - Liste für Anrufer

    • AltairKD
    • 24. März 2010 um 10:43
    Zitat von Pinguin94


    Das Datum kann man ja notfalls noch in der Beschreibung mit einfügen, ich hab das nur mit Uhrzeit gemacht, da ich es e nur für einen Tag speichre.


    Deswegen würde ich das mit den Datum wirklich noch einbauen, damit man es auch länger als nur ein Tag speichern kann. Habe es mir selber aber leider noch net angucken können da ich noch auf der Arbeit bin, werde es aber heute mittag mal machen und dann mal meinen Eindruck hierlassen. =)

  • Persönliches Telefonbuch

    • AltairKD
    • 23. März 2010 um 15:44

    Ja das im Spoiler ist Richtig habe es so grade auch mal getestet.

    Schon ganz nett, aber auch noch ausbaufähig an manchen stellen. Namen kann mann zb. leider nur komplett finden wenn ich also Klaus Bauer eingetragen habe aber nur nach Bauer suche findet er nix. Aber sonst schon gut.

  • Notizzettel by Faweyr

    • AltairKD
    • 23. März 2010 um 15:40

    Hi,
    schon ganz cooles teil, allerdings würde ich das mit den Minimieren und schliessen bischen was anders machen, mehr mit Buttons oder einen Context menü.

    Werde mir bei mehr zeit mal den code genauer angucken vllt. kann ich ja noch was ändern ;).

  • GDI+ drehende Dreiecke - Final

    • AltairKD
    • 23. März 2010 um 15:10

    Wäre ein anfang. Insgesamt wundert es mich das es soviel frisst, sollte ja auch bei den 512MB Vista Rechner vom Kollegen gut laufen und nicht so laam(habs Live gesehen). Trotzdem schon sehr cool.

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™