none
Abfragen ob Chrome im Vollbildmodus(F11) ist RRS feed

  • Allgemeine Diskussion

  •  
    Hallo,

    wie kann ich abfragen, ob der Browser(Chrome) im Vollbildmodus(F11) geöffnet ist mit Powershell?

    Kurz zum Problem. Soll eine App schreiben, die einen Chrome Browser öffnet mehrere Tabs dazu und dies im Vollbildmodus (nicht kiosk) anzeigt.  Dazu soll die App im Autostart funktionieren.
    Alle meine Lösungsversuche scheiterten beim Autostart. --start-fullscreen und den F11 Tastendruck simulieren funktionieren einwandfrei, wenn ich das Skript so starte. Aber im Autostart funktioniert dies nicht. Wahrscheinlich weil nicht alle Ressourcen hochgefahren sind und zu viele verschiedene Prozesse abgearbeitet werden.

    Mein Ansatz wäre:
    Starte chrome.exe und öffne die Tabs. Mit einer Schleife prüfen, ob das richtige Fenster aktiviert wird und dann nochmal eine Schleife, die solange versucht F11 zu drücken bis tatsächlich der Vollbildmodus aktiv ist. Dann verlasse beide Schleifen. Dies sollte dann auch gehen, wenn der Rechner noch nicht ganz bereit ist, da dann einfach die Schleife länger läuft.

    Ich muss nur wissen, wie ich mit Powershell den Vollbildmodus von Chrome erkenne und abfragen kann.

    Oder kennt ihr andere Wege, die Autostart resistent sind? Ich probiere seit mehreren Stunden das zu lösen.

    $wshell = new-object -com wscript.shellwhile($true){

        while ($wshell.activateApp("Chrome")){

            $wshell.sendKeys("{F11]")

            break   

    }

    }


    Code ist nur aus dem Kopf. Kann also fehlerhaft sein.
    Vielen Dank.
    mfg werdas34


    Donnerstag, 12. September 2019 16:50

Alle Antworten

  • Hmmm ... dass Du das falsch angehst, hatten wir ja eh schon geklärt.  ;-)

    Öffne Chrome doch einfach gleich im KIOSK-Mode.


    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''

    Donnerstag, 12. September 2019 21:00
  • Es soll nicht im Kiosk Modus sein, deswegen bringt es mir nixhts. Und AutoHotKey wird nicht unterstützt in der Arbeit.

    Es muss doch irgendeine Variable oder Flag gesetzt werden, damit der Vollbildmodus erscheint. Kann man das nicht abgfragen?

    Freitag, 13. September 2019 03:35
  • Wenn es NICHT im KIOISK-Modus sein soll, versteh ich Deine Frage nicht. Starte den Browser doch einfach so, wie Du ihn haben willst, dann brauchst Du nicht abfragen, ob er so läuft wie Du ihn haben willst.

    ... und ich meinte nicht Autohotkey.   ... aber selbst wenn ... was heißt denn eigentlich "Autohotkey wird nicht unterstützt?" Du brauchst es doch nur zu installieren!?!  ( oder eigentlich nicht mal das - jedenfalls nicht auf dem "Zielsystem" ) ... soll die Aufgabe gelöst werden oder nicht!?!?


    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''

    • Bearbeitet BOfH-666 Freitag, 13. September 2019 06:11
    Freitag, 13. September 2019 06:11
  • KIOSIK Modus hat den Nachteil, das ich den Modus nicht abstellen kann, nur mit ALT F4 den Browser schließen. Ist eben ein reiner Präsentationsmodus. Wenn bei uns ein Fehler angezeigt wird, dann klickt man rein und macht dementsprechend weiter. Da die "Eine Seite zurück gehen"- Taste im KIOSIK Modus auch nicht sichtbar ist, wirds schwierig. Es soll eben die Taskleste von Windows und die Toolbar von Chrome verschwinden, damt man mehr von der Seite sieht. Taskleiste kann man ausblenden, Chrome Toolbar zurseit leider nicht.

    Habe jetzt ein Skript in JS geschrieben, welches mir sagt, ob der Browser im Fullscreen ist. (Geht nur bei Chrome, Firefox nicht, falls jemand testen möchte).

    Würde gern das Skript starten in Powershell und den Prozess zustand abwarten.

    Also: Ich starte das Skript mit Start-Job, damit das im Hintergund läuft. Dann wird im MainSkript versucht F11 zu drücken. Wenn dies gelingt, schließt sich der Chrome Tab und der Prozess soll den State Completed annehmen.

    Nur bekomme ich das nicht hin. Kann mir da jemand weiterhelfen?

    JS Code:

    function isFullscreen(){
    	if( window.innerHeight == screen.height) {
    		return true;
    	}
    	return false;
    }
    
    function sleep(ms) {
      return new Promise(resolve => setTimeout(resolve, ms));
    }
    
    if(isFullscreen()){
    	console.log(isFullscreen());
    	close();
    }else{
    	console.log(isFullscreen());
    	sleep(3000);
    	location.reload(true);
    }
    

    ProzessTest:

    $fullscreen = start-job -ScriptBlock {get-process 'C:\Users\schda\Desktop\test.html'}
    while($true){
        write-host $fullscreen.State
    }
    

    Momentaner Stand ist, das er für ein paar Sekunden läuft (Running) und dann Completed, ohne, das ich irgendetwas geändert habe und Chrome auch nicht im Vollbild ist.

    Mein Ziel wäre es: Prozess läuft, wenn Chrome im Vollbildmodus ist, dann Prozess abgeschlossen. Solange Chrome nicht im Vollbild ist, soll er laufen.

    Samstag, 14. September 2019 11:34
  • KIOSIK Modus hat den Nachteil, das ich den Modus nicht abstellen kann, nur mit ALT F4 den Browser schließen. Ist eben ein reiner Präsentationsmodus. Wenn bei uns ein Fehler angezeigt wird, dann klickt man rein und macht dementsprechend weiter. Da die "Eine Seite zurück gehen"- Taste im KIOSIK Modus auch nicht sichtbar ist, ...

    Ich glaube, ich habe immernoch nicht verstanden, was Dein eigentliches - goßes - Ziel ist.  Was soll das Ganze denn darstellen?

    Und Übrigens: Seit Urzeiten der Internet-Browser kommt man mit <Alt>-<Cursor Links> eine Seite zurück und mit <Alt>-<Cursor Rechts> wieder eine Seite vorwärts ... auch ohne Buttons auf den Oberfläche!  ;-)


    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''

    • Bearbeitet BOfH-666 Samstag, 14. September 2019 12:55
    Samstag, 14. September 2019 12:55
  • Einfach Tastendrücke zu senden zu hoffen das sich nicht irgendein Fenster oder Popup gerade in den Vordergrund geschoben hat, ist keine gute Idee.
    Viel einfacher und deutlich weniger fehleranfällig ist doch dein ursprünglicher Ansatz, Chrome mit "--start-fullscreen" aufzurufen. Starte chrome einfach über die Aufgabenplanung und baue eine kleine Wartezeit ein, setze als Bedingung die Verfügbarkeit einer Netzverbindung etc. oder starte ihn über ein Script, das vor dem Start einige Sekunden wartet oder erfolgreich einen Ping absetzt oder ähnl.


    Blog: http://www.bytecookie.de

    Powershell Code Manager: Link
    (u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.

    Montag, 16. September 2019 15:42
    Moderator