CMD in den Vordergrund?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
@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.

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren
verreisterNutzer  27.01.2021, 21:12

Also muss ich dieses Script in Batch oder VB/JScript einsetzen und nicht in cmd?

0
Erzesel  28.01.2021, 15:12
@verreisterNutzer

ä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"
0
verreisterNutzer  28.01.2021, 16:48
@Erzesel

Tatsächlich programmiere ich nicht! Ich hab nur spaß mit paar commands und wollte mit diesen rumspielen. Trotzdem danke

0