Tasten in eine Batch Datei einbinden

LordBRS

Newbie
Registriert
Feb. 2025
Beiträge
3
Hallo erstmal an die gesamte ComputerBase Gemeinschaft.
Da ich nun seit längerem an einer Batch Datei bastele und an meinem Erfolg daran scheiterete, dachte ich mal, ich frag hier ein paar Experten um Ratschläge/Hilfen.
Was will ich machen?

Ich habe mir einen Virtuellen Flipper (Pinball) gebaut und möchte das sich das Program mit meinem gewünschtem Spielfeld automatisch nach dem Hochfahren des PC´s startet.

Vorweg, ich bin habe so gut wie keine Programier Kenntnisse, bin aber gewillt es zu verstehen was ich benötige :)

Ich habe bereits eine Batch Datei erstellt und die Exe File wird geöffnet und der Tisch im Program eingespielt, soweit funktioniert es noch :) Da nun aber Future Pinball auf /play und der gleichen in der Batch Datei nicht reagiert, habe ich herumgesucht und herausgefunden das man mit den Tasten "F4" den Table Launcher und der "Pfeiltaste nach unten" die erste Auswahl treffen kann. Danach Enter und der Tisch lädt!
Manuell funktioniert das superm doch ich möchte dies in meiner Batch Datei einbringen.
Also Spiel starten mit Tisch, F4, Pfeiltaste runter und Enter

So sieht meine Batch Datei im Moment aus :

echo off
Start "" "C:\Games\Future Pinball\Tables\1.fpt" /play /exit
EXIT

Es wird also gleich der Tisch angesprochen und das Program öffnet sich damit.
( Die Batch Datei hab ich kopiert und am Desku verknüpft damit sie als Admin ohne Bestätigung geöffnet werden kann)

Nun bräuchte ich nur noch die Befehle das eben die F4 Taste, danach die Pfeil runter Taste und die Enter Taste virtuell gedrückt werden in der Batch File.

Ich habe auch schon versucht dies einzufügen:

int main()
{
INPUT ip;
ip.type = INPUT_KEYBOARD;
ip.ki.wScan = 0; // HardwareScanKeyCode
ip.ki.time = 0; // Use own time stamp.
ip.ki.dwExtraInfo = 0;
ip.ki.wVk = 0x0D; // virtual-keycode Enter
ip.ki.dwFlags = 0;// 0 = Tastendruck

SendInput(1, &ip, sizeof(INPUT));

// Taste los lassen.
ip.ki.dwFlags = KEYEVENTF_KEYUP;

SendInput(1, &ip, sizeof(INPUT));

return 0;
}

und die tasten die ich brauche wären
VK_F40x73F4-Taste
VK_DOWN0x28PFEIL NACH UNTEN
und
VK_RETURN0x0DEINGABETASTE
Tasten

Nun da das laden inkl. Tisch ca 20 Sekunden dauert, dachte ich das ich dies mit wait(20) und danach den Tasten einbauen kann, aber leider ist es doch komplexer als gedacht :)

Kann mir hier bitte jemand meine Batch Datei ergänzen bzw mich anleiten wie ich das machen kann, das dies auch funktioniert?
Ich danke recht herzlich im voraus für eure Bemühungen und wünsch euch allen nen schönen Abend, LG Bruno aus Österreich
 
  • Gefällt mir
Reaktionen: wickedgonewild
Normalerweise beantwortet dir so etwas jede KI aus dem Stand. Nun will ich den Forenmitglieder*innen nicht die Freude nehmen, hier zu antworten, daher mein Beitrag (aus dem 03-mini llm, natürlich ungeprüft, da ich das Spiel nicht habe) im Spoiler. Script als Admin ausführen.

Code:
@if (@CodeSection==@Batch) @then
@echo off
rem Starte Future Pinball und lade den Tisch
start "" "C:\Games\Future Pinball\Tables\1.fpt" /play /exit

rem Warte ca. 20 Sekunden, bis der Tisch geladen ist (ggf. anpassen)
timeout /t 20 /nobreak >nul

rem Definiere den Befehl zum Aufrufen des eingebetteten JScript
set SendKeys=CScript //nologo //E:JScript "%~F0"

rem Sende die Tastendrücke in der gewünschten Reihenfolge:
%SendKeys% "{F4}"    rem F4 betätigen
timeout /t 1 /nobreak >nul
%SendKeys% "{DOWN}"  rem Pfeiltaste nach unten
timeout /t 1 /nobreak >nul
%SendKeys% "{ENTER}" rem Enter-Taste
exit /b
@end
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));
 
  • Gefällt mir
Reaktionen: LordBRS
Danke für die raschen Antworten und danke dir "wickedgonewild", es funktioniert so! LG
 
  • Gefällt mir
Reaktionen: wickedgonewild
So, nun bin ich wieder hier. Entweder ich bin total beklopft oder Windows is einfach nur der letzte Dreck dens gibt.
Mal vorweg, die Batch Datei die für mich umgetippt hast @wickedgonewild , funktioniert super, ich klicke drauf als Admin und es macht alles was es soll.

Nun aber verhält es sich so, das dies ja im Autostart sein soll weil sich der Flipper ja nach dem Starten des Pc´s laden soll und spielfertig ist. Geht nicht :)
Die Originale Patch Datei in beide Autostarts gelegt (gibt ja leider 2 Ordner und ich weis ned welcher für Windoof entscheidend ist) also durch probiert....geht ned, warum? Keine Admin Rechte, startet nicht.
Nun denn, dann die Patch Datei beim Flipper (Ordner) verlassen, Verknüpfung erstellt und diese eingefügt in den Autostart Ordner, Adminrechte zugewiesen für alle Benutzer....Neustart....NIX! Kein Autostart :(
Okay im Netz nachgelesen, da meinte jemand das nur eine EXE bzw. Anwendungsdatei aus dem Autostart gestartet werden kann (kam mir paradox vor aber bitte, n versuch is es wert)
Ich kurzerhand schnell mal Multimedia Fusion installiert, nen Hg gemacht, der File gesagt wenn ich den Mittleren Mausbutton drücke wenn geöffnet, dann die Batch Datei ausführen....Datei erstellen, fertig...
Datei runter zum Flipper, kopiert und getestet, geht nicht im Autostart und auch nicht als Verknüpfung. Mit rechter Maustaste als Admin funktionierts super, start, ich klicke Mittlere Maustate, Batch Datei öffnet sich und lädt den Tisch spielfertig. Aber nicht im Autostart!?

Um Missverständnisse zuvor aus dem Weg zu räumen, ich habe es bei beiden Ordner den es für Autostart gibt mit der Original sowie auch der Verknüpfung als Admin asführen versucht.

Die Ordner sind
C:Benutzer/Flipper/AppDate/Roaming/Microsoft/Windows/Startmenü/Programme

so wie auch

C:Benutzer/Default/AppData/Roaming/Microsoft/Windows/Start Menu/Programs

Wenn die File im Default Autostart liegt, wird sie mir im Task Manager angezeigt, egal ob Original oder Verknüpfung. Aber startet dennoch nicht. Ich habe auch versucht die Rechte unter dem Reiter Sicherheit zuzulassen für jeden angeführten Benutzer, Die Adminrechte sowieso für alle Anweder auch versucht, den Kompitablitätsmodus von Win7 bis Winxp Sp3 umzustellen.....es geht verdammt nochmal nicht :)

Bitte dagt mir was ich falsch mache?

Zusammengefasst, schmeiss ich die Batch in die Autostarts, öffnet sich diese, öffnet aber den Tisch nicht weil keine Adminrechte, kann ich im Original auch nicht zuordnen, in der Verknüpfung mit Adminrechten startet nix.
ICH DANKE RECHT HERZLICH FÜR DIE HILFEN, LG
Ergänzung ()

Ich hab hier im Forum einen Beitrag gefunden in dem jemand eine batch Datei als Admin ausführen will.
Ich habe kein Passwort auf dem Flipper PC da er nur Offline genutzt wird und nur für den Flipper da ist.
Darum dachte ich mir, ich nehme mir den Teil fürn Admin raus und versuchs damit:
@if (@CodeSection==@Batch) @then
@echo off
rem erteilt der Batch Datei Admin Rechte
if not "%1"=="am_admin" (powershell start -verb runas '%0' am_admin & exit /b)
rem Starte Future Pinball und lade den Tisch
start "" "C:\Games\Future Pinball\Tables\1.fpt" /play /exit

rem Warte ca. 20 Sekunden, bis der Tisch geladen ist (ggf. anpassen)
timeout /t 20 /nobreak >nul

rem Definiere den Befehl zum Aufrufen des eingebetteten JScript
set SendKeys=CScript //nologo //E:JScript "%~F0"

rem Sende die Tastendrücke in der gewünschten Reihenfolge:
%SendKeys% "{F4}" rem F4 betätigen
timeout /t 1 /nobreak >nul
%SendKeys% "{DOWN}" rem Pfeiltaste nach unten
timeout /t 1 /nobreak >nul
%SendKeys% "{ENTER}" rem Enter-Taste
exit /b
@end
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));
Ich muss das mal testen gehn :)
Ergänzung ()

So, habs mal getestet, die Ori Batch in den Autostart rein, Neustart und es funktioniert. Zwar hab ich nun meinen schönen HG nicht mehr (Exe von zuvor) aber wenigstens funktioniert es, nur noch Pc einschalten, kurz warten und der Tisch wird spielfertig geladen, danke meine lieben und gutes Nächtle, LG
 
Zuletzt bearbeitet:
Zurück
Oben