Im Spiel eine Taste drücken

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
thminz
Beiträge: 84
Registriert: 25.05.2011 16:01
Computerausstattung: Windows XP, Intel Pentium 4 mit 3,2 Ghz, 2 GB RAM, 500 GB, ATI Radeon HD 4200
Wohnort: Köln

Re: Im Spiel eine Taste drücken

Beitrag von thminz »

Musst du die Anwendung über den Administrator laufen lassen? Denn wenn dem so ist, musst du deine Anwendung auch unter dem Administratormodus laufen lassen (Compiler-Einstellungen), sonst hast du nicht das "Recht" irgendwelche Ereignisse an das Programm zu senden...
Nein hat auch nicht geklappt. :?
Na, kommen wir dem Problem schon näher?
:(
Man muss mal wieder alles aus der Nase ziehen
Das ist doch total irrelevant es kann auch von mir aus ein CounterStrike Spiel sein. :freak:
Probiers mal, indem du das KEYEVENTF_SCANCODE Flag bernutzt und den Scancode einsetzt. DirectX erwartet nämlich Scancodes, keine VirtualKeys.
Dashabe ich schon gefunden und es klappt nicht. :cry:

Code: Alles auswählen

#WH_KEYBOARD_LL = 13
#INPUT_HARDWARE = 2
#INPUT_KEYBOARD = 1
#KEYEVENTF_UNICODE = $4
#KEYEVENTF_SCANCODE = $8


Global myKeyHook

Structure KBDLLHOOKSTRUCT
vkCode.l
scanCode.l
flags.l
time.l
dwExtraInfo.l
EndStructure

Structure INPUT_DATA
type.l
StructureUnion
mi.MOUSEINPUT
ki.KEYBDINPUT
hi.HARDWAREINPUT
EndStructureUnion
EndStructure

Define *keyInput.KBDLLHOOKSTRUCT
Define ret.l, hwnd.l
Define mkeyInput.KEYBDINPUT
Define InputData.INPUT_DATA


; Hier starte ich das Spiel vorher !!!


Delay(5000)

Inputdata\type = #INPUT_KEYBOARD   
*keyInput = lParam


 
inputdata\ki\wVk= #VK_Q
     

    inputdata\ki\wScan = 0
    inputdata\ki\time = 1000
    InputData\ki\dwExtraInfo = 0  
InputData\ki\dwFlags = #KEYEVENTF_SCANCODE | #KEYEVENTF_KEYUP   

     
     SendInput_(1,InputData, SizeOf(INPUT_DATA))

Es gibt auch noch asm kann man damit vielleicht was machen ? :roll:
Immer Aktuelle Purebasic Version!!
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Im Spiel eine Taste drücken

Beitrag von ts-soft »

Mach was sinnvolles und schreibe Dein Spiel selber, dann hast Du auch volle Kontrolle.
Cheaten, Trainer und so ein Quatsch ist doch Selbstverarschung.
Wichtige Dinge wirste damit auch nicht lernen. Spiele haben nun mal Regeln, wenn man
diese verlässt sollte man das Spielen lieber lassen, aber so etwas lernt man meist bereits im
Kindergarten.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Im Spiel eine Taste drücken

Beitrag von RSBasic »

@thminz
Was hast du denn jetzt überhaupt ausprobiert? Und dein Code, den du gepostet hast, ist auch falsch.
Wie The Shark richtig gesagt hat, musst du Scancodes benutzen. Aber das hast du in deinem Beispielcode nicht gemacht. Du benutzt stattdessen immernoch die VirtualKeys. Es gibt dort in der API-Struktur einen anderen Eintrag für ScanCodes: \wScan
Diesen musst du auch nutzen. Und außerdem ist es schon wichtig, wenn du den Namen des Spiels nennst. Sonst können wir dir überhaupt nicht helfen.
Und wie ts-soft bereits sagte: Mach wirklich was sinnvolles. Erstell doch einfach mal 'ne richtige Anwendung und kein Cheat-Programm. Da hast du mehr Erfolg. ;)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
thminz
Beiträge: 84
Registriert: 25.05.2011 16:01
Computerausstattung: Windows XP, Intel Pentium 4 mit 3,2 Ghz, 2 GB RAM, 500 GB, ATI Radeon HD 4200
Wohnort: Köln

Re: Im Spiel eine Taste drücken

Beitrag von thminz »

ok funktioniert.

Nur die Werte der tasten sind anders aber das krieg ich schon selber raus.
Immer Aktuelle Purebasic Version!!
The Shark
Beiträge: 37
Registriert: 03.03.2011 00:03

Re: Im Spiel eine Taste drücken

Beitrag von The Shark »

Kannst die #PB_Key_ konstanten nehmen, das sollten die Scancodes sein. Sonst holst sie dir von http://www.blitzforum.de/help/Scancodes
Bild
Bild
Antworten