CMD in den Vordergrund?
Folgendes Beispiel:
CMD öffnet eine Website, diese verdeckt das CMD Fenster.
Jetzt möchte ich, das ich dieses CMD Fenster in den Vordergrund bringe.
Ist das möglich?
2 Antworten
@echo off
rem möglichst eindeutigen Fenstertitel setzen (nötig um dieses Fenster zu identifizieren)
rem %random ist nicht zwingend nötig, wenn sicher ist, das es kein weiteres Fenster mit gleichem Namen geben könnte
rem Keine Umlaute und Sonderzeichen für Fenstertitel verwenden!
set "WindowTitel=Mein Fenster %random%"
title %WindowTitel%
rem schreibe kleines Script Hilfsscript in den Tempordner welches dieses Fenster in den vordergrund holen kann.
echo var x=new ActiveXObject('WScript.Shell').AppActivate('%WindowTitel%') >"%temp%\%~n0,AppActivate.js"
rem öffne Browser(fenster)
start "" https://www.google.com/
rem Achtung!!! der Browser läuft in eiem parallelen Tread und braucht einen Moment zum starten, solange wird er immerwider in den Vordergrund wollen
rem desshalb 1..2 sekunden warten, bis er fertig sein dürfte...
timeout 1 >nul
rem Hilfsscript ausführen (und damit dieses Fenster in den Vordergrund holen)
cscript //nologo "%temp%\%~n0,AppActivate.js"
echo ja jetzt solle ich im Vordergrund sein
pause
exit /b
das geht auch ohne Fremdprogramme , einfach per Batch und VB/JScript.
Eine wirklich verlässliche Methode gibt es jedoch nicht (auch nicht mit irgendwelchen Fremdprogrammen), das System und die Bedingungen diverser Angezeigter Objekte sind zu komplex geworden um mit vertretbarem Aufwand ein Viewobjekt zu identifizieren.
(Ich hatte auch schon den Fall, das statt des Fensters die Taskleiste und der dortige Eintrag mit dem Fenstertitel das nächstliegende "passende" Objekt war. )
Für den Normalgebrauch sollte das obige recht zuverlässig funktionieren.
ähm🤔...diese Frage hätte ich jetzt nicht von jemanden erwartet, der wohl irgendwas in Batch programmiert...
Natürlich in Batch...
diese Zeile erzeugt das JScript automatisiert im temp-ordner:
echo var x=new ActiveXObject('WScript.Shell').AppActivate('%WindowTitel%') >"%temp%\%~n0.AppActivate.js"
...und diese Zeile führt es zu gegebener Zeit aus:
cscript //nologo "%temp%\%~n0.AppActivate.js"
Tatsächlich programmiere ich nicht! Ich hab nur spaß mit paar commands und wollte mit diesen rumspielen. Trotzdem danke
einfach so nicht, gibt aber Programme dafür die genau das machen
Also muss ich dieses Script in Batch oder VB/JScript einsetzen und nicht in cmd?