AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tastatur Eingabe emulieren

Ein Thema von R600 · begonnen am 11. Mai 2011 · letzter Beitrag vom 19. Jul 2011
Antwort Antwort
R600

Registriert seit: 27. Apr 2011
5 Beiträge
 
#1

Tastatur Eingabe emulieren

  Alt 11. Mai 2011, 21:10
Hallo,
vor folgendem Problem stehe ich.
Ich möchte eine eine Taste z.b. " q " über ein Gamepad als Tastatur Eingabe emulieren.
Das ganze wollte ich mit dem programm Xpadder realisieren. Funktioniert sogar.
Jedoch funktioniert es nicht im Spiel " You dont Know Jack "...

Ich vermute das das spiel eine art Key Hook benutzt und die Tasten abfängt.
Vielleicht hat jemand eine Idee wie ich mit Delphi vor diesen Key Hook komme bzw erfahrungen ? Irgendwie muss es ja gehen :/

danke im vorraus für jeden tip

mfg
  Mit Zitat antworten Zitat
madtom

Registriert seit: 24. Feb 2005
Ort: Hamburg
115 Beiträge
 
Delphi XE7 Professional
 
#2

AW: Tastatur Eingabe emulieren

  Alt 11. Mai 2011, 21:46
Hallo R600,

ich kenne das Spiel nicht, aber vielleicht kann man ja die Tastatureingabe "faken", etwa so:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  hNotepad: HWND;
begin
  hNotepad := FindWindow('notepad', nil);
  if hNotepad <> 0 then
  begin
    SetForegroundWindow(hNotepad);
    Sleep(250);
     // Drop down &Bearbeiten (Edit) menu in the "german" Notepad
    keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), 0, 0);
    keybd_event(Ord('B'), MapVirtualKey(Ord('B'), 0), 0, 0);
    keybd_event(Ord('B'), MapVirtualKey(Ord('B'), 0), KEYEVENTF_KEYUP, 0);
    keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), KEYEVENTF_KEYUP, 0);
    ...
Beste Grüße
Thomas
  Mit Zitat antworten Zitat
R600

Registriert seit: 27. Apr 2011
5 Beiträge
 
#3

AW: Tastatur Eingabe emulieren

  Alt 19. Jul 2011, 06:53
Hallo madtom,
Danke für deine antwort und SORRY das ich so spät antworte. Leider war ich in der Klausurenphase und hab mich gestern in der Nacht wieder an mein Projekt gesetzt und dein Post
gesehen.

Ich hab jetzt mal mit "uispy" das Spiel untersucht.
Es existiert ein Fenster das so heisst wie das Spiel,
und es hat eine HandleID:

ClassName: "ThunderRT6FormDC"
ControlType: "ControlType.Window"

Da drin befindet sich ein Bereich mit einem Adobe Flash Objekt auch mit einer HandleID:

ClassName: "MacromediaFlashPlayerActiveX"
ControlType: "ControlType.Pane"

Jedoch haben beide kein Keyboard Focus laut spy...
Versucht habe ich es mit :

keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), 0, 0);
und
SendMessage(fHandle, WM_CHAR, Ord(fText[i]), 0);

Es funktioniert aber trotzdem nicht :/
Mit dem Notepad Editor z.b. funktioniert es ohne probleme.
Es muss doch irgendwie eine möglichkeit geben das ich dieses Fenster richtig ansteuern kann.
Mit Programmen wie "Xpadder" oder autoklick funktioniert es leider auch nicht. Ich vermute mal weil es sich um ein primitives Flash handelt. Aber grad dann müßte es doch einfach anzusprechen sein. Ich hab grad mal 3 Stunden geschlafen weil es mich irre macht und ich weiterhin nach einer lösung suche.
Vielleicht hat noch jemand ein guten tip ?

mfg
r600
  Mit Zitat antworten Zitat
R600

Registriert seit: 27. Apr 2011
5 Beiträge
 
#4

AW: Tastatur Eingabe emulieren

  Alt 19. Jul 2011, 07:35
Ich poste mal die Properties komplett vom uispy :
Vielleicht sieht jemand was, was ich nicht sehe.
Aufgefallen ist mir das das Fenster ein Control-Pattern
besitzt:
Code:
 WindowInteractionState:   "ReadyForUserInteraction"
Der Flash Bereich besitzt den nicht. Ich weiß aber nicht ob
das relevant ist oder nicht :/
Den egal wohin ich den Tastendrucksende. Er kommt anscheind nicht an :/

mfg


Vom "Fenster" "-=You Don't Know Jack 4=-"
Code:
AutomationElement
  General Accessibility
    AccessKey:              ""
    AcceleratorKey:      ""
    IsKeyboardFocusable:  "False"
    LabeledBy:              "(null)"
    HelpText:              ""

  State
    IsEnabled:              "True"
    HasKeyboardFocus:      "False"

  Identification
    ClassName:            "ThunderRT6FormDC"
    ControlType:      "ControlType.Window"
    Culture:              "(null)"
    AutomationId:      ""
    LocalizedControlType: "Fenster"
    Name:              "-=You Don't Know Jack 4=-"
    ProcessId:              "284 (_YDKJ Germany)"
    RuntimeId:              "42 199388"
    IsPassword:              "False"
    IsControlElement:      "True"
    IsContentElement:      "True"

  Visibility
    BoundingRectangle:      "(0, 0, 640, 480)"
    ClickablePoint:      "(null)"
    IsOffscreen:      "False"

  Misc
    NativeWindowHandle:   "199388"
    ItemType:              ""
    Orientation:      "None"
    FrameworkId:      "Win32"
    IsRequiredForForm:      "False"
    ItemStatus:              ""

ControlPatterns
  Window
    CanMaximize:      "True"
    CanMinimize:      "True"
    IsModal:              "False"
    WindowVisualState:      "Normal"
    WindowInteractionState: "ReadyForUserInteraction"
    IsTopmost:              "False"

Vom "Bereich" ""
Code:
AutomationElement
  General Accessibility
    AccessKey:              ""
    AcceleratorKey:      ""
    IsKeyboardFocusable:  "False"
    LabeledBy:            "(null)"
    HelpText:              ""

  State
    IsEnabled:              "True"
    HasKeyboardFocus:      "False"

  Identification
    ClassName:              "MacromediaFlashPlayerActiveX"
    ControlType:      "ControlType.Pane"
    Culture:              "(null)"
    AutomationId:      "78318272"
    LocalizedControlType: "Bereich"
    Name:              ""
    ProcessId:              "284 (_YDKJ Germany)"
    RuntimeId:              "42 264898"
    IsPassword:              "False"
    IsControlElement:      "True"
    IsContentElement:      "True"

  Visibility
    BoundingRectangle:      "(0, 0, 640, 480)"
    ClickablePoint:      "(null)"
    IsOffscreen:      "False"

  Misc
    NativeWindowHandle:   "264898"
    ItemType:              ""
    Orientation:      "None"
    FrameworkId:      "Win32"
    IsRequiredForForm:    "False"
    ItemStatus:              ""
  Mit Zitat antworten Zitat
R600

Registriert seit: 27. Apr 2011
5 Beiträge
 
#5

AW: Tastatur Eingabe emulieren

  Alt 19. Jul 2011, 12:14
Ich bin jetzt ein großen Schritt weiter :

Anscheind lag das Problem daran, das dass Spiel groß Buchstaben als eingabe erwartet.
Da ich es intervall mäßig immer unterschiedlich ausprobiert habe funktionierte es heute plötzlich...

Vielleicht wenn mal jemand so ein ähnliche Problem hat!

mfg
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz