Beiträge von elysium

    Ja, vielen Dank dafür! Hab erst vor paar Tagen nach einem Update gesucht und mir schon Sorgen gemacht, ob Du eventuell keine Zeit mehr für das Projekt hast.

    Auf jeden Fall ein unglaublich tolles Programm :thumbup:


    So, jetzt gleich mal updaten gehen :party:

    Hallo,


    Ja, das weiß ich, habe es auch schon mit einem Pfad zu einem Ordner gemacht.

    Er speichert dann die leere Datei in den Ordner aber das Problem mit dem Programmabsturz bleibt bestehen.


    Ich verbinde mich später mit einem FTP-User der direkt nur zu einem bestimmten Ordner kommt, daher keine Pfadangabe an dieser Stelle.


    Gruß,


    ely

    Hallo zusammen,


    ich habe vor einiger Zeit, mit eurer Hilfe, ein kleines Programm gebastelt, welches mir in einer Endlosschleife, alle paar Minuten, einen Screenshot erstellt und den alten überschreibt.

    Mit einem Freeware-Programm schnappe ich mir dann den Screenshot und lade ihn auf einen FTP-Server hoch.


    Nun möchte ich das gerne alles in einem Programm umsetzten.


    Man soll seine FTP-Zugangsdaten per Textfeld eingeben können, den Zeitintervall auswählen und anschließend das Programm starten.

    Sobald das Programm gestartet wurde, wird der erste Screenshot erstellt und lokal gespeichert.

    Anschließend, soll das Programm den Screenshot nehmen und ihn auf den FTP-Server schieben.


    Nach Ablauf des Zeitintervalls, beginnt alles von vorne.


    Nun schreibe ich da schon ein paar Tage dran rum und es ist alles noch eine große Baustelle, daher schon einmal Sorry für den Chaos-Code :S


    Wenn ich das Programm starte, speichert er schonmal den Screenshot und auf dem FTP-Server erscheint auch eine Datei namens screenshot.jpg.


    Nun habe ich aber 2 sehr große Probleme:


    1. Die screenshot.jpg auf dem Server ist 0kb groß und wenn ich sie aufrufe, ist da einfach nur alles weiß.

    Also kein Screenshot sondern irgendwie wie eine leere Datei die einfach nur screenshot.jpg heißt.


    2. Ich habe irgendein Problem mit der Funktion FtpVerbindung() , sobald ich diese aufrufe (das tue ich in der Funktion HuntingStart(), nachdem der Button "Programm starten" gedrückt wurde), erscheint zwar diese merkwürdige leere Datei auf dem Server aber das Programm hängt sich auf.

    Man kann das GUI nicht mehr bewegen und es dauert einige Sekunden, bis ich das Fenster schließen kann.


    Für meine Verhältnisse, ist das jetzt schon ein recht umfangreiches Programm, weshalb ich gerade stark auf dem Schlauch stehe.

    Könnt ihr mir eventuell einen Hinweis geben, wo mein Fehler liegt?


    Danke und Gruß,


    ely



    Vielen Dank für die Denkanstöße, dann werde ich danach mal in der Hilfe suchen und das durchlesen.

    Das mit der editierbaren .ini finde ich schon sehr toll und werde das auf jeden Fall dann so versuchen zu lösen, Danke dafür!


    Mit der ListView bin ich gestern überhaupt nicht warm geworden, weshalb ich mich dann auch für die Table UDF entschieden habe.

    Das schiebe ich aber mal auf mein fehlendes Wissen bezüglich der Handhabung.

    Wenn ihr das alle empfehlt, sollte ich es mir wohl nochmal genauer ansehen.

    Hallo zusammen,


    ich habe vor einiger Zeit ein Portal für unsere Firma geschrieben, in welchem jede unserer Maschinen aufgelistet sind, mit einer Tabelle der Maschinendaten und pro Maschine zwischen 5-20 Buttons, welche jeweils mit einer PDF verknüpft ist, z.B. Betriebsanleitung, Ersatzteileliste etc..


    Dieses Portal wurde mit HTML / CSS und ein klein wenig JavaScript umgesetzt und ist komplett statisch.


    Mir fehlt hier auch die Möglichkeit an Funktionalität, da ich z.B. keinen PHP Interpreter installieren darf, weshalb ich gerne beginnen möchte das ganze mit AutoIt zu realisieren.

    Auch weil ich ein Projekt brauche, das mit der Zeit wächst und ich dadurch eventuell AutoIt lernen kann.


    Nun habe ich ein GUI gebaut, welches wie eine Website aufgebaut ist.

    Ich habe links eine Navigation mit 40 Buttons, je 1 Button für eine Maschine und habe dann rechts einen Inhaltsbereich in Form einer GroupBox.


    Für jede Maschine, möchte ich nun eine eigene .au3 Datei haben, welche beim klicken des jeweiligen Maschinenbuttons in den Inhaltsbereich geladen wird.


    Aktuell habe ich das auch schon mit 2 Buttons und 2 Tabellen umgesetzt.

    Wenn ich Button 1 klicke, lädt es die Tabelle, die Freude war groß, wenn ich dann Button 2 klicke, legt es die 2. Tabelle über die erste. :(


    Daher habe ich jetzt mal gestoppt, wenn ich so weiter mache, würden sich später alle Dateien übereinander legen.

    Ich möchte gerne, dass die alte Datei mit der neuen ersetzt wird, bzw. ich muss den Inhaltsbereich irgendwie wieder leeren, bevor ich eine neue Datei hinein lade.


    Könntet ihr mir eventuell sagen, wie ihr sowas generell angehen würdet?

    Mache mir bisschen Sorgen, das ich mich sonst total verbaue, weil man das so gar nicht tun würde.


    Weiß auch noch gar nicht, ob das mit dem kompilieren funktioniert, wie ich mir das vorstelle.

    Das wären dann ja die Haupt-GUI Datei und 42 einzelne .au3 Dateien, welche dann später auf einem Rechner laufen müssten, auf dem kein AutoIt installiert ist. :/


    Anbei noch mein bisheriges Werk:


    Ok, Sorry für den Doppelpost aber ich glaube, dass ich jetzt fertig wäre mit meinem kleinen Tool.


    Könntet ihr euch eventuell kurz anschauen ob ihr einen groben Fehler findet?

    Besonders würde mich interessieren, ob die Art und Weise, wie ich das Script stoppe, über den "Programm beenden" Button, so richtig ist.


    Habe da mehre Dinge versucht um die Hunting-Funktion zu stoppen, welche alle nicht richtig funktioniert haben.

    Die Lösung jetzt, stoppt zumindest die Screenshot-Erstellung, weiß nur nicht, ob der gewählte Weg auch "gut" ist.


    Hallo zusammen, vielen Dank und Sorry für die späte Antwort, hat etwas gedauert mit der Umsetzung.

    Ich habe jetzt alles wieder umgeschrieben, auf die ursprüngliche Variante, damit komme ich irgendwie besser klar und habe dann die Adlib-Lösung genommen.


    Soweit ich das bisher testen konnte, funktioniert alles wie gewünscht und ich bastel jetzt noch an Kleinigkeiten rum.

    Hab den Intervall nun über das GUI veränderbar gemacht und eine Programm-Status Anzeige mit rein gebaut.


    Nur eine Kleinigkeit stört mich noch :|


    Ich habe für das Input Control eine Abfrage drin, dass wenn der Wert kleiner 1 ist, eine MsgBox aufgeht, welche den User darauf hinweist, dass der Wert mindestens 1 Minute sein muss.


    Wie kann ich den Benutzer, wenn der Wert kleiner 1 ist, dann wieder aus der Funktion befördern, in welcher die Abfrage stattfindet?

    Aktuell mache ich das über ExitLoop, allerdings schließt sich dann das gesamte GUI.



    Edit:


    Ich glaub ich habe es geschafft, es tut zumindest das was ich möchte, ob es der richtige Weg ist, keine Ahnung :)


    Hallo alpines,


    vielen Dank für die Hilfe, habe das jetzt versucht so umzuschreiben, leider blockiert es mich immer noch, sobald ich die 5 Minuten-Schleife aufrufe.



    Könntest Du mich eventuell nochmals in die richtige Richtung schubsen?


    Edit: Gerade erst die Antwort von autoBert gesehen, das muss ich erst noch probieren, Danke

    Guten Tag zusammen,


    ich bin gerade dabei ein kleinen Tool zu bauen, welches alle 5 Minuten einen Screenshot macht und abspeichert.

    Das ganze funktioniert auch prächtig, vielen Dank an alle die an der deutschen Hilfedatei mithelfen <3


    Wenn ich nun aber das Programm über den Button "Programm starten" starte, reagiert er nicht mehr auf die anderen GUI Inhalte, z.B. zum beenden.

    Ich vermute, das hängt mit der Schleife oder eher dem Sleep zusammen.


    Habe dann auch mal versucht, in die Schleife eine Abfrage zu nehmen, ob einer der Buttons geklickt wurde, das hat auch nicht fuktioniert.

    Wie könnte ich das mit der 5 Minuten-Schleife den ohne das Sleep lösen?



    Hallo, ich bekomme nach der Installation diese Fehlermeldung.

    Ich kann eine solche Datei auch nirgends finden, habe dann die Compilled Version heruntergeladen und den Ordner mit der Windowssuche nach der Datei durchsucht aber das hat auch nichts gebracht.


    Wie soll ich den da jetzt weiter vorgehen?

    Hallo Musashi , ja, ich habe mir das angesehen aber ich tue mich gerade echt schwer damit, etwas zu ändern, weil eigentlich alles ganz gut läuft und ich, das bisherige, zum gröbsten Teil auch verstehe.


    Bei der Lösung oben, steht zum Beispiel bei $iIM_POSITIVE_INTEGER auch noch die 0 dabei, so das ich doch sowieso noch eine Abfrage bei der Formnestzahl benötige, da diese nicht 0 sein kann?!


    Mein normaler Rechner läuft ja jetzt ganz gut, bis auf das Problem mit dem Komma, diesen müsste ich in einen Punkt umwandeln zum rechnen.

    Wollte das jetzt so lösen, allerdings tut er nichts und ich brauch jetzt glaub auch mal eine Stunde Pause, seh den Wald vor lauter Bäumen nicht mehr.


    Code
                    ElseIf StringInStr(GUICtrlRead($Zykluszeit), ",") Then
                        StringReplace(GUICtrlRead($Zykluszeit), ",", ".")


    Meiner Logik nach, muss ich doch in dem Feld erst schauen, ob ein Komma vor kommt, falls ja, dann dieses Komma mit einem Punkt austauschen.

    Naja, jetzt erst mal ne Pause machen :part:

    Hallo alpines, aktuell sieht der normale Rechner gut aus, hab schon alles mögliche eingetippt und er hat alles abgefangen bisher, scheint so, als würde beides zusammen laufen.


    Anbei mal mein gesamter bisheriger Rechner, wollte mich jetzt gerade an den erweiterten Rechner setzen.

    Hab da schon mal den Wirkungsgrad zu einer ComboBox gemacht, um mir da die ganzen Abfragen zu sparen ^^


    Guten Morgen alle zusammen,


    vielen Dank alle, aber macht euch doch bitte nicht soviel Arbeit, wegen meinem Rechner :huh:


    Ich bin heute Morgen schon ganz gut dabei und habe auch meine gewünschten Abfragen mit den Werten hinbekommen.

    Da das ganze für mich jetzt schon recht überwältigend ist, würde ich es gerne so lassen, weil es funktioniert und recht viel Arbeit war.


    Mit jeder neuen Abfrage, fallen mir neue Sachen ein, die Formnestzahl kann ja nie kleiner als 1 sein und dabei ist mir auch noch aufgefallen, dass die Formnestzahl auch nie ein Komma enthalten darf, genau wie die wöchtenlichen Abrufe, wir produzieren ja keine halben Teile und der Kunde wird "hoffentlich" auch nie halbe Teile abrufen.


    Das könnte ich jetzt zwar über $ES_Number lösen bei den beiden Feldern aber dann habe ich verschiedene Fehlermeldungen in der selben GUI, würde mir nicht gefallen.


    So, 5. EDIT, jetzt habe ich es aber glaub geschafft:


    Code
                    ElseIf StringInStr(GUICtrlRead($Formnestzahl), ",") Or StringInStr(GUICtrlRead($Formnestzahl), ".") Then
                        GUICtrlSetBkColor($Formnestzahl,"0xFFA500")
                        MsgBox(16,"Fehler","Das Feld Formnestzahl, darf nur Ganzzahlen beinhalten!",0)


    Hoffe, dass ist jetzt auch eine optimale Lösung :/

    alpines Ganz extremes Dankeschön!


    Das hat ganz wunderbar funktioniert:


    Morgen, erweitere ich das ganze noch, dass der Wert auch größer als 0 sein muss, dann geht es an den erweiterten Rechner.

    Hoffe ich komm dann noch klar :/

    Ja, ich weiß, als nächstes, wollte ich das mit den Zahlen, anhand deiner geposteten Hilfe angehen.

    Wollte nur erst einmal für jedes Feld eine eigene Fehlerbeschreibung haben.

    Tuxedo , kann deinen Post zwar nicht mehr lesen aber trotzdem vielen Dank, anhand des Zitates konnte ich entnehmen das Du mir helfen wolltest.


    Bin gerade noch bei der Fehlerbehandlung von fehlenden Eingaben, beim einfachen Rechner, mir fällt immer mehr ein, was ich haben möchte :part:


    Hab jetzt für jedes Feld eine eigene Abfrage gemacht, damit die Fehlerbeschreibung eindeutig ist und das fehlerhafte Feld eingefärbt, nun musste man ja bedenken, das eventuell jemand das erste Feld leer lässt, das zweite ausfüllt, dann die Fehlermeldung bekommt das Feld 1 leer ist.

    Wenn derjenige dann auf Ok drückt und aus welchem Grund auch immer Feld 2 löscht und Feld 1 ausfüllt, darf das aber ja nicht mehr eingefärbt sein usw..


    Total verrückt, so verschachteltes Denken bin ich gar nicht gewohnt :Glaskugel:


    Macht echt mega Spaß das Programmieren lernen bisher!


    Hab das übrigends so umgesetzt:



    Hab noch sooo viele Ideen, für den Rechner!


    Ganz am Ende, möchte ein HTML Dokument erstellen, in welches ich die Formularergebnisse mit den Eingabewerten einlesen möchte, um es wie einen Report ausdrucken zu können :thumbup:


    Aber erst ganz zum Schluß, dauert noch paar Wochen :klatschen:

    Zitat

    Gemessen an deiner Selbsteinschätzung :


    Zitat von elysium ich bin hier zwar schon eine Weile angemeldet, habe allerdings keine Programmiererfahrung.

    sieht das ganze schon recht gut aus ;).

    Klar, einige Dinge wirst Du mit mehr Erfahrung zukünftig sicher etwas anders lösen, aber es läuft und erfüllt deine Anforderungen :thumbup:


    Da fällt mir direkt was ein, was ich gerne anders gemacht hätte, aber einfach nicht konnte.


    Ich setzte über meinen beiden Funktionen die Controls, für den erweiterten Rechner auf "deaktiviert" und schreibe dann in meine Funktionen jeweils nochmals diesen ganzen Textblock.


    Wollte gerne eine Variable machen, welche die Variablen der jeweiligen Controls enthält und dann einfach diese auf "deaktiviert" schalten, das hätte viel Code eingespart.


    Leider habe ich es nicht geschafft, glaub das muss ich mit diesen Arrays machen aber alles was ich versucht habe hat nicht zum Erfolg geführt, entweder ging gar nichts mehr oder nur das erste hat sich geändert.


    Jetzt lass ich es erst einmal so, muss ja weiter voran kommen und das größte Problem, mit der Überprüfung ob Zahlen in den Feldern sind, kommt ja auch noch :/


    Als nächstes, versuche ich mal die erweiterten Felder rechnen zu lassen, mal schauen wie lange das dauert :rofl: