mehrere Zeiten wenn abgelaufen für OBS

  • Hallo ich bin erst neu hier :) ich habe mir ein Programm gebastelt womit ich eine Zeit in einem Input feld eingeben kann und wenn diese abgelaufen ist Stoppt meine Aufnahme ich habe sowas schonmal erstellt mit dem ersten Input feld aber habe mir dann mal was überlegt womit ich 5 verschiedene Aufnahmen/Zeiten eingeben kann und wenn zb. Aufnahme 2 (Input2) abgelaufen ist soll gestoppt werden und nach ein paar sec soll er mit der nächsten aufnahme beginnen was in Input3 steht das zieht sich bis zur 5


    jetzt mein Problem ich schaff es zwar das er es mit dem Input1 macht also erste Aufnahme aber wenn diese abgelaufen ist geht ein weiterer befehl an eine Funktion die auch eine Schleife beinhaltet womit er weiß ok jetzt soll Aufnahme 2 gestartet werden dieses macht er aber nicht ich habe schon so vieles probiert komme aber nicht zum erfolg die Funktion wird abgerufen und arbeitet auch aber die Schleife nur zur hälfte oder garnicht vielleicht habt ihr ein Rat für mich


    Ich würde hier mal den ganzen Skriptcode posten


    5 Aufnahme Timer.au3

  • Hallo WhiteHorse

    ich denke dein Problem ist, dass du in Endlosschleifen deine Aufgaben abwickelst.

    Ich sehe da eine Funktion "ANAufnahem2". Innerhalb der Funktion wird eine Endlosschleife gestartet. Das Ende der Aufnahme versuchst du aber in einer anderen Schleife abzufangen. So kann das nicht funktionieren.

    Du musst lernen zu verstehen, was da eigentlich gerade passiert. Außerdem frage ich mich woher du Call ["Funktionsname"] her hast. Programmierst du sonst in einer anderen Programmiersprache?

    Grüße autoiter

  • Hallo WhiteHorse

    ich denke dein Problem ist, dass du in Endlosschleifen deine Aufgaben abwickelst.

    Ich sehe da eine Funktion "ANAufnahem2". Innerhalb der Funktion wird eine Endlosschleife gestartet. Das Ende der Aufnahme versuchst du aber in einer anderen Schleife abzufangen. So kann das nicht funktionieren.

    Du musst lernen zu verstehen, was da eigentlich gerade passiert. Außerdem frage ich mich woher du Call ["Funktionsname"] her hast. Programmierst du sonst in einer anderen Programmiersprache?

    Call habe ich mal von einem anderen Forum aufgeschnappt da ging es aber auch um C++ Autoit, ich versuche eigentlich immer selbst die Probleme zu lösen und schreibe mir die Funktionen der Skripte dann nochmal separat auf um sie später vielleicht noch mal zu benutzen


    wie ich sehe hast du auch bemerkt das ich Anfänger bin :) aber mich Interessiert diese Programmiersprache und möchte auch so viel wie möglich darüber lernen ich habe viele ideen und Programme die ich gern schreiben würde aber meine Erfahrung (um setzung) lässt mich an dieser stelle im stich

    Ich versuche immer so viel wie möglich von Foren und ggf Videos zurückzugreifen egal ob Deutsch oder Englisch, dazu ziehe ich auch das Hilfe menu im Programm hinzu F1 was ich mir ebenfalls für Deutsch gezogen habe

    PS nein ich arbeite im moment nur mit Autoit

  • Hallo WhiteHorse.

    Ich meine das BugFix oder Oscar mal einen Timer (Eierkocher? Teekocher? Pizzatimer?) gescriptet habt.
    Einfach mal das Forum durch schauen oder warten das sich einer von den beiden meldet (Letzteres wäre nicht nett ;))
    Oder die Suchfunktion benutzen? Ich bin habe das Script irgendwo, aber ich müsste suchen, was laaaange dauern kann.

    Dort ist eine Funktion, die ein Ton aus gibt, sobald die Zeit abgelaufen ist. Also ein Alarm (Alarm = Suchbegriff ?)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Es gibt viele Möglichkeiten mit Timern zu arbeiten.

    Für parallele Abläufe kannst du z.B. folgendes simples Bsp. nutzen

    Mit ein paar Jahren auf dem Buckel immer noch gut: Multi-Timer  8)

  • Es gibt viele Möglichkeiten mit Timern zu arbeiten.

    Für parallele Abläufe kannst du z.B. folgendes simples Bsp. nutzen

    Mit ein paar Jahren auf dem Buckel immer noch gut: Multi-Timer  8)

    danke :)

    das bringt mir nicht viel ich muss wissen wie ich die zweite schleife zum laufen bringen muss, ansonsten muss ich es kompliziert machen und das Programm 5 mal öffnen und ich sage den dann wenn der erste Timer abgelaufen ist einfach das er nach abschluss die Aufnahme 2.au3 öffnen soll denn ein Input feld/Timer geht ja nur die erweiterung klappt nicht mit 5 weiteren auf einem Fenster

  • das bringt mir nicht viel ich muss wissen wie ich die zweite schleife zum laufen bringen muss

    :?:

    Du brauchst doch nur eine einzige Schleife.

    - Mainloop läuft

    - Programmteil1 (Funktion!!) wird aufgerufen

    - Funktion setzt Check-Variable: 1: 'Bin-am-Arbeiten'

    - Wenn die Funktion fertig ist wird Inhalt auf 0: 'Fertig' gesetzt

    - In Schleife bei jedem Durchlauf prüfen: Inhalt der Check-Variable

    - Variable = 1 ? Funktion rennt noch - tue nichts

    - Variable = 0 ? Funktion ist fertig - auf zur nächsten

    usw. usf.

    Ggf. ist es sinnvoll den Check nicht im Mainloop auszuführen, sondern eine Prüffunktion mit AdlibRegister einzusetzen.

  • könntest du mir ggf mal bitte ein beispiel machen, wie gesagt bin anfänger ich bräuchte sowas wie ein anhaltspunkt (beispiel)

  • önntest du mir ggf mal bitte ein beispiel machen

    Ich habe deinen Code mal als Basis genommen, einiges - aber nicht alles - optimiert, aber das Unnütze noch nicht raus geworfen, kannst du dann selbst bereinigen.

    Ich gehe davon aus, da du "Stunden|Minuten|Sekunden" erfasst, dass das keine Uhrzeit, sondern die Dauer der Aufnahme ist. Btw: Wozu Hotkey? Du hast doch einen Start/Stop - Button. Hotkeys sind Global und du kommst oft in Konflikt mit dem System (F7 ist z.B. bei mir nicht möglich). Verwende besser GuiSetAccelerators.

    Schau es dir an:

  • Als Beispiel wäre hier eine Alarmfunktion. Das könnte dir weiterhelfen. Du musst nur anpassen, was beim alarm passieren soll.

  • Ich habe deinen Code mal als Basis genommen, einiges - aber nicht alles - optimiert, aber das Unnütze noch nicht raus geworfen, kannst du dann selbst bereinigen.

    Ich gehe davon aus, da du "Stunden|Minuten|Sekunden" erfasst, dass das keine Uhrzeit, sondern die Dauer der Aufnahme ist. Btw: Wozu Hotkey? Du hast doch einen Start/Stop - Button. Hotkeys sind Global und du kommst oft in Konflikt mit dem System (F7 ist z.B. bei mir nicht möglich). Verwende besser GuiSetAccelerators.

    Schau es dir an:

    Danke :)

    also das klappt schonmal super F7 ist der Hotkey für das Starten der Aufnahme für das Aufnahmeprogramm und der GUI es wird sozusagen alles beides gleichzeitig gestartet der Start Stop Button unten der ist eigentlich egal auf dem wird nicht drauf rum gedrückt es wird nur einmal F7 und dann läuft er den ersten Timer ab wenn der abgelaufen ist soll er an das Programm F8 senden und ca 5 sec mit der nächsten aufnahme beginnen wo wieder F7 gesendet wird

    so soll das eigentlich ablaufen

    PS: das letzte Input feld unten wenn dort was drin steht läuft er nur noch und Stopt nicht wenn die zeit abgelaufen ist (Aufnaheme 5)

  • PS: das letzte Input feld unten wenn dort was drin steht läuft er nur noch und Stopt nicht wenn die zeit abgelaufen ist (Aufnaheme 5)

    Ja, die Abfrage in _StopTimer war nicht korrekt.

  • huhu, ich bins mal wieder :)

    Ich hätte mal eine frage,

    es ist ja möglich das ich zb ESC drücke und er macht die GUI zu und schließt alles.

    Ist das denn auch machbar das ich ESC gedrückt halten muss sagen wir mal 3 sec um alles zu schließen damit um gehe ich das wenn ich versehentlich darauf komme nicht alles beendet wird?

    wenn ja wie würde der Code aussehen, es ist vermutlich eine while oder?

    Weil er muss ja stendig abfragen hat er denn jetzt 3 sec gehalten oder nicht.

  • es ist ja möglich das ich zb ESC drücke und er macht die GUI zu und schließt alles.

    Das kannst du aber deaktivieren: AutoitSetOption('GUICloseOnESC', 0) ; 0 = ESC sendet kein Event zum Beenden der GUI

    Ist das denn auch machbar das ich ESC gedrückt halten muss sagen wir mal 3 sec um alles zu schließen

    Würde ich nicht empfehlen. Die einfachere Lösung ist die Nutzung eines an die GUI gebundenen Hotkeys (Accelerator-Key)

  • Man könnte beim "normalen" beenden auch noch eine Abfrage einbauen:

  • vielen Dank :):thumbup:

    da ich neu bin werde ich bestimmt mal die eine oder andere Frage stellen soll ich da ein neues Thema aufmachen oder kann ich hier weiter schreiben was ist besser?