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. Cape-City

Beiträge von Cape-City

  • ISN AutoIt Studio

    • Cape-City
    • 3. April 2017 um 22:52

    Na das muss ich ja gleich mal die Tage testen! Daumen hoch!


    Gesendet von iPhone mit Tapatalk

  • AutoIt - Das Multitalent

    • Cape-City
    • 12. März 2017 um 22:08

    :thumbup:

  • AutoIt - Das Multitalent

    • Cape-City
    • 12. März 2017 um 21:17
    Zitat von autoiter

    Daumen hoch @Cape-City,
    ich finde grundsätzlich schön, dass du ein Video zu AutoIt gemacht hast. Es gefällt mir von der Aufmachung mit Intro usw. als kurzes Vorstellungsvideo von AutoIt. Aus meiner Sincht ist es eine gute Ergänzung zu den Tutorialreihen auf Youtube.

    Danke Dir, dann hoffe ich doch, das Du auch einen Dumen hoch auf Youtube gelassen hast ;)

  • AutoIt - Das Multitalent

    • Cape-City
    • 7. März 2017 um 10:18
    Zitat von alpines

    Das ist der Song und das ist kein Techno. Dubstep würde ich jetzt nicht zu 100% sagen. Das ist eher dieser neumodische EDM-Schnickschnack.

    Cool, meine Tracklist in der Videobeschreibung bringt was :D Wobei ich diesen Song aus der YouTube Audio-Bibliothek habe.

  • AutoIt - Das Multitalent

    • Cape-City
    • 7. März 2017 um 07:46
    Zitat von bazii

    Ich finde den Übergang sehr übereilt, gleich im Anschluss zu SciTE die Auswahl von ISN AutoIt Studio zu beschreiben und mit einem Jump & Run Spiel Level wertvolle Zeit zu vertrödeln.


    Automatisierung von nützlichen Abläufen und Infobeschaffung (Systeminfos usw.) im Alltag eine Systemadmins (ein paar einfache Beispiele).
    Erstellen einer einfachen GUI, für den Start von Internet Favouriten oder eigen programmierter Software.

    Danke, das sind doch schon einige Ideen für ein weiteres Video ;) Der krasse Sprung zur Mario Umsetzung war der Idee geschuldet, das man mit der Eingangs erwähnten, simplen Skriptsprache,
    dennoch hochkomplexe Anwendungen schreiben kann und was eignet sich da besser als so ein Spiel. Klar bin ich auch immer wieder begeistern vom ISN AutoIt Studio und kann das auch immer
    nicht fassen, das es selbst in AutoIt geschrieben wurde, aber das ist selbst für mich nicht so greifbar.

    Zitat von bazii

    Ich habe zumindestens bei "Edit: Bei 0:13-0:28" so einen ugaugaugaugaugabummbumm in den Ohren gehabt.

    :party: Dein UgaUgaUgaUgaBummBumm sind DubStep Elemente. :rock:

    Zitat von Candyland

    Vielleicht hättest du ein paar vergleiche mit anderen sprachen machen können, die unterschiede klar stellen & dessen eventuelle vorteile.

    Danke, das ist doch auch eine nette Idee für ein weiteres Video, welches allerdings noch tiefere Recherche verlangt, zu mal ich mich mit den anderen Programmiersprachen
    so gar nicht auskenne, aber da sollte man ja schon irgendwo Hilfe bekommen :D

  • AutoIt - Das Multitalent

    • Cape-City
    • 6. März 2017 um 19:47
    Zitat von alpines

    Musst jetzt nicht alles perfekt und genau richtig haben. Ich wollte es nur gesagt haben da normalerweise von Calltips geredet wird und ich Lookahead so gut wie nie lese.

    Das ist sehr schön gesagt! Wenn man aber keine Kritik annimmt, wie soll man sich denn dann verbessern? Ich konnte es leider nur in den deutschen Untertiteln hinzufügen, da die Anmerkungen unter Youtube nicht funktionieren, wenn man bereits einen Abspann einblenden lässt...wie doof ist das denn?

  • AutoIt - Das Multitalent

    • Cape-City
    • 6. März 2017 um 18:58

    Danke :)

    Naja, es ist gar nicht so einfach, so etwas einzusprechen, ohne sich selber dabei doof vorzukommen, aber auch hier kann ich mich nur weiter entwickeln :D

    Was die Calltips angeht, kenne ich sie halt in anderen Zusammenhängen als LookAhead Funktion. Mal schauen ob man nachträglich noch einen Text einblenden kann.

  • AutoIt - Das Multitalent

    • Cape-City
    • 6. März 2017 um 15:48

    Hi,

    das war ganz sicher nicht meine Intention Scriptkiddies in dieses Forum zu "locken", sondern ich wollte hervorheben, für wieviel mehr AutoIt in der Lage ist und halt nicht nur
    für Bot-Krams und Co. Davon findet man leider extrem viel auf YouTube und das tut AutoIt einfach unrecht und das Problem mit den AV Produkten, ist nunmal ja auch nicht von
    der Hand zu weisen.

    Ich fasse es trotzdem als Lob mit Kritik auf - Luft nach oben, um Dinge besser zu machen muss ja da sein!

  • AutoIt - Das Multitalent

    • Cape-City
    • 6. März 2017 um 15:30

    Hi @all,

    ich habe meine Begeisterung über AutoIt in einem kleinen YouTube Video zum Ausdruck gebracht.

    https://www.youtube.com/watch?v=nJW-cash1hQ

    Ich hoffe das ich dem Potential, welches in dieser Software und der Community drum rum steck, ansatzweise gerecht werde.

    Vorschläge für weitere Episoden, Vorstellungen von anderen, in AutoIt geschriebenen, Programmen nehme ich gerne entgegen
    und wenn genug Material vorhanden ist, kann ich gerne ein weiteres Video machen.

  • Grafik/Sound Demo (InfoBox)

    • Cape-City
    • 3. Februar 2017 um 11:40

    Hi @all,

    ich habe eine ganze Weile weiter gewerkelt, Bugs entfernt, Dinge verbessert, neue Ideen umgesetzt. Hier mal wieder ein Zwischenstand.
    Neue Version online (Thread 1 wurde aktualisiert).

  • Kopieren großer Dateien mit Fortschrittsanzeige

    • Cape-City
    • 29. Dezember 2016 um 10:28
    Zitat von alpines

    @Cape-City kennst du ternäre Operatoren? Die lassen sich in deinem Beispiel hervorragend anwenden und man spart dadurch 4 Zeilen.
    Statt zwei If-Zweige hinzuschreiben kann man das ganze auch so hinschreiben (verfügbar ab 3.3.10.2 glaube ich):

    AutoIt
    Return _IsPressed("1B") ? $PROGRESS_CANCEL : $PROGRESS_CONTINUE

    Werde ich mir mal anschauen, ich denke das ich das auch in einigen meiner Scripte unterbringen kann :)

  • Kopieren großer Dateien mit Fortschrittsanzeige

    • Cape-City
    • 28. Dezember 2016 um 14:29

    Hi,

    die hast ja folgenden Part weggelassen:

    AutoIt
    If _IsPressed('1B') Then
            Return $PROGRESS_CANCEL
        Else
            Return $PROGRESS_CONTINUE
        EndIf

    Welcher vor dem EndFunc in der _ProgressProc Funktion stand (laut Hilfe). Deine Funktion wird einmal aufgerufen, es wird aber kein Wert zurück gegeben, in diesem Fall wenn '1B' = ESC nicht
    gedrückt wurde immer noch der Wert $PROGRESS_CONTINUE.

    Wobei es dann selbst dann mit dem Beispiel funktioniert....also auch Dein Beispiel funktioniert bei mir. Ich habe eine 3GB grosse Datei kopiert, alles super.

    Welche AutoIt Version setzt Du ein?

  • Wie kommt ihr auf euren Nicknamen?

    • Cape-City
    • 28. Dezember 2016 um 09:01

    Gesucht, gefunden und mal wieder neu belebt. Ich finde es auch immer wieder interessant, wie man zu seinem Nickname kommt.

    Ich habe meinen schon seit Ewigkeiten, damit in Berührung gekommen bin ich 1985, wo ich das erste mal mit Computern (8086er) zu tun hatte,
    im Zuge einer Computer AG in der 5. Klasse. Allerdings war es da noch nicht meiner, sondern von einem älteren Mitschüler, welcher sich damit
    brüstete, den coolsten Nicknamen überhaupt zu haben und auch voll die große Nummer im Computerbereich wär. Ich meine im privaten auf
    meinem Commodore C16 habe ich ihn danach bereits verwendet, aber nur für mich. Ich müsste mal die alten Unterlagen sichten *NOSTALGIE*

    Als ich dann Jahre später mit einem Kumpel in der C64 HomeComputer Ära aktiv war, ich bis dato aber nichts weiter von dem "sagenumwobenen" Cape-City
    gehört hatte, habe ich mich seiner komplett angenommen. Ich denke das erste mal habe ich ihn 1987/88 benutzt, als wir "ganz kurz" auf die dunkle Seite der
    C64 Computer Szene gewechselt hatten :D

    Während der 9/10 Klasse 89/90 wiederrum in einer weiteren Computer AG (80286er), gab es dann die ersten Sachen auf der hellen Seite mit diesem Nick.
    Ich war es auch, der diesen Nick ins Internet gebracht hat, das ist zwischen 93-97 während meiner Ausbildung gewesen. Da hatte sich der Nick aber schon komplett
    manifestiert und jedes Programm hatte dieses Stempel drauf.

    Mittlerweile ist er zu einer 2. Identität geworden, mit eigener Mailadresse und allem. Wenn ich irgendwo mal wirklich anonym sein will, dann
    nutze ich ihn sogar gar nicht, sondern habe eine Reihe anderer Pseudo Nicks, aber dieser hier bin ICH und werde immer ICH bleiben :party:
    Abgewandelte Formen, ab und zu ist er tatsächlich bereits vergeben *FRECHHEIT* X( , sind:

    LeCapeCity
    CapeCity
    Cape_City
    CaPe-CiTy (<- da hatte das Forum tatsächlich Groß- und Kleinschreibung unterschieden)

  • Funktion in der While Schleife nur alle x mal Starten

    • Cape-City
    • 28. Dezember 2016 um 07:38
    Zitat von SCCSSF

    Hallo,

    @chip @alpines

    Natürlich ginge Aufgabenplanung. Aber ich möchte ebbend nicht mehr dran denken, wenn ich was ändern sollte auch dort was zu Überprüfen.

    Ich habe meine ersten Sachen 2008 in Autoit geschrieben und dann läuft es Jahre und dann soll ich mal ebbend was ändern.

    So finde ich es gleich wieder.

    Ich habe mal den Ansatz von @autoiter angenommen.

    Die Global Sachen stehen natürlich Außerhalb.
    Klar könnte ich es noch in eine Funktion auslagern.
    So läuft die Aufräum Aktion 1 x am Tag.

    Ich kann bei meinen Variablen die Start-Stunde festlegen.

    Wie gefällt Euch dies ?


    AutoIt
    Global $iAUFRAEUMEN_STUNDE = 19
    Global $iWHILE = 1
    While Sleep(3 * 1000)
    	_Datenbekommen()
    	_Verschieben()
    	_Umbennen()
    	Local $iZEIT_START = @HOUR
    	Local $iZEIT_STOP = $iAUFRAEUMEN_STUNDE - 1
    	If $iZEIT_STOP = $iZEIT_START Then
    		$iAUFRAEUMEN_STUNDE += 1
    	EndIf
    	If $iZEIT_START = $iAUFRAEUMEN_STUNDE Then
    		_aelter_loeschen()
    		_verschieben_aelter()
    		$iAUFRAEUMEN_STUNDE -= 1
    	EndIf
    	If Mod($iWHILE, 100) = 0 Then
            $iWHILE = 1
    		_PDFMerge()
    	EndIf
    	$iWHILE += 1
    WEnd
    Alles anzeigen
    Alles anzeigen

    Hi,

    zum einen werden die beiden Local innerhalb der While-Schleife beim 2. Durchlauf meckern, da sie bereits definiert wurden (die Schleife wird ja nicht verlassen) und zum anderen ich finde ich das Script sehr verwirrend, wann es wirklich was macht. Es gibt die $iAUFRAEUMEN_STUNDE, welche mit dem Wert 19 startet. Immer mal wieder ein runtergezählt wird, dann wieder eins hoch. Alles sehr verwirrend und selbst wenn Du jetzt genau weisst das da passiert, weisst Du es bestimmt in einem halben Jahr nicht mehr und brauchst ewig den Sinn wieder zu verstehen. Ich versuche meine Programme nach dem Prinzip KISS zu schreiben: Keep It Smart & Simple oder wie Oma früher schon immer gesagt hat: Weniger ist oft mehr :D

  • Stundenplaner

    • Cape-City
    • 24. Dezember 2016 um 00:43

    Ich habe die Code-Tags verwendet, auch mal gelöscht und neu angelegt. Will einfach nicht mehr in dem Post....
    Quelltext ist auch auf dem neusten Stand, schon krass das ich immer wieder kleinere Bugs finde :D

  • Funktion in der While Schleife nur alle x mal Starten

    • Cape-City
    • 24. Dezember 2016 um 00:25
    Zitat von BadBunny

    Hey :)
    Deine Idee sollte eigentlich fast funktionieren, ein Problem könnte aber auf jeden Fall sein, dass du im ElseIf die Bedingung < 10 genommen hast, in der If Bedingung aber > 10. Das würde bedeuten, dass du bis 10 hochaddierst, danach aber weder auf 0 resettest noch auf 11 kommst um die If Bedingung > 10 aus zu lösen. Versuche es einfach mal mit = 10 in deiner ersten If Bedingung.

    Frohes Fest :)

    Ich denke damit kam er nie in den If-Bereich, denn sein Script hat nur bis 10 gezählt, das war aber noch zu klein für die If-Abfrag und schon zu groß für die ElseIf :D

  • Funktion in der While Schleife nur alle x mal Starten

    • Cape-City
    • 24. Dezember 2016 um 00:19

    Hi,

    ist doch ein gangbarer Weg, allerdings hast Du Syntaxfehler in Deinem Script:

    AutoIt
    Global $i = 0
    While Sleep(1000)
    	If $i = 10 Then
    		_aelter_loeschen()
    		_verschieben_aelter()
    		$i = 0
    	ElseIf $i < 10 Then
    ;~	Else		
    		_Datenbekommen()
    		_Verschieben()
    		_Umbennen()
    		_PDFMerge()
    		$i += 1
    	EndIf
    
    
    WEnd
    Alles anzeigen


    Allerdings wird der untere Teil dann nach 10 Durchläufen auch 1 mal nicht ausgeführt. Stattdessen nur der obere Teil. War das denn so geplant?
    Ansonsten könnte man es auch so umstricken:

    AutoIt
    Global $i = 0
    While Sleep(1000)
    	If $i = 10 Then
    		_aelter_loeschen()
    		_verschieben_aelter()
    		$i = 0
    	EndIf		
    	_Datenbekommen()
    	_Verschieben()
    	_Umbennen()
    	_PDFMerge()
    	$i += 1
    WEnd
    Alles anzeigen
  • Stundenplaner

    • Cape-City
    • 21. Dezember 2016 um 20:33

    @alpines

    Uuumpffff :D

    Ja, das Script bedarf noch etlicher Aufräumarbeit, aber da ich mittlerweile soviel geändert hatte, wollte ich den Charme des
    Originals noch etwas durchblicken lassen :ironie:

    Im ersten Schritt wollte ich eigentlich das Script nur in eine logische Reihenfolge bringen und einige Variablen sinnvoller umbenennen.
    Der Versuche mit MenuItem10/11/12/.../20/21... war eine logische Zusammenfassung, des Hauptmenüpunktes und der darunter liegenden
    Unterpunkte. Auch der Start mit der direkten Abfrage was man machen möchte gefällt mir noch nicht, aber vorher ging das Programm auf
    und man musste dann erst abspeichern um etwas Dauerhaftes zu haben.

    Es steckt noch viel Potential darin, selbst in so einem banalen Programm. Stolz bin ich aber auf die Verschachtelungen mit den ForNext
    Schleifen, welche zum einen die GUI dynamisch aufbauen/füllen und zum Anderen auch die OnEvents setzen. Vorher war es ja mehr oder
    weniger eine Batch-Datei.

    Allerdings hat mir das System gezeigt, das es nicht überall gleich reagiert. So habe ich ja beim GUI Aufbau, den $Tag[0] bzw. $Stunde[0] als
    Zähler für meine ForNext-Schleife verwendet. Sieht im Nachhinnein zwar blöd aus $Tag[$Tag[0]], aber das Arrayfeld war eh da und ich wollte
    mit 1-5 bzw. 1-8 arbeiten um einen besseren Bezug zu Mo-Fr und 1h-8h zu bekommen. Ich werde das aber auch noch umbauen.

    Das mit den Variablennamen $aTag oder $iDay habe ich allerdings noch nicht zu ganz verstanden, warum man das macht, bzw. was es einem
    damit erleichtert.

    So...ich werde dann nochmal ein wenig strippen und strecken :)

    Nachtrag 22.12.16:

    Vorherigen Thread den Code aktualisiert.

  • Computer-Info

    • Cape-City
    • 21. Dezember 2016 um 20:19

    @Oscar

    Berufsbedingt habe ich etliche Rechner unterschiedlichster Couleur unter mir, wo ich gerne Testscripte laufen lassen kann.

  • Stundenplaner

    • Cape-City
    • 21. Dezember 2016 um 17:32

    Nettes Programm, sicherlich sehr hilfreich wenn meine Jungs in die Schule kommen.

    Ich habe es mal etwas umgestrickt, verschlankt, verbessert, verändert... :party:


    AutoIt
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=Stundenplaner.ico
    #AutoIt3Wrapper_Compression=4
    #AutoIt3Wrapper_UseUpx=y
    #AutoIt3Wrapper_Res_Comment=Stundenplaner
    #AutoIt3Wrapper_Res_Description=Stundenplaner
    #AutoIt3Wrapper_Res_Fileversion=1.2.6.0
    #AutoIt3Wrapper_Res_LegalCopyright=© 2016 by bingbongman
    #AutoIt3Wrapper_Res_Language=1031
    #AutoIt3Wrapper_Run_Au3Stripper=y
    #Au3Stripper_Parameters=/so
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    
    
    #cs ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    
     AutoIt Version:	3.3.14.2
     Author:			bingbongman (Brandt, Tobias)
     Modified:			Cape-City
    
    
     Script Name:		Stundenplaner.au3 - Copyright 2016
    
    
     Script Function:	Stundenplaner
    
    
     Created with ISN AutoIt Studio v. 1.03
    
    
    #ce ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    
    ;
    ; Ungarische Notation (weitestgehend): $aX = Array, $cX = Counter, $hX = Handle, $iX = Integer, $pX = Pointer, $sX = String, ..., $ah_X = Array/Handle
    ;
    
    
    #include <GUIConstants.au3>
    #include <GuiStatusBar.au3>
    #include <MsgBoxConstants.au3>
    
    
    Opt("GUIOnEventMode", 1)
    
    
    Global $iAnswer, $iDay, $iHour, $sINIFile, $sConfigFile = @ScriptDir & "\Config.ini", $sSaveFileName, $sHeaderText
    Global $sVersion = "V1.2.6.0", $sLastEdit = "22.12.2016"
    Global $sCreated = "Tobias Brandt", $sModified = "Cape-City", $sMailTo = "tobi.brandt@gmx.net", $sForumURL = "https://autoit.de/index.php/Thread/11622-Stundenplaner/?pageNo=1"
    
    
    Global $aWochentag[6] = ["", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag"]
    Global $aWochentagXPos[3] = ["54", "145", ""] ;==> [0]StartXPos, [1]X-Abstand, [2]Addierer
    Global $aStunde[9] = ["", "Erste", "Zweite", "Dritte", "Vierte", "Fuenfte", "Sechste", "Siebte", "Achte"]
    Global $aStundeYPos[3] = ["115", "38", ""] ;==> [0]StartXPos, [1]Y-Abstand, [2]Addierer
    Global $iGUI_Width = 780, $iGUI_Height = 475
    
    
    ; Stundenplan GUI ######################################################################################################
    Local $hStundenplaner = GUICreate ("Stundenplaner " & $sVersion & " - created by " & $sCreated & ", modified by " & _
    								  $sModified, $iGUI_Width, $iGUI_Height, -1, -1)
    GuiSetonEvent ($GUI_EVENT_CLOSE, "_GUI_GetMsg")
    GUISetBkColor(0xBFCDDB)
    ; ######################################################################################################################
    
    
    ; Header Create Label und SetOnEvent ###################################################################################
    Global $hHeader = GUICtrlCreateLabel ("", 0, 15, $iGUI_Width, 37, $SS_CENTER)
    GUICtrlSetFont (-1, 18, 800, 0, "Arial Black")
    GUICtrlSetBkColor(-1, 0xAACDAB)
    GuiCtrlSetonEvent (-1, "_GUI_GetMsg")
    ; ######################################################################################################################
    
    
    ; Stunden Zeilen / Wochentage Spalten / INI Read und SetOnEvent ########################################################
    Global $ah_TagStunde[9][9]
    
    
    $aWochentagXPos[2] = $aWochentagXPos[0]
    
    
    For $iDay = 0 To 5
    
    	$aStundeYPos[2] = $aStundeYPos[0]
    
    	For $iHour = 1 To 8
    
    		If $iDay = 0 Then 
    
    			; Stunden Zeilen ###########################################################################################
    			GUICtrlCreateLabel ($iHour & ".", 7, $aStundeYPos[2], 30, 30, BitOR ($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_DLGMODALFRAME)
    			GUICtrlSetFont (-1, 12, 800, 0, "Arial Black")
    			GUICtrlSetBkColor(-1, 0xE3E3E3)
    			; ##########################################################################################################
    
    		Else
    
    			; Wochentage Spalten #######################################################################################
    			GUICtrlCreateLabel ($aWochentag[$iDay], $aWochentagXPos[2], 75, 120, 30, BitOR ($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_DLGMODALFRAME)
    			GUICtrlSetFont (-1, 12, 800, 0, "Arial Black")
    			GUICtrlSetBkColor (-1, 0xE3E3E3)
    			; ##########################################################################################################
    
    			; Unterrichtsfächer ########################################################################################
    			$ah_TagStunde[$iDay][$iHour] = GUICtrlCreateLabel ("", $aWochentagXPos[2], $aStundeYPos[2], 120, 30, BitOR ($SS_CENTER, $SS_CENTERIMAGE), $WS_EX_DLGMODALFRAME)
    			GUICtrlSetFont (-1, 9, 800, 0, "Arial")
    			GUICtrlSetBkColor(-1, 0xE3E3E3)
    			GuiCtrlSetonEvent (-1, "_GUI_GetMsg")
    			; ##########################################################################################################
    
    		EndIf
    
    		$aStundeYPos[2] += $aStundeYPos[1]
    
    	Next
    
    	If $iDay > 0 Then $aWochentagXPos[2] += $aWochentagXPos[1]
    
    
    Next
    ; ######################################################################################################################
    
    
    ; GUI Create MenuItem und SetOnEvent ###################################################################################
    Global $aMenuItem_File = GUICtrlCreateMenu ("&Datei")
    
    
    Global $aMenuItem_File_New = GUICtrlCreateMenuItem ("Neu", $aMenuItem_File)
    GuiCtrlSetonEvent (-1, "FileChangedDialog")
    
    
    Global $aMenuItem_File_Open = GUICtrlCreateMenuItem ("Öffnen", $aMenuItem_File)
    GuiCtrlSetonEvent (-1, "FileChangedDialog")
    
    
    Global $aMenuItem_File_SaveAs = GUICtrlCreateMenuItem ("Speichern unter...", $aMenuItem_File)
    GuiCtrlSetonEvent (-1, "SaveAs")
    
    
    Global $aMenuItem_File_Exit = GUICtrlCreateMenuItem ("Beenden", $aMenuItem_File)
    GuiCtrlSetonEvent (-1, "Cancel")
    
    
    Global $aMenuItem_Questionmark = GUICtrlCreateMenu ("&?")
    
    
    Global $aMenuItem_Questionmark_About = GUICtrlCreateMenuItem ("Über", $aMenuItem_Questionmark)
    GuiCtrlSetonEvent (-1, "About")
    
    
    Global $aMenuItem_Questionmark_Help = GUICtrlCreateMenuItem ("Hilfe", $aMenuItem_Questionmark)
    GuiCtrlSetonEvent (-1, "Help")
    ; ######################################################################################################################
    
    
    ; Footer Create Label ##################################################################################################
    Global $hFooter = GUICtrlCreateLabel ($sINIFile, 6, $iGUI_Height - 45, $iGUI_Width, 37)
    GUICtrlSetFont (-1, 10, 800, 0, "Arial")
    ; ######################################################################################################################
    
    
    ; Letzten offenen Stundenplan öffnen oder neuen Temporären erstellen ###################################################
    Global $sTempFile = @ScriptDir & "\~stdplnr0.tmp"
    LastOpened()
    ; ######################################################################################################################
    
    
    GUISetState (@SW_SHOW)
    
    
    While 1
    	Sleep(500)
    WEnd
    
    
    ; ######################################################################################################################
    ; Funktionen ###########################################################################################################
    ; ######################################################################################################################
    
    
    ; Cancel ###############################################################################################################
    Func Cancel()
    
    	If Not FileExists ($sConfigFile) Then
    
    		$sSaveFileName = FileOpen ($sConfigFile, BitOR ($FO_OVERWRITE, $FO_CREATEPATH))
    ;~ 		If $sSaveFileName = -1 Then CreateConfigError()
    		FileWrite ($sSaveFileName, "[Config]" & @CRLF & "LastOpened =")
    		FileClose ($sSaveFileName)
    
    	EndIf
    
    	IniWrite ($sConfigFile, "Config", "LastOpened", " '" & $sINIFile & "'")
    	If $sINIFile <> $sTempFile Then FileDelete ($sTempFile)
    
    
    	$iAnswer = MsgBox (262208, "Stundenplaner", "Auf Wiedersehen!", 3)
    
    
    	Exit
    
    
    EndFunc
    ; ######################################################################################################################
    
    
    ; LastOpened ###########################################################################################################
    Func LastOpened()
    
    
    	$sINIFile = IniRead ($sConfigFile, "Config", "LastOpened", "Error")
    	If $sINIFile = "Error" Or Not FileExists ($sINIFile) Then CreateNew()
    	If $sINIFile <> $sTempFile Then FileDelete ($sTempFile)
    	GUIPush()
    
    EndFunc
    ; ######################################################################################################################
    
    
    ; FileChangedDialog ####################################################################################################
    Func FileChangedDialog()
    
    
    	If $sINIFile = $sTempFile Then
    
    		$iAnswer = MsgBox (262179, "Stundenplaner", "Möchten Sie die Änderungen an " & $sHeaderText & @CRLF & "speichern?", 0)
    
    		Switch $iAnswer
    
    
    			Case $IDYES, $IDNO
    
    
    				If $iAnswer = $IDYES Then SaveAs()
    				If @GUI_CtrlId = $aMenuItem_File_New Then CreateNew(True)
    				If @GUI_CtrlId = $aMenuItem_File_Open Then OpenFile()
    
    
    			Case $IDCANCEL, $IDTIMEOUT
    
    
    		EndSwitch
    
    
    	Else
    
    
    		If @GUI_CtrlId = $aMenuItem_File_New Then CreateNew(True)
    		If @GUI_CtrlId = $aMenuItem_File_Open Then OpenFile()
    
    	EndIf
    
    
    	If $sINIFile <> $sTempFile Then FileDelete ($sTempFile)
    
    
    EndFunc
    ; ######################################################################################################################
    
    
    ; OpenFile and Error ###################################################################################################
    Func OpenFile()
    
    
    	$sINILoadFile = FileOpenDialog ("Öffnen", "Stundenplaner", "Ini Dateien (*ini)", 1 + 2)
    	If @error And $sINIFile = "" Then OpenError()
    	If Not @error Then $sINIFile = $sINILoadFile
    	GUIPush()
    
    
    EndFunc
    
    
    Func OpenFileError()
    
    	$iAnswer = MsgBox (262192, "Stundenplaner", "Der Stundenplan konnte nicht geladen werden!" & @CRLF & _
    												"Programm wird jetzt beendet!", 5)
    	Exit
    
    
    EndFunc
    ; ######################################################################################################################
    
    
    ; SaveAs and Error #####################################################################################################
    Func SaveAs()
    
    
    	Local $sSelectFileName = FileSaveDialog ("Speichern unter...", @ScriptDir, "INI Dateien (*.ini)", BitOR ($FD_PATHMUSTEXIST, $FD_PROMPTOVERWRITE))
    	If StringRight ($sSelectFileName, 4) <> ".ini" Then $sSelectFileName &= ".ini"
    	If $sSelectFileName = ".ini" Then Return
    
    	If $sINIFile = $sTempFile Then $iAnswer = FileMove ($sINIFile, $sSelectFileName, BitOR ($FC_OVERWRITE, $FC_CREATEPATH))
    	If $sINIFile <> $sTempFile Then $iAnswer = FileCopy ($sINIFile, $sSelectFileName, BitOR ($FC_OVERWRITE, $FC_CREATEPATH))
    
    
    	If Not $iAnswer Then
    
    
    		SaveAsError()
    		Return
    
    
    		EndIf
    
    
    	$sHeaderText = StringTrimRight (StringTrimLeft ($sSelectFileName, StringInStr ($sSelectFileName, "\", 0, -1)), 4)
    	$sINIFile = $sSelectFileName
    	GUIPush()
    
    
    EndFunc
    
    
    Func SaveAsError()
    
    	$iAnswer = MsgBox (262192, "Stundenplaner", "Der Stundenplan konnte nicht gespeichert werden!", 5)
    
    
    EndFunc
    ; ######################################################################################################################
    
    ; CreateNew and Error ##################################################################################################
    Func CreateNew($iOverwrite = False)
    
    
    	If $iOverwrite Or Not FileExists ($sTempFile) Then
    
    		$sHeaderText = "Neuer Stundenplan"
    		$sSaveFileName = FileOpen ($sTempFile, BitOR ($FO_OVERWRITE, $FO_CREATEPATH))
    
    
    		If $sSaveFileName = -1 Then CreateNewError()
    
    		FileWrite ($sSaveFileName, "[Header]" & @CRLF & "Header = '" & $sHeaderText & "'" & @CRLF & @CRLF)
    
    		For $iDay = 1 To 5
    
    
    			FileWrite ($sSaveFileName, "[" & $aWochentag[$iDay] & "]" & @CRLF)
    
    			For $iHour = 1 To 8
    
    
    				FileWrite ($sSaveFileName, $aStunde[$iHour] & " = " & @CRLF)
    
    
    			Next
    
    
    		Next
    
    
    		FileClose ($sSaveFileName)
    
    
    	EndIf
    
    	$sINIFile = $sTempFile
    
    	GUIPush()
    
    EndFunc
    
    
    Func CreateNewError()
    
    	$iAnswer = MsgBox (262192, "Stundenplaner", "Der Stundenplan konnte nicht erstellt werden!" & @CRLF & _
    												"Programm wird jetzt beendet!", 10)
    	Exit
    
    
    EndFunc
    ; ######################################################################################################################
    
    
    ; _GUI_GetMsg ##########################################################################################################
    Func _GUI_GetMsg()
    
    	Local $sInput, $sDefault
    
    	; Main Events ######################################################################################################
    	Switch @GUI_CtrlId
    
    		Case $GUI_EVENT_CLOSE
    			Cancel()
    		; ##############################################################################################################
    
    		Case $GUI_EVENT_MINIMIZE
    
    
    		; ##############################################################################################################
    
    		Case $GUI_EVENT_RESTORE
    
    
    		; ##############################################################################################################
    
    		Case $hHeader
    
    			$sDefault = IniRead ($sINIFile, "Header", "Header", "Error")
    			$sInput = InputBox ("Titel", "Wie lautet der Name für diesen Stundenplan?", $sDefault)
    			If Not @error Then IniWrite ($sINIFile, "Header", "Header", " '" & $sInput & "'")
    
    
    		; ##############################################################################################################
    
    	EndSwitch
    	; ##################################################################################################################
    
    
    	; Label Events #####################################################################################################
    	For $iDay = 1 To 5
    
    		For $iHour = 1 To 8
    
    			If @GUI_CtrlId = $ah_TagStunde[$iDay][$iHour] Then
    
    
    				$sDefault = IniRead ($sINIFile, $aWochentag[$iDay], $aStunde[$iHour], "Error")
    				If $sDefault = "" Then $sDefault = "- Frei -"
    				$sInput = InputBox ($aStunde[$iHour] & " Stunde", "Was haben Sie " & $aWochentag[$iDay] & " in der " & $iHour & ". Stunde?", $sDefault)
    				If Not @error Then IniWrite ($sINIFile, $aWochentag[$iDay], $aStunde[$iHour], " '" &  $sInput & "'")
    
    			EndIf
    
    		Next
    
    	Next
    	; ##################################################################################################################
    
    	GUIPush()
    
    
    EndFunc
    ; ######################################################################################################################
    
    
    ; GUIPush ##############################################################################################################
    Func GUIPush()
    
    	; Header INI Read ##################################################################################################
    	$sHeaderText = IniRead ($sINIFile, "Header", "Header", "Error")
    	GuiCtrlSetData ($hHeader, $sHeaderText)
    	; ##################################################################################################################
    
    
    	; Label INI Read ###################################################################################################
    	For $iDay = 1 To 5
    
    		For $iHour = 1 To 8
    
    			GUICtrlSetData ($ah_TagStunde[$iDay][$iHour], IniRead ($sINIFile, $aWochentag[$iDay], $aStunde[$iHour], "Error"))
    
    		Next
    
    	Next
    	; ##################################################################################################################
    
    
    	; Footer INI Read ##################################################################################################
    	GuiCtrlSetData ($hFooter, $sINIFile)
    	; ##################################################################################################################
    
    
    EndFunc
    ; ######################################################################################################################
    
    
    ; About ################################################################################################################
    Func About()
    
    	MsgBox (0 + 64, "Über", "Stundenplaner " & $sVersion & @CRLF & _
    							"Geschrieben von " & $sCreated & @CRLF & _
    							"Modifiziert von " & $sModified & @CRLF & _
    							"Letze Veränderung am " & $sLastEdit)
    
    
    EndFunc
    ; ######################################################################################################################
    
    
    ; Help #################################################################################################################
    Func Help()
    
    	MsgBox (0 + 32, "Hilfe", "Wer Fragen oder Kritik hat, schickt bitte eine Email an:" & @CRLF & _ 
    							 $sMailTo & ", oder besucht das AutoIt.de Forum unter" & @CRLF & $sForumURL)
    
    
    EndFunc
    ; ######################################################################################################################
    Alles anzeigen


    Hauptänderungen (und sicherlich nicht die Letzte :Face: ) :

    - Abfrage beim Start ob eine INI geöffnet werden soll oder man neu beginnen möchte

    - 1D und 2D Arrays für den GUI Aufbau, die OnEvent Aktionen und das wieder in die INI schreiben
    - GUI wird nicht ständig neugeladen, sondern nur nach einem Event
    - die Haupt-Schleife besteht nur noch aus einem Sleep (500) :)
    - Diverse Optische Veränderungen (z.B. werden die Texte jetzt X/Y Centered im Label angezeigt)
    - Default Werte auf den OnEvent Flächen
    - Stundenplanname wird per Default aus dem Dateinamen extrahiert (kann aber immer noch nachträglich verändert werden)
    - Werte verschwinden nicht, wenn man die Abfragebox abbricht
    - geöffnete INI Datei wird unten in der GUI angezeigt

    Nachtrag 22.12.16:

    - Programm öffnet die letzte Datei, keine Abfrage mehr beim Starten
    - Wenn die Datei noch nicht gespeichert wurde und man eine andere öffnen oder eine neue erstellen, kommt eine Nachfrage
    - Code weiter aufgeräumt und versucht die Variablen sinnvoll zu benennen

    Hhhmmm...er mag meinen Code nicht mehr, eigentlich sollte er ihn für AutoIt formatieren...sorry!

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™