Laden...

Tastendruck an Spiel senden

Letzter Beitrag vor 11 Jahren 3 Posts 2.473 Views
Thema geschlossen
Tastendruck an Spiel senden

Hallo,

ich probiere schon die ganze Zeit herum, bekomme es aber nicht so wirklich hin. Jedem sollte die SendKeys.Send Methode bekannt sein. Wie man das begehrte Fenster in den Fokus holt bekomme ich auch hin. Zum Test nahm ich Firefox. Mit einem Klick auf einen Button meiner Anwendung konnte ich das Firefox Fenster in den Vordergrund holen und die Taste "F11" senden. Klappt alles wunderbar.

Nun brauche ich dies aber nicht auf Desktopebene, sondern möchte ich Tasten an ein Spiel senden.
Vielleich nicht jedem bekannt aber echt Klasse. X3 Terran Conflict oder X3 Albion Prelude.

Mache ich das ganze nun mit dem Fensterhandle des Spiels, passiert rein gar nicht. Habe das ganze dann alternativ mit keybd_event

 static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);

versucht. Aber ebenfalls nicht funktionsfähig.

Kann es sein, dass das Spiel die Tasten direkt vom Tastaturtreiber abfängt und simulierte Tasten nicht akzeptiert?
Damit versuche ich das, vielleicht habe ich auch einen Fehler 😕


int ID = 0;
Process[] processes = Process.GetProcessesByName("X3AP");

foreach (Process p in processes)
{
    ID = p.Id;                
}

IntPtr MainHandle = Process.GetProcessById(ID).MainWindowHandle;
SetForegroundWindow(MainHandle);

//SendKeys.Send("Q");
keybd_event(VK_Q, 0x45, 0, 0);
keybd_event(VK_Q, 0x45, KEYEVENTF_KEYUP, 0);

Wäre super, wenn jemand einen Tipp für mich hätte.

Versuchs in window mode das sollte gehen 😄

Real programmers don't comment their code - it was hard to write, it should be hard to understand.

Hallo Trekki1990,

auch wenn der Beitrag an sich gut geschrieben, wäre er doch gar nicht erst nötig gewesen, siehe z.B. Forumssuche nach Tastendruck an Spiel senden, also der Titel deines Threads 1:1 als Suchbegriff.

Oder nur wenig schwieriger zu erdenken: Forumssuche nach sendkeys spiel.

Und mit dem Wissen aus diesen Thtreads auch Forumssuche nach sendkeys directx oder Forumssuche nach sendkeys directinput.

herbivore

Thema geschlossen