| Autor |
Beitrag |
Timi-loader
      
Beiträge: 58
Win XP
Delphi 7 Personal
|
Verfasst: Fr 15.09.06 18:14
hallo
unzwar habe ich bereits ein schon gut funktionierendes programm geschrieben, was (nebenbeibemerkt vom handy) signale empfängt und ebened zu tastendrücken macht.. bzw daraufhin dann ebend tastendrücke erstellt...
nun habe ich alölerdings das problem, dass diese jetzige art nicht immer funktioniert... also z.b. hätte ich gern, dass es auch mit meinem n64-emlator geht (projekt64) dieser ignoriert aber meine so erzeugten virtual keys... echte tastendrücke klappen aber...
also gibt es noch eine bessere möglichkeit die mehr abdeckt als keybd_event(); ?
mfg
timi-loader
|
|
F34r0fTh3D4rk
      
Beiträge: 5285
Erhaltene Danke: 28
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Fr 15.09.06 18:35
project64 wird das wohl direkt vom treiber abfragen, deshalb wirst du net darum rumkommen einen treiber zu schreiben und das geht nur mit c++.
mfg
|
|
Timi-loader 
      
Beiträge: 58
Win XP
Delphi 7 Personal
|
Verfasst: Fr 15.09.06 18:37
und gibt es nicht vielleicht irgendwo sonen treiber fertig?.. als dll oder so?
mfg
|
|
uall@ogc
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Fr 15.09.06 18:39
Project64 wird es kaum mit einem Treiber machen. Denk mal die Abfrage wird über DirectInput gemacht. Kann aber nichts garantieren.
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
Timi-loader 
      
Beiträge: 58
Win XP
Delphi 7 Personal
|
Verfasst: Fr 15.09.06 18:50
öhm jo.. also da in dem project64 sekbst kann man auch verschiedene kontrollerplugins auswählen.. also 3 aber 1 geht nicht.. un beide anderen 2 heißen schon was mit directinput .. aloso gibts ne möglichkeit das zu verfälschen? also zu erzeugen?
edit: hab festgestellt diese plugins sind sogar dlls .. kann man die nicht irgendwie nutzen oder umprogrammieren?
|
|
uall@ogc
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Fr 15.09.06 18:58
hast du mal GetKeyboardState und SetKeyboardState versucht?
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
Timi-loader 
      
Beiträge: 58
Win XP
Delphi 7 Personal
|
Verfasst: Fr 15.09.06 19:20
kannst du mir kurz sagen wie ich das anwende?.. und braucht das was anderes noch inner uses?
edit.. ok habs kurzmal so getestet: Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.Button1Click(Sender: TObject); var keyState :TKeyboardState; begin keyState[VK_UP] := 0; SetKeyboardState(KeyState); end;
procedure TForm1.Button2Click(Sender: TObject); var keyState :TKeyboardState; begin keyState[VK_UP] := 1; SetKeyboardState(KeyState); end; |
das funktioniert aber rein garnicht.. nichtmal im windows-explorer oder so..
|
|
loetmann
      
Beiträge: 29
Delphi 3
|
Verfasst: Fr 15.09.06 22:09
Hallo,
für Keaysenden nutze ich folgendes:
Delphi-Quelltext 1: 2: 3: 4: 5:
| procedure sendKeytoapp(apphnd: Hwnd;key:integer); begin PostMessage(apphnd, WM_KEYDOWN, key, 0); PostMessage(apphnd, WM_KEYUP , key, 0); end; |
apphnd ist das Handel des Programmes welches den Key erhalten soll.
ein Gruß
LM
Moderiert von Christian S.: Code- durch Delphi-Tags ersetzt
|
|
Timi-loader 
      
Beiträge: 58
Win XP
Delphi 7 Personal
|
Verfasst: Sa 16.09.06 08:20
habs probiert.. mit postmessage gehts auch nicht... also das teil ansich geht, wenn ich z.b. oben das menü bediene und dann (per timer zum test) das proggi sonen key sendet registriert er ihn .. aber in der emulation selbst nicht..
mfg
|
|
F34r0fTh3D4rk
      
Beiträge: 5285
Erhaltene Danke: 28
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Sa 16.09.06 11:39
ich sag dir, dass das mit Autohotkey geht und der macht das afaik auf Treiberbasis
|
|
Timi-loader 
      
Beiträge: 58
Win XP
Delphi 7 Personal
|
Verfasst: Sa 16.09.06 22:29
hmz... da muss ich dir leider sagen.. nein funzt auch nicht... also hab mir das proggi geloadet und auch ein einfaches script erstellt was aus einen alt+u ein {up} machen sollte... und dann hab ichs getestet.. inner normalen windows-umgebund geht es wie immer.. inner emlation direkt nicht
schade...
mfg
edit: also ich habe jetzt mal ALLE controllerplugins zu project64 die ich finden konnte ausprobiert... fazit: mit vkeys kommen nur die beiden simpelsten klar.. und diese können beide nur einen internen controller.. also ist kein multiplayer mehr drinn bei emulation.. und das ist das worum es mir ja als einzigstes ging.. hmz :-/
|
|
Timi-loader 
      
Beiträge: 58
Win XP
Delphi 7 Personal
|
Verfasst: Sa 23.09.06 10:46
sooo^^
unzwar habe ich nach langem weiteren suchen schließlich bei swissdelpi was gefunden.. also dort stand es mehr so nebenbei auch drinn..
unzwar fehlte mir der 3. parameter in der funktion keybd_event der muss KEYEVENTF_EXTENDEDKEY sein damit es klappt... also vielleicht wusstet ihr das und dachtet ich wusste es auch aber nein ich wusste es nicht.. und in vielen threads wird das auch einfach totgeschwiegen...
also keydown: keybd_event(38, MapvirtualKey(38, 0), KEYEVENTF_EXTENDEDKEY, 0);
und keyup: keybd_event(38, MapvirtualKey(38, 0), KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
..njo und 38 steht dabei für die hochtaste der pfeiltasten
..und diese sache geht dann auch in allen games (die ich getestet hab) ..also nfsu2 und project64 (n64-emulator)
..also wird mein btswitcher bald auch games supporten können dann in der nächsten version (2.0)..
(download dann auch unter www.tlp.here.de)
mfg
und trotzdem thx ^^
Zuletzt bearbeitet von Timi-loader am Mo 25.09.06 21:47, insgesamt 1-mal bearbeitet
|
|
F34r0fTh3D4rk
      
Beiträge: 5285
Erhaltene Danke: 28
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Sa 23.09.06 13:32
Timi-loader hat folgendes geschrieben: | sooo^^
unzwar habe ich nach langem weiteren suchen schließlich bei swissdelpi was gefunden.. also dort stand es mehr so nebenbei auch drinn..
unzwar fehlte mir der 3. parameter in der funktion keybd_event der muss KEYEVENTF_EXTENDEDKEY sein damit es klappt... also vielleicht wusstet ihr das und dachtet ich wusste es auch aber nein ich wusste es nicht.. und in vielen threads wird das auch einfach totgeschwiegen...
also keydown: keybd_event(38, MapvirtualKey(38, 0), KEYEVENTF_EXTENDEDKEY, 0);
und keydown: keybd_event(38, MapvirtualKey(38, 0), KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
..njo und 38 steht dabei für die hochtaste der pfeiltasten
..und diese sache geht dann auch in allen games (die ich getestet hab) ..also nfsu2 und project64 (n64-emulator)
..also wird mein btswitcher bald auch games supporten können dann in der nächsten version (2.0)..
(download dann auch unter www.tlp.here.de)
mfg
und trotzdem thx ^^ |
du meintest wohl up ^^
|
|
Timi-loader 
      
Beiträge: 58
Win XP
Delphi 7 Personal
|
Verfasst: Mo 25.09.06 21:48
steht doch da 
|
|
F34r0fTh3D4rk
      
Beiträge: 5285
Erhaltene Danke: 28
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Di 26.09.06 14:15
ja jetzt 
|
|