Wie macht man aus einer Batchdatei einen Task-Umschalter?

Wie macht man aus einer Batchdatei einen Task-Umschalter?

Wie macht man aus einer Batchdatei einen Task-Umschalter?

Bei Batchdateien von Windows XP und Windows 7 …
Die Batchdatei lautet:

cls  
@echo off  
echo 1  
start /normal c:\windows\system32\taskmgr.exe  
echo 2  
pause 

Das Problem ist, dass der Fokus auf dem Task-Manager bleibt.
Das Problem ist, dass der Fokus nicht auf dem Batch-Fenster liegt.

Wie bekomme ich den Fokus wieder auf das Batchdateifenster?
Wie stelle ich Aufgaben auf Batch um?

Wie erhält man mithilfe von Batchdateibefehlen den Fokus auf das Batchdateifenster, ohne mit der Maus auf das Batchdateifenster zu klicken und ohne Alt-Tab auf der Tastatur zu drücken?

Antwort1

Starten Sie das Programm minimiert

Um zu verhindern, dass ein aus einer Batchdatei (oder der Eingabeaufforderung) gestartetes Programm den Fokus erhält, starten Sie es minimiert:

start /min /normal c:\windows\system32\taskmgr.exe

Dadurch wird das Programm geöffnet, aber da das Fenster minimiert ist, kann es den Fokus nicht übernehmen.


BEARBEITEN:Das Starten des Task-Managers ist ein Sonderfall. Unabhängig davon, wie Sie dieses Programm starten,stetsübernimmt den Systemfokus.

In diesem Fall können Sie nichts tun. Es ist einfach nicht möglich, den Systemfokus aus einer Batchdatei zurückzufordern. (Denken Sie daran, dass Batch-Skripting aus der Zeit stammt, als es überhaupt keine Anwendungsfenster gab!)

Antwort2

Sie können einfach eineeindeutige Zeitstempelvariableim Batch-Skript und verwenden Sie diese Variable als Wert fürTitelpro jeder Ausführung des Skripts.

Sie können dannappaktivierenÜbergeben Sie den Wert des BefehlsfenstersTitelzu aktivieren, erstellen Sie ein dynamisches VBScript mit dem Wert und führen Sie dieses Script dann aus mitcscriptum es zu aktivieren.

Ich habe es einfach ping -n 06 127.0.0.1 > nulals 5 Sekunden Pause verwendet, um nach der Zeit zu wartenTaskmanagerwird gestartet, bevor das eigentliche Batch-Skript mit dem Titel window aktiviert wird durchcscriptAusführung.

Batch-Skript

cls 

SET t=%~n0_%date:~10%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%
SET t=%t: =0%
TITLE %t%

@echo off  
echo 1  
start /normal c:\windows\system32\taskmgr.exe  
echo 2  

:VBSDynamicBuild
SET TempVBSFile=%temp%\~tmpSendKeysTemp.vbs
IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%"
ECHO Set objShell = CreateObject("WScript.Shell") >>"%TempVBSFile%"
ECHO objShell.AppActivate "%t%"                   >>"%TempVBSFile%"
ping -n 06 127.0.0.1 > nul
CSCRIPT //nologo "%TempVBSFile%"

pause 

Weitere Ressourcen

Antwort3

cls
@echo off

echo 1
start /normal c:\windows\system32\taskmgr.exe

REM Wait for Task Manager to open
    CALL :Wait 1

REM Alt+Tab back to cmd window
    CALL :AltTab

echo 2
pause

GOTO :eof



REM Subroutines:
:wait
    @CHOICE /D Y /T:%1% > NUL
    EXIT /B

:AltTab
    (
        ECHO.CreateObject^("WScript.Shell"^).SendKeys "%%{TAB}"
    )>%tmp%\tmp.vbs
    CALL %tmp%\tmp.vbs
    DEL %tmp%\tmp.vbs
    EXIT /B

Dieser Wille:

  • Echo 1
  • Öffnen Sie den Task-Manager
  • Warten Sie, bis der Task-Manager gestartet ist (1 s)
  • Erstellen, Ausführen und Löschen eines VBS-Skripts, um mit Alt+Tab zum cmd-Fenster zurückzukehren
  • Echo 2
  • Pause

Antwort4

In einer Batchdatei hat das funktioniert, ein paar Mal getestet und funktioniert.
Computer neu gestartet und immer noch getestet und funktioniert.

C:\WINDOWS\nircmd.exe sendkeypress rwin+home

NirCmd v2.81 (Konsolenversion)
http://www.nirsoft.net

Der obige Batch-Befehl ändert den Systemfokus
vom „Windows Task-Manager“
und legt den Systemfokus
auf das Batch-Dateifenster.

Hintergrund:
Batch ausgeführt,
der taskmgr.exe aufruft, und
Batch führt den obigen Befehl
aus. Jetzt wird Batch durch Drücken von Strg+C gestoppt.

Sie müssen nicht mit der Maus auf das Batch-Fenster klicken.
Sie müssen nicht mit Alt+Tab zum Batch-Fenster wechseln.

Der obige einzeilige Batchdateibefehl ändert den Systemfokus.

Nachteil: nircmd.exe ist Software von Drittanbietern
und keine sofort einsatzbereite Lösung.

Referenz
Lassen Sie eine Batchdatei alle Fenster außer sich selbst minimieren ODER aktivieren Sie etwas, das

--

verwandte Informationen