Windows Bat Datei die eine Taste Drückt?

3 Antworten

Allerdings nutzt es Dir herzlich wenig, wenn Du nicht weißt wohin die Tasten gesendet werden...

hier eine Kleine Demo die sehr wohl weiß wohhin sie die Tastendrücke sendet...

SendkeyDemo.cmd

@echo off

  rem zur Demo:
  rem erzeuge  eine leere Textdatei 
(call)>"meine Datei.txt"
  rem öffne Diese im Notepad
start "" notepad "meine Datei.txt"
  rem Title des Zielfensters
set "WindowNameToActivate=meine Datei.txt - Editor"
  rem kleines JScript, welches in der Kommandozeile übergebene Zeichenfolgen  an ein  Fenster mit der zuvor festgelegten Überschrift sendet...
echo WScript.Sleep(10);var t='';for (var i = 0; i ^< WScript.Arguments.Length;i++){t=t+WScript.Arguments(i)} ;WshShell=new ActiveXObject("WScript.shell");WshShell.AppActivate('%WindowNameToActivate%');WshShell.Sendkeys(t) >"%temp%\sendkey.js"
  rem makro erzeugen (eleichtert den Aufruf)
set "sendKeys=cscript /nologo "%temp%\sendkey.js" "

  rem etwas Zeit zum öffnen geben
timeout 1 >nul
%sendKeys% "1|0|c|d|efghijklmnopqrstuvwxyz" {Enter} "blu mup" {Enter} mmahhhh murks
  rem weiterschreiben
%sendKeys% {Enter} "Weiter geht's"
  rem mal ein paar Zeiln füllen damit wir  etwas "Fleisch"  zum Scrollen  bekommen
for /l %%a in (1,1,100) do  %sendKeys% {Enter} "%%a Mississippi"
  rem 2 sekunden Luft holen...
timeout 2 >nul


  rem lass uns 5 mal Deine  PGUP-Taste senden
for /l %%a in (1,1,5) do %sendKeys% {PGUP}
  rem und  etwas  schreiben 
%sendKeys% "  Hallo ich habe  automatisch gescrolt"
%sendKeys% {UP} {HOME} "eine hoch und an den Anfang "


  rem Speichern? ( achtung in Batch  müüsen %-Zeichen ,die als Textzeichen verwendet werden sollen, verdoppelt werden)
%sendKeys% %%{F4}
echo alles gesendet....
pause

Sondertasten-Tabelle:

https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/sendkeys-statement#remarks

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

Ein Programm kann keine "Taste Drücken".

Ein Programm kann höchstens ein Signal erzeugen, daß signalisiert, daß eine bestimmte Taste gedrückt wurde (key stroke event). Dazu muss es aber wissen, wohin es das Signal senden soll.

Batch kann das allerdings nicht.

AutoHotkey z.B. kann das.

Da hatte ich doch im vorigen Jahrtausend einmal etwas ...