
138701
05.04.2019
Aktives Fenster ermitteln
Hallo zusammen,
Wie kann ich mit Batch ermitteln, welches Programm gerade im Vordergrund läuft?
Wie kann ich mit Batch ermitteln, welches Programm gerade im Vordergrund läuft?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 437276
Url: https://administrator.de/forum/aktives-fenster-ermitteln-437276.html
Ausgedruckt am: 12.05.2025 um 16:05 Uhr
5 Kommentare
Neuester Kommentar

Ein Freitag der Extraklasse 😂😂😂
Was so manch ein perverser mit Batch alles anstellen will 🙃🙃🙃*
An den TO: Gehe 20 Schritte vor und biege hier ab ---v
https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser- ...
Gehe nicht über Los, ziehe keine 100 Mäuse ein und ziehe sofort im Zuchthaus ein .... 🚑🤕
Was so manch ein perverser mit Batch alles anstellen will 🙃🙃🙃*
An den TO: Gehe 20 Schritte vor und biege hier ab ---v
https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser- ...
Gehe nicht über Los, ziehe keine 100 Mäuse ein und ziehe sofort im Zuchthaus ein .... 🚑🤕
Apropos timeout. Damit könnte man zumindest testen was passiert wenn das Batchfenster den Fokus verliert. Ich lass mal noch ein bisschen Batch dabei. Eigentlich Get-Process in PS ...
Steffen
@echo off &setlocal
set foregroundproc=powershell -nop -ep Bypass -c "$c=Add-Type -Name pInv -PassThru -MemberDefinition '[DllImport(\"user32.dll\")]public static extern IntPtr GetForegroundWindow();[DllImport(\"user32.dll\")]public static extern uint GetWindowThreadProcessId(IntPtr hWnd, ref uint processId);';$procid=[UInt32]0;$null=$c::GetWindowThreadProcessId($c::GetForegroundWindow(),[ref]$procid);exit $procid;"
setlocal EnableDelayedExpansion
for /l %%i in () do (
%foregroundproc%
echo PID=!errorlevel!
for /f delims^=^" %%i in ('tasklist /nh /fi "pid eq !errorlevel!" /fo csv') do echo %%i
>nul timeout /t 1 /nobreak
)
Zitat von @138701:
Und wie kann ich es statt als Schleife nur einmal abfragen?
Indem du die FOR /L Schleife um die 3 Zeilen einfach weglässt?Und wie kann ich es statt als Schleife nur einmal abfragen?
Und wenn du statt
echo %%i
ein
set "variablename=%%i"
schreibst, hast du den Name des Prozesses in einer Variablen. Und wenn du die Ausgabe der Prozess ID nicht brauchst, schmeißt du sie eben raus. Was weiß ich ... Das hast du doch selbst durch Ausprobieren 10x schneller geklärt, als hier auf eine Antwort zu warten.
Steffen