Programm immer im Vordergrund erzwingen

Scheibes

Lieutenant
Registriert
Juni 2010
Beiträge
756
Hallo zusammen,

auf meinem Wohnzimmer PC läuft die Mediasoftware Mediaportal 2.
Diese wird automatisch beim Systemstart gestartet, da auf der Rechner nur zum Fernsehen und Medien wiedergeben genutzt wird. Die Bedienung erfolgt fast ausschliesslich per Fernbedienung.

Nun habe ich jedoch beim Systemstart ein Problem, anscheinend legt sich beim starten irgendwie immer kurz ein anderes Programm in den Vordergrund welches aber in Bruchteilen einer Sekunde wieder beendet wird. Und somit ist der Focus vom Mediaportal 2 weg und ich kann es nicht mehr mit der Fernbedienung bedienen.

Gibt es eine Möglichkeit dass ich es erzwinge solange Mediaportal 2 geöffnet ist dass sich kein Programm in den Vordergrung schieben kann?

Ein Zeit versetztes starten von MP2 hat nichts gebracht, hätte den start auch schon um 15sec verzögert.
Länger möchte ich den Start aber nicht verzögern, da mir der Bootvorgang sonst zulange dauert.

Hat hier jemand Rat?

Gruß
Scheibes
 
Entweder schaust Du nach, was noch gestartet wird (Z.B. mit CCleaner unter Tools/Autostart) oder Du schreibst Dir ein kleines AutoIt-Script. https://www.autoitscript.com/autoit3/docs/functions/WinActivate.htm

Obwohl es komisch ist, dass Dein Media Center nicht automatisch wieder den Fokus bekommt, sobald das Fenster im Vordergrund geschlossen wird. Das wäre nämlich das Windows-Standardverhalten.
 
@Ruheliebhaber: das ist keinesweg das Windows-Standardverhalten. Wenn ein Fenster geschlossen wird, sei es durch User Aktion oder terminieren des Prozesses, hat kein Fenster den Fokus, es sei denn, es fragt ihn selbsttätig an.
 
@WingX: Gerade unter Windows 7 getestet. Wenn ich zwei Programme starte und anschließend das zweite Programm wieder schließe, dann hat das erste Programm den Fokus.
 
Motorrad schrieb:
Gibt es dazu in der Anwendung "Mediaportal 2" keinen passenden Einstellungspunkt!?

Doch eigentlich sollte MP2 standard mäßig immer im Vordergrund sein.
Aber leider funktioniert das nicht.

Ruheliebhaber schrieb:
Entweder schaust Du nach, was noch gestartet wird (Z.B. mit CCleaner unter Tools/Autostart) oder Du schreibst Dir ein kleines AutoIt-Script. https://www.autoitscript.com/autoit3/docs/functions/WinActivate.htm

Obwohl es komisch ist, dass Dein Media Center nicht automatisch wieder den Fokus bekommt, sobald das Fenster im Vordergrund geschlossen wird. Das wäre nämlich das Windows-Standardverhalten.

Hmm das muss ich mir mal genauer anschauen.
Bin nicht so bewandert was das angeht. :)
Ergänzung ()

Also dsa mit dem AutoIT verwirrt mich etwas.

Reicht folgender Code?

Code:
WinActivate("Mediaportal 2")


Wenn ja als was wird die Datei gespeichert (.ini? .bat?) und wie führt sie sich selbstständig aus?
 
Auf der Homepage von AutoIt gibt es einen kleinen Editor, mit welchem Du das Script schreiben kannst. Im Rahmen der Installation wird die Laufzeitumgebung von AutoIt mitinstalliert. Im Prinzip kannst Du das Beispiel aus dem Link ganz unten übernehmen und als au3-File in den Autostart Ordner von Windows legen. AutoIt versucht das Fenster über den Namen in der Titelzeile Deiner Anwendung zu selektieren. Wenn dort "Mediaportal 2" steht, ist Dein Befehl richtig.

Aber vielleicht noch einmal von vorne. Ging es denn früher ohne Probleme, dass Mediaportal den Fokus hatte? Versuch doch mal mit dem CCleaner zu schauen, was alles automatisch gestartet wird!

Vielleicht kannst Du Dir dann das AutoIt Script sparen.
 
(
Den Autostart kontrolliere man besser mit SysInternals AutoRuns. CCleaner ist zu sehr geeignet damit rumzuspielen und Murks anzurichten.
CN8
)
 
Ruheliebhaber schrieb:
Aber vielleicht noch einmal von vorne. Ging es denn früher ohne Probleme, dass Mediaportal den Fokus hatte? Versuch doch mal mit dem CCleaner zu schauen, was alles automatisch gestartet wird!

Sorry für die späte Antwort, war am Wochenende doch sehr eingespannt.
Nein das hat noch nie funktioniert.
Ergänzung ()

Werd es mal mit dem AutoIT probieren.

Hab Core würde dann wie folgt aussehen, richtig? (Hab einfach Notepad durch Mediaportal 2 ersetzt)

Code:
Example()

Func Example()
    ; Run Mediaportal 2
    Run("Mediaportal 2")

    ; Wait 10 seconds for the Mediaportal 2 window to appear.
    Local $hWnd = WinWait("[CLASS:Mediaportal 2]", "", 10)

    ; Activate the Mediaportal 2 window using the handle returned by WinWait.
    WinActivate($hWnd)

    ; Close the Mediaportal 2 window using the handle returned by WinWait.
    WinClose($hWnd)
EndFunc   ;==>Example
 
Den letzten Befehl, das Close solltest Du weg lassen.

Sag mal Bescheid, wenn es funktioniert.
 
Hmm scheint nicht zu klappen.
Mein Rechner kann mit der .au3 nichts anfangen, fragt mich mit welcher App ich die Datei starten will.
Was nun?
Ergänzung ()

Sorry musste natürlich erst mal AutoIt installieren. Aber hat auch nix gebracht. Focus ist irgendwo nur nicht auf Mediaportal 2.
 
Hallo,

versuche mal folgendes Script! Zuvor mußt Du das natürlich im Autostart speichern und ganz wichtig in Deinem Mediacenter den automatischen Start deaktivieren. Das Script soll das Mediacenter starten und den Fokus geben.

Im Script habe ich in der Variablen "$path" den Startpfad für Notepad eingetragen. Dort mußt Du den vollständigen Pfad für Dein Mediacenter eintragen. Den Wert für die Variable "$title" mußt Du auch anpassen. Um den heraus zu bekommen, mußt Du folgendes tun. Du startest das Mediacenter und anschließend das Programm "AutoIt Window Info (x86)", das mit AutoIt auf dem Rechner installiert wurde. In dem Programm gibt es so ein kleines Fadenkreuz. Das kannst Du anklicken, gedrückt halten und dann auf die Titelzeile des Mediacenters ziehen. Dann müßte in dem "AutoIt Window Info" oben unter "Basic Window Info" der Titel des Mediacenters erscheinen. Diese Zeichenfolge trägst Du in dem Script in die Variable "$title" ein. Wichtig ist, daß Du die Anführungsstriche nicht vergißt.

Das Script arbeitet folgendermaßen:

1. Alle Fenster minimieren
2. Kurz warten (0,5 s)
3. Das Mediacenter starten
4. Warten, bis das Mediacenter aktiv ist
5. Das Fenster des Mediacenters maximieren
6. Auf die Koordinate 100, 100 mit der Maus klicken. Das ist links oben auf dem Bildschirm.


Code:
Dim $path = "C:\Windows\notepad.exe"
Dim $title = "Unbenannt - Editor"

WinMinimizeAll()
Sleep(500)
Run($path)
WinWait($title)
WinSetState($title, "", @SW_MAXIMIZE)
MouseClick("left", 100, 100)
 
Zuletzt bearbeitet:
Zurück
Oben