Announcement

Collapse
No announcement yet.

1xPC 3xLCD 3xverschiedene Bilder mit Irfanview (Batch-Datei) anzeigen, zeitgesteuert

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    1xPC 3xLCD 3xverschiedene Bilder mit Irfanview (Batch-Datei) anzeigen, zeitgesteuert

    Hallo Forum, hsllo IrfanView-Spezialisten

    heute muss ich mich mit einem Problem bei euch melden.

    Folgendes:

    Ich habe 1xPC mit 2xGrafikkarten, hier sind im Moment 3 LCDs
    angeschlossen. Jeder LCD soll ein anderes Bild (.png) anzeigen.

    Bild 1 = 1600x1200
    Bild 2 = 1600x1200
    Bild 3 = 1600x1200

    Es handelt sich hier um verschiedene Speisekarten. Die Speisekarten
    werden je nach Tageszeit im Wechsel angezeigt.

    Das ganze habe ich in einer Batch-Datei mit IrfanView realisiert.

    Das ganze läuft auch, jedoch nicht immer:

    Der Ablauf:

    Wenn der PC neu Startet, wird die Batch-Datei ausgeführt, hier läuft
    das ganze meistens. Beim Wechsel auf die Nachmittagskarte mit der
    Zeitsteuerung, wird manchmal, nicht immer der

    LCD 1 richtig
    LCD 2 garnicht
    LCD 3 richtig

    angezeigt.
    Starte ich die Batchdatei erneut mit (F9 habe ich für die Batchdatei vergeben)
    dann

    LCD 1 richtig
    LCD 2 richtig
    LCD 3 richtig

    angezeigt. Es kann aber sein, dass ich die Batchdatei öfters starten
    lassen muss (F9), damit es passt.

    Es ist schon komisch, manchmal geht’s.
    Manchmal geht’s nicht.

    Woran kann das liegen ??

    Hier meine Batch-Datei:

    set zeit=%time:~0,2%%time:~3,2%

    start c:/Programme/IrfanView/i_view32.exe /killmesoftly

    if %zeit% GEQ 530 IF %zeit% LEQ 999 goto frueh
    if %zeit% GEQ 1000 IF %zeit% LEQ 1399 goto mittag
    if %zeit% GEQ 1400 IF %zeit% LEQ 1699 goto nachmittag
    if %zeit% GEQ 1700 IF %zeit% LEQ 2099 goto abend
    If %zeit% GEQ 2100 goto nacht
    IF %zeit% LSS 429 goto nacht

    exit

    :frueh
    @ping localhost -n 2 >NUL
    start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-1_Abend.png" /fs /pos=(0,0)
    @ping localhost -n 2 >NUL
    start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-2_Fruehstueck.png" /fs /pos=(1600,0)
    @ping localhost -n 2 >NUL
    start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-3.png" /fs /pos=(3200,0)
    @ping localhost -n 2 >NUL
    REM start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-4.png" /fs /pos=(4800,0)
    exit

    :mittag
    @ping localhost -n 2 >NUL
    start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-1_Tag.png" /fs /pos=(0,0)
    @ping localhost -n 2 >NUL
    start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-2_Mittag.png" /fs /pos=(1600,0)
    @ping localhost -n 2 >NUL
    start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-3.png" /fs /pos=(3200,0)
    @ping localhost -n 2 >NUL
    REM start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-4.png" /fs /pos=(4800,0)
    exit

    :nachmittag
    @ping localhost -n 2 >NUL
    start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-1_Tag.png" /fs /pos=(0,0)
    @ping localhost -n 2 >NUL
    start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-2_Nachmittag.png" /fs /pos=(1600,0)
    @ping localhost -n 2 >NUL
    start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-3.png" /fs /pos=(3200,0)
    @ping localhost -n 2 >NUL
    REM start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-4.png" /fs /pos=(4800,0)
    exit

    :abend
    @ping localhost -n 2 >NUL
    start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-1_Tag.png" /fs /pos=(0,0)
    @ping localhost -n 2 >NUL
    start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-2_Abend.png" /fs /pos=(1600,0)
    @ping localhost -n 2 >NUL
    start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-3.png" /fs /pos=(3200,0)
    @ping localhost -n 2 >NUL
    REM start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-4.png" /fs /pos=(4800,0)
    exit

    :nacht
    @ping localhost -n 2 >NUL
    start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-1_Abend.png" /fs /pos=(0,0)
    @ping localhost -n 2 >NUL
    start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-2_Nacht.png" /fs /pos=(1600,0)
    @ping localhost -n 2 >NUL
    start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-3.png" /fs /pos=(3200,0)
    @ping localhost -n 2 >NUL
    REM start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-4.png" /fs /pos=(4800,0)
    exit

    --- Ende ---
    Den Befehl „@ping localhost -n 2 >NUL“ muß ich eingeben, damit
    IrfanView 2sec Zeit pro Bildschirm hat. Nehme ich das raus dann
    habe ich meistens:

    LCD 1 richtig
    LCD 2 garnicht
    LCD 3 richtig

    Wie gesagt, das System läuft eigentlich, nur manchmal, so alle 2 Tage
    kann es sein, dass ein LCD 2 fehlt, beim erneuten Starten kommt er
    dann wieder.

    Ich hoffe mir kann jemand helfen.

    Wäre schön wenn das ganze ohnesStändige Beaufsichtigung und erneutes starten laufen würde

    gruß
    gnaps

    #2
    Code:
    if %zeit% GEQ 530 IF %zeit% LEQ 999 goto frueh
    if %zeit% GEQ 1000 IF %zeit% LEQ 1399 goto mittag
    if %zeit% GEQ 1400 IF %zeit% LEQ 1699 goto nachmittag
    if %zeit% GEQ 1700 IF %zeit% LEQ 2099 goto abend
    Wenn ich die Uhr richtig lesen kann und zudem verstehe, müßte es doch lauten:

    Code:
    if %zeit% GEQ 530 IF %zeit% LEQ 959 goto frueh
    if %zeit% GEQ 1000 IF %zeit% LEQ 1359 goto mittag
    if %zeit% GEQ 1400 IF %zeit% LEQ 1659 goto nachmittag
    if %zeit% GEQ 1700 IF %zeit% LEQ 2059 goto abend
    »Und so, in eurer Verzweiflung, kommt ihr zu mir.«

    Texteditor EmEditor:
    Deutsche Sprachdatei (v7.01) für EmEditor Pro 7.02 (englisch)
    EmEditor Pro 8.06 (deutsch) | Deutsche Sprachdatei (v8) für EmEditor Pro 8.06 (englisch)
    Deutsche Sprachdatei (v9.16) für EmEditor Pro 9.17 (englisch)

    Comment


      #3
      Hi,

      Ok, Ok,

      stimmt, dennoch die Abfrage geht. Mein Problem liegt wo anders.

      Eine Idee ??

      Gruß

      Comment


        #4
        Von
        Code:
        start c:/Programme/IrfanView/i_view32.exe /killmesoftly
        nach
        Code:
        start c:\Programme\IrfanView\i_view32.exe /killmesoftly
        , aber das ist nur ein Schönheitsfehler.


        Was mir noch nicht ganz verständlich ist: Wenn doch immer drei IrfanView-Instanzen gestartet werden, wozu dann die Zwangspause mittels ”@ping localhost -n 2 >NUL”?
        Wenn die Batch-Datei beim Windows-Start einmalig ausgeführt wird, wie vollzieht sich dann der Wechsel (Zitat) »auf die Nachmittagskarte mit der Zeitsteuerung«; eine Schleife innerhalb des Skriptes ist ja keine vorhanden – erfolgt der Wechsel manuell?


        In der Art funktioniert es bei mir bisher ohne Beanstandung, wenngleich ich nicht mit drei Monitoren testen kann und deshalb ein wenig simulieren muß.
        @echo off
        cls
        setlocal

        set files=C:\Bilder
        set iview=C:\IrfanView\i_view32.exe
        set xpos1=0
        set xpos2=1600
        set xpos3=3200
        set xpos4=4800

        set ypos1=0
        set ypos2=0
        set ypos3=0
        set ypos4=0

        rem set delay=ping localhost -n 2 ^> nul
        rem set delay=sleep 2

        set zeit=%time:~0,2%%time:~3,2%

        "%iview%" /killmesoftly

        if %zeit% GEQ 530 if %zeit% LEQ 959 goto frueh
        if %zeit% GEQ 1000 if %zeit% LEQ 1359 goto mittag
        if %zeit% GEQ 1400 if %zeit% LEQ 1659 goto nachmittag
        if %zeit% GEQ 1700 if %zeit% LEQ 2059 goto abend
        if %zeit% GEQ 2100 goto nacht
        if %zeit% LSS 429 goto nacht

        :frueh
        rem echo frueh
        %delay%
        start "%iview%" "%files%\Monitor-1_Abend.png" /pos=(%xpos1%,%ypos1%)
        %delay%
        start "%iview%" "%files%\Monitor-2_Fruehstueck.png" /pos=(%xpos2%,%ypos2%)
        %delay%
        start "%iview%" "%files%\Monitor-3.png" /pos=(%xpos3%,%ypos3%)
        %delay%
        rem "%iview%" "%files%\Monitor-4.png" /pos=(%xpos4%,%ypos4%)
        goto END

        :mittag
        rem echo mittag
        %delay%
        start "%iview%" "%files%\Monitor-1_Tag.png" /pos=(%xpos1%,%ypos1%)
        %delay%
        start "%iview%" "%files%\Monitor-2_Mittag.png" /pos=(%xpos2%,%ypos2%)
        %delay%
        start "%iview%" "%files%\Monitor-3.png" /pos=(%xpos3%,%ypos3%)
        %delay%
        rem start "%iview%" "%files%\Monitor-4.png" /pos=(%xpos4%,%ypos4%)
        goto END

        :nachmittag
        rem echo nachmittag
        %delay%
        start "%iview%" "%files%\Monitor-1_Tag.png" /pos=(%xpos1%,%ypos1%)
        %delay%
        start "%iview%" "%files%\Monitor-2_Nachmittag.png" /pos=(%xpos2%,%ypos2%)
        %delay%
        start "%iview%" "%files%\Monitor-3.png" /pos=(%xpos3%,%ypos3%)
        %delay%
        rem "%iview%" "%files%\Monitor-4.png" /pos=(%xpos4%,%ypos4%)
        goto END

        :abend
        rem echo abend
        %delay%
        start "%iview%" "%files%\Monitor-1_Tag.png" /pos=(%xpos1%,%ypos1%)
        %delay%
        start "%iview%" "%files%\Monitor-2_Abend.png" /pos=(%xpos2%,%ypos2%)
        %delay%
        start "%iview%" "%files%\Monitor-3.png" /pos=(%xpos3%,%ypos3%)
        %delay%
        rem start "%iview%" "%files%\Monitor-4.png" /pos=(%xpos4%,%ypos4%)
        goto END

        :nacht
        rem echo nacht
        %delay%
        start "%iview%" "%files%\Monitor-1_Abend.png" /pos=(%xpos1%,%ypos1%)
        %delay%
        start "%iview%" "%files%\Monitor-2_Nacht.png" /pos=(%xpos2%,%ypos2%)
        %delay%
        start "%iview%" "%files%\Monitor-3.png" /pos=(%xpos3%,%ypos3%)
        %delay%
        rem "%iview%" "%files%\Monitor-4.png" /pos=(%xpos4%,%ypos4%)

        :END
        endlocal

        exit
        »Und so, in eurer Verzweiflung, kommt ihr zu mir.«

        Texteditor EmEditor:
        Deutsche Sprachdatei (v7.01) für EmEditor Pro 7.02 (englisch)
        EmEditor Pro 8.06 (deutsch) | Deutsche Sprachdatei (v8) für EmEditor Pro 8.06 (englisch)
        Deutsche Sprachdatei (v9.16) für EmEditor Pro 9.17 (englisch)

        Comment


          #5
          Hallo Foxy

          zuerst einmal Danke für deinen Skript.

          Ich werde diesen morgen testen. Mal schauen.

          So nun deine Fragen:

          >Was mir noch nicht ganz verständlich ist: Wenn doch immer drei IrfanView-Instanzen >gestartet werden, wozu dann die Zwangspause mittels ”@ping localhost -n 2 >NUL”?

          Wenn ich den Skript ohne Pause laufen lasse, dann kommt auf dem 2. LCD fast nie ein Bild. Ich gebe IrfanView Zeit die Bilder aufzubauen.
          Die Fehler (Bildausfälle) sind dann geringer.
          Ich dachte schon daran die Zeit noch weiter zu erhöhen, womöglich werden dann alle
          Bilder ohne Ausfall angezeigt.

          >Wenn die Batch-Datei beim Windows-Start einmalig ausgeführt wird, wie vollzieht >sich dann der Wechsel (Zitat) »auf die Nachmittagskarte mit der Zeitsteuerung«; >eine Schleife innerhalb des Skriptes ist ja keine vorhanden – erfolgt der Wechsel
          >manuell?

          Nein, nicht manuell, ich benutze zur Zeitsteuerung "aborange Schedulers",
          hier kann der Fehler ja nicht liegen da die Batch-Datei zur richtigen Zeit
          ausgeführt wird.

          Gruß
          gnaps

          Comment


            #6
            Hallo Foxy,

            es lässt mir einfach keine Ruhe.

            wie geschrieben übernimmt die Zeitsteuerung "aborange Schedulers",
            wie kann ich eine Abfrage in der Batch-Datei einfügen, damit er z.B.
            30 Minuten wartet
            die Systemzeit abfragt
            bei einem Ergebniss dann zur zutreffenden unterroutine wechselt
            diese ausführt
            und wieder 30 Minuten wartet

            würde das gehen:
            -----
            set warten=sleep 1800

            :warten
            set zeit=%time:~0,2%%time:~3,2%

            "%iview%" /killmesoftly

            if %zeit% GEQ 530 if %zeit% LEQ 959 goto frueh
            if %zeit% GEQ 1000 if %zeit% LEQ 1359 goto mittag
            if %zeit% GEQ 1400 if %zeit% LEQ 1659 goto nachmittag
            if %zeit% GEQ 1700 if %zeit% LEQ 2059 goto abend
            if %zeit% GEQ 2100 goto nacht
            if %zeit% LSS 429 goto nacht
            %warten%
            goto warten
            -----

            Wie hoch wäre die CPU-Auslastung, der PC soll ja nicht unnötig Rechenleistung
            verheizen.

            Gruß
            gnaps

            Comment


              #7
              [...] es lässt mir einfach keine Ruhe [...]
              Kein Problem, ich bemühe mich um Auflösung.


              [...] wie geschrieben übernimmt die Zeitsteuerung "aborange Schedulers" [...]
              Wie wiederum habe ich mir das vorzustellen? 'Aborange Scheduler' „stößt“ zu bestimmten Zeiten die Batch-Datei an, die dann ihrerseits die entsprechenden Bilder zur Anzeige bringt?


              Hinweis: Das ”Sleep”-Kommando ist nicht zwangsläufig integraler Bestandteil einer jeder Windows NT-Version und muß so unter Umständen nachgerüstet werden.


              [...] würde das gehen [...]
              Es würde nicht nur, es tut es auch. Mir stellt sich jedoch die Frage nach dessen Sinn. Soll nicht gerade 'Aborange Scheduler' die Zeitsteuerung übernehmen? Und der eigentlichen Ursache der dysfunktionalen Bildanzeige kommt man damit ja auch nicht wirklich auf die Spur. (Zudem läßt sich die vorliegende Schleife nur mittels ”[Strg][C]” unterbrechen.)
              Die CPU-Belastung ist hingegen absolut vernachlässigbar (während des Wartezyklus quasi nicht meßbar).


              Da ich das komplette Procedere aber selbst nicht bis zu Ende reproduzieren kann, ist alles weitere ein bißchen ein Stochern im Trüben. Vielleicht ist es dies ('IrfanView'), vielleicht ist es das (irgendwas).

              Verzichte, zu Testzwecken, fürs erste doch einmal auf die Darstellung der Bilder auf verschiedenen Monitoren.

              Also
              start "%iview%" "%files%\Monitor-1_Abend.png"
              statt
              start "%iview%" "%files%\Monitor-1_Abend.png" /fs /pos=(%xpos1%,%ypos1%)
              Sind drei 'IrfanView'-Instanzen aktiv und zeigt jede davon ein Bild?
              »Und so, in eurer Verzweiflung, kommt ihr zu mir.«

              Texteditor EmEditor:
              Deutsche Sprachdatei (v7.01) für EmEditor Pro 7.02 (englisch)
              EmEditor Pro 8.06 (deutsch) | Deutsche Sprachdatei (v8) für EmEditor Pro 8.06 (englisch)
              Deutsche Sprachdatei (v9.16) für EmEditor Pro 9.17 (englisch)

              Comment


                #8
                Hi Foxy,

                >Wie wiederum habe ich mir das vorzustellen? 'Aborange Scheduler' „stößt“ zu bestimmten Zeiten die Batch-Datei an,
                > die dann ihrerseits die entsprechenden Bilder zur Anzeige bringt?

                genau, 'Aborange Scheduler' sartet die Batch-Datei, und das will ich auch so belassen,
                also keine Zeitsteuerung in der Batch-Datei

                Nochmal im detail.

                PC startet (bleibt auch im Dauerbetrieb und wird nur bei Absturz oder Stromausfall neu starten, also läuft 24h).
                Aborange Scheduler wir über Autostart gestartet
                Batch-Datei wird über Autostart gestartet

                5:30 Aborange Scheduler startet die Batch-Datei
                10:00 Aborange Scheduler startet die Batch-Datei
                14:00 Aborange Scheduler startet die Batch-Datei
                17:00 Aborange Scheduler startet die Batch-Datei
                21:00 Aborange Scheduler startet die Batch-Datei

                So,
                beim hochfahren und Ausführen der Batch-Datei aus dem Autostart gabs noch nie Probleme (Alle 3 Bilder werden korrekt angezeigt)
                daher weis ich die Batch-Datei funktioniert.

                Das ganze läuft nun 1 Woche, mit folgendem Ergebniss:
                5:30 Aborange Scheduler startet die Batch-Datei (alle 3 Bilder werden korrekt angezeigt)
                10:00 Aborange Scheduler startet die Batch-Datei (alle 3 Bilder werden korrekt angezeigt)
                14:00 Aborange Scheduler startet die Batch-Datei (Bild 1 wird auf LCD 1 angezeigt, Bild 2 wird nicht gezeigt, Bild 3 wird auf LCD 3 angezeigt)
                17:00 Aborange Scheduler startet die Batch-Datei (alle 3 Bilder werden korrekt angezeigt)
                21:00 Aborange Scheduler startet die Batch-Datei (alle 3 Bilder werden korrekt angezeigt)

                und das jeden Tag.
                Nun habe ich um Manuell eingreifen zu können auf der F9-Taste die Batch-Datei gelegt, d.h. wenn um 14:00 Uhr der LCD 2 leer bleibt kann man
                per F9 die Batch-Datei starten. Dieser Start über die F9-Taste funktioniert manchmal beim ersten mal, meistens muß aber die F9-Taste 2-3 mal
                gedrückt und die Batch-Datei aufgerufen werden.

                Es läuft ansonsten wunderbar, nur um 14:00 Uhr muss LCD 2 geprüft werden, es gab auch Tage an dem es ging. aber meistens gehts nicht.

                So, wenn man das so sieht, dann muss hier der Fehler liegen
                -----
                :nachmittag
                @ping localhost -n 2 >NUL
                start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-1_Tag.png" /fs /pos=(0,0)
                @ping localhost -n 2 >NUL
                start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-2_Nachmittag.png" /fs /pos=(1600,0)
                @ping localhost -n 2 >NUL
                start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-3.png" /fs /pos=(3200,0)
                @ping localhost -n 2 >NUL
                REM start c:/Programme/IrfanView/i_view32.exe "c:\Eigene-Dateien\Monitor-4.png" /fs /pos=(4800,0)
                exit
                -----
                aber wo ??

                Siehst du hier einen Fehler ??

                Nochmal wegen

                @ping localhost -n 2 >NUL

                wenn ich das rausnehme, dann habe ich oft Bildausfälle auf allen 3 LCD, aber immer unterschiedlich,
                man könnte meinen, Irfanview stolpert wenn ich es so schnell drei mal hinter einander starte,
                die 2sec Pause ist auch nicht schlimm.
                Ich werde die Pause auf 3 sec erhöhen womöglich ist dann das Problem komplett weg.

                gruß gnaps

                Comment


                  #9
                  Sind nach Ausführung der Batch-Datei um 14:00 Uhr drei 'IrfanView'-Instanzen aktiv?


                  @ping localhost -n 2 >NUL

                  wenn ich das rausnehme, dann habe ich oft Bildausfälle auf allen 3 LCD, aber immer unterschiedlich [...]
                  Wenn es so reibungloser funktioniert, dann spricht nichts gegen den ”Ping”-Einsatz.

                  Ich werde die Pause auf 3 sec erhöhen womöglich ist dann das Problem komplett weg.
                  Vielleicht ist sogar noch eine weitere Erhöhung der Karenzzeit erforderlich. Ausprobieren schadet nicht.
                  »Und so, in eurer Verzweiflung, kommt ihr zu mir.«

                  Texteditor EmEditor:
                  Deutsche Sprachdatei (v7.01) für EmEditor Pro 7.02 (englisch)
                  EmEditor Pro 8.06 (deutsch) | Deutsche Sprachdatei (v8) für EmEditor Pro 8.06 (englisch)
                  Deutsche Sprachdatei (v9.16) für EmEditor Pro 9.17 (englisch)

                  Comment

                  Working...
                  X