Register for your free account! | Forgot your password?

Go Back   elitepvpers > General Gaming > General Gaming Discussion
You last visited: Today at 22:15

  • Please register to post and access all features, it's quick, easy and FREE!

 

Warhammer Online / Taste Simulieren / Vb.Net

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Oct 2008
Posts: 7
Received Thanks: 0
Warhammer Online / Taste Simulieren / Vb.Net

Hallo alle zusammen,


ich verzweifel momentan daran, an dem versuch erfolgreich eine Taste an das Spiel „Warhammer Online“ zu senden.

Ich habe es mit allen Möglichkeiten versucht die ich im Internet finden konnte → Ich konnte hier im Forum einen Beitrag finden, wie es eigentlich funktionieren sollte:

Link:



Hier mal ein kleiner Ausschnitt:

Quote:
Hi folks,

usually I am not releasing my stuff. But here is a small hint for "do it yourself" people, how to simulate keystrokes for Warhammer Online.

The usual way to do that via Postmessage or kbdevent does NOT work here, because Warhammer is a DirectInput game.

It cost me some hours to figure out a proper but easy way how to do it:


INPUT input;
memset(&input,0,sizeof(INPUT));
input.type=INPUT_KEYBOARD;
input.ki.wScan =DIKEYBOARD_1; // direct-input scancode for key '1'
if(press_key) input.ki.dwFlags=0;
else input.ki.dwFlags=KEYEVENTF_KEYUP;
SendInput(1,&input,sizeof(INPUT));


This example will properly work for XT and Vista.
The trick is simply NOT to use VK_'s, but the lower 16 bits of DirectX scancodes. Try to google for DIKEYBOARD_1 and you will find them all.

Have Fun with it.

apollo

PS: It seems to be hard to find the right one, so I post those scancodes here:

#ifndef DIRECT_X_KEYS_HPP_DEFINED
#define DIRECT_X_KEYS_HPP_DEFINED

#define DIKEYBOARD_ESCAPE 0x0401 //
#define DIKEYBOARD_1 0x0402 //
#define DIKEYBOARD_2 0x0403 //
#define DIKEYBOARD_3 0x0404 //
Da ich der sprache C / C++ leider nicht mächtig bin, habe ich das ganze in Vb.Net Versucht:

Code:
Option Explicit Off

Public Class Form1


    Private Declare Function SendInput Lib "user32.dll" (ByVal cInputs As Long, ByRef pInputs As MyInput, ByVal cbSize As Long) As Long

    Private Structure KEYBDINPUT
        Dim wVk As Integer
        Dim wScan As Long
        Dim dwFlags As Long
        Dim time As Long
        Dim dwExtraInfo As Long
        Dim unused1 As Long
        Dim unused2 As Long
    End Structure

    Private Structure MyInput
        Dim Type As Long
        Dim ki As KEYBDINPUT
    End Structure

    Private Const KEYEVENTF_KEYUP As Long = &H2
    Private Const INPUT_KEYBOARD As Long = 1
    Private Const DIKEYBOARD_1 As Long = &H402 '0x0402


    Private Sub Form_Load()

        Dim inp As MyInput

        inp.Type = INPUT_KEYBOARD
        inp.ki.wScan = DIKEYBOARD_1
        If Not press_key Then
            inp.ki.dwFlags = KEYEVENTF_KEYUP
        End If

     SendInput(1, inp, Len(inp))

    End Sub
End Class
Leider passiert genau nichts – Hat jemand vielleicht noch eine Idee (wenn mögich in Vb.Net) was an diesem Code falsch ist oder eine andere möglichkeit?

Ein Beispiel in Vb.Net wäre super.

Hoffe jemand kann mir helfen - Danke voraus



Micha01 is offline  
Old   #2


 
elite*gold: 7
Join Date: Aug 2008
Posts: 6,786
Received Thanks: 4,930
#moved to warhammer section


Cholik is offline  
Old   #3
 
elite*gold: 0
Join Date: Oct 2008
Posts: 7
Received Thanks: 0
Hallo,

hat keiner eine Idee hier? Irgendiwe müssen doch alle "Bots" ihre Tasten Simulieren.

Ich hab inzwischen auch folgendes versucht:

Code:
    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

    Private Const KEYBOARD_1 As Byte = &H49
    Private Const KEYEVENTF_KEYUP As Byte = &H2


    Public Sub KeySend()

        keybd_event(KEYBOARD_1, 0, 0, 0)
        keybd_event(KEYBOARD_1, 0, KEYEVENTF_KEYUP, 0)

    End Sub
Aber natürlich auch ohne erfolg!
Micha01 is offline  
Old   #4
 
elite*gold: 0
Join Date: Nov 2007
Posts: 83
Received Thanks: 33
HMm mit autoIT ist das ganz easy.
send("2")
Funzt in War aber nur wenn war aktiv ist


Pwneres is offline  
Old   #5
 
elite*gold: 0
Join Date: Oct 2008
Posts: 7
Received Thanks: 0
Hallo,

leider funktioniert es mit der Vb.Net eigene Funktion:

Code:
SendKeys.Send("1")
auch nicht. Habe inzwischen auch versucht per Googel zu erfahren wie Autoit die Tasten Simuliert aber auch ohne erfolg!

Keiner eine Idee?

Wäre auch schon hilfreich wenn es ein Open Source Programm geben wird, welches in Warhammer eine Taste sendet (egal welche Sprache).
Micha01 is offline  
Old   #6
 
elite*gold: 0
Join Date: Dec 2004
Posts: 119
Received Thanks: 42
Bin mir nicht sicher, aber bei

Private Declare Function SendInput Lib "user32.dll" (ByVal cInputs As Long, ByRef pInputs As MyInput, ByVal cbSize As Long) As Long

könnte die falsche Deklaration vielleicht sein. Da steht Long als parameter Typ und in der MSDN steht

UINT SendInput(
UINT nInputs,
LPINPUT pInputs,
int cbSize
);

also UINT (unsigned integer, normalerweise 32 Bit Wert) während Long (Entspricht Int64 in .NET) ein 64 Bit Wert ist. Solltest mal vielleicht UInteger als Wert statt Long versuchen
Desy is offline  
Old   #7
 
elite*gold: 0
Join Date: Oct 2008
Posts: 7
Received Thanks: 0
Hallo,

danke für deinen Tipp - Aber leider funktioniert es nicht!

Hat vielleicht jemand noch eine Idee -> Mir würde auch ein Sourc (egal welche Sprache) schon sehr viel weiterhelfen.

Danke im voraus
Micha01 is offline  
Old   #8
 
elite*gold: 504
Join Date: May 2009
Posts: 1,568
Received Thanks: 725
Quote:
Originally Posted by Pwneres View Post
HMm mit autoIT ist das ganz easy.
send("2")
Funzt in War aber nur wenn war aktiv ist
So^^ mit Visual basic heißt es Sendkeys.Send("{2}")

Das war doch deine Frage oder?

Das geht mit eig. allen tasten^^
auch

Sendkeys.Send("{ENTER}") u.s.w
Reextion is offline  
Old   #9
♥ Yuuki Asuna ♥

 
elite*gold: 9516
The Black Market: 138/0/0
Join Date: Jun 2005
Posts: 49,537
Received Thanks: 7,552
Der letzte Post ist über 1 Jahr alt.... oO


DarkOPM is online now  
Reply



« Previous Thread | Next Thread »

Similar Threads
Warhammer Online: AoR
Hey people, Me and a friend were interested in trying out this game, but we didn't want to go out and buy the game cold turkey, since it'd be...
7 Replies - General Gaming Discussion
[VB6/c++]Taste simulieren ohne sendkey?
Gibts ne Möglichkeit nen tastendruck zu simulieren ohne sendkey?
4 Replies - C/C++



All times are GMT +1. The time now is 22:15.


Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Abuse
Copyright ©2017 elitepvpers All Rights Reserved.