Results 1 to 3 of 3
  1. #1
    spide1123's Avatar
    Join Date
    Sep 2012
    Gender
    male
    Posts
    1
    Reputation
    10
    Thanks
    0

    VB.NET Windows Forms SendInput to Battlefield3

    Hi, so what I want to do is to open console from Battlefield3 and type some things, for example when i press NumPad0 i want to : open console then type /ban ; NumPad1 : open console and type /nuke ru and send {ENTER}

    Here is my conde :

    Code:
    Option Explicit On
    Imports System.Runtime.InteropServices
    
    Public Class Form1
     Public Const MOD_ALT As Integer = &H1 'Alt key
        Public Const WM_HOTKEY As Integer = &H312
     <DllImport("User32.dll")> _
        Public Shared Function RegisterHotKey(ByVal hwnd As IntPtr, _
                            ByVal id As Integer, ByVal fsModifiers As Integer, _
                            ByVal vk As Integer) As Integer
        End Function
        <DllImport("User32.dll")> _
        Public Shared Function UnregisterHotKey(ByVal hwnd As IntPtr, _
                            ByVal id As Integer) As Integer
        End Function
    
        Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
        Private Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Integer
        '
        <DllImport("user32.dll")> _
    Private Shared Function SendInput( _
    ByVal nInputs As Integer, _
    ByVal pInputs() As INPUT, _
    ByVal cbSize As Integer) As Integer
        End Function
        <StructLayout(LayoutKind.Explicit)> _
        Private Structure INPUT
            'Field offset 32 bit machine 4
            '64 bit machine 8
            <FieldOffset(0)> _
            Public type As Integer
            <FieldOffset(8)> _
            Public mi As MOUSEINPUT
            <FieldOffset(8)> _
            Public ki As KEYBDINPUT
            <FieldOffset(8)> _
            Public hi As HARDWAREINPUT
        End Structure
        Private Structure MOUSEINPUT
            Public dx As Integer
            Public dy As Integer
            Public mouseData As Integer
            Public dwFlags As Integer
            Public time As Integer
            Public dwExtraInfo As IntPtr
        End Structure
        Private Structure KEYBDINPUT
            Public wVk As Short
            Public wScan As Short
            Public dwFlags As Integer
            Public time As Integer
            Public dwExtraInfo As IntPtr
        End Structure
        Private Structure HARDWAREINPUT
            Public uMsg As Integer
            Public wParamL As Short
            Public wParamH As Short
        End Structure
        Public Shared Sub SendKey(ByVal key As Char)
            Dim Inpts(1) As INPUT
            Inpts(1).type = 1
            Inpts(1).ki.wVk = Convert.ToInt16(CChar(key))
            Inpts(1).ki.dwFlags = Nothing
            SendInput(1, Inpts, Marshal.SizeOf(GetType(INPUT)))
        End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            RegisterHotKey(Me.Handle, 1, Nothing, Keys.NumPad0)
            RegisterHotKey(Me.Handle, 2, Nothing, Keys.NumPad1)
            RegisterHotKey(Me.Handle, 3, Nothing, Keys.NumPad2)
            RegisterHotKey(Me.Handle, 4, Nothing, Keys.NumPad3)
            RegisterHotKey(Me.Handle, 5, Nothing, Keys.NumPad4)
            RegisterHotKey(Me.Handle, 6, Nothing, Keys.NumPad5)
            RegisterHotKey(Me.Handle, 7, Nothing, Keys.NumPad6)
            RegisterHotKey(Me.Handle, 8, Nothing, Keys.NumPad7)
            RegisterHotKey(Me.Handle, 9, Nothing, Keys.NumPad8)
            RegisterHotKey(Me.Handle, 10, Nothing, Keys.NumPad9)
            RegisterHotKey(Me.Handle, 11, Nothing, Keys.Oem3)
        End Sub
    
    Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
            If m.Msg = WM_HOTKEY Then
                Dim id As IntPtr = m.WParam
                Select Case (id.ToString)
                    Case "1"
                        Dim hwnd As Integer = FindWindow("Battlefield 3™", "Battlefield 3™")
                        If hwnd > 0 Then
                            SetForegroundWindow(hwnd)
                        End If
                        'UnregisterHotKey(Me.Handle, 11)
                        ' I open console manualy and they hit NumPad0
                        SendKey("/ban ") ' Still don't work
                        ' RegisterHotKey(Me.Handle, 11, Nothing, Keys.Oem3)
                    Case "2"
                        MessageBox.Show("You pressed 1")
                    Case "3"
                        MessageBox.Show("You pressed 2")
                    Case "4"
                        MessageBox.Show("You pressed 3")
                    Case "5"
                        MessageBox.Show("You pressed 4")
                    Case "6"
                        MessageBox.Show("You pressed 5")
                    Case "7"
                        MessageBox.Show("You pressed 6")
                    Case "8"
                        MessageBox.Show("You pressed 7")
                    Case "9"
                        MessageBox.Show("You pressed 8")
                    Case "10"
                        MessageBox.Show("You pressed 9")
                    Case "11"
                        MessageBox.Show("You pressed `")
                End Select
            End If
            MyBase.WndProc(m)
        End Sub
    
    Private Sub Form1_FormClosing(ByVal sender As System.Object, _
                            ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                            Handles MyBase.FormClosing
            UnregisterHotKey(Me.Handle, 1)
            UnregisterHotKey(Me.Handle, 2)
            UnregisterHotKey(Me.Handle, 3)
            UnregisterHotKey(Me.Handle, 4)
            UnregisterHotKey(Me.Handle, 5)
            UnregisterHotKey(Me.Handle, 6)
            UnregisterHotKey(Me.Handle, 7)
            UnregisterHotKey(Me.Handle, 8)
            UnregisterHotKey(Me.Handle, 9)
            UnregisterHotKey(Me.Handle, 10)
            UnregisterHotKey(Me.Handle, 11)
        End Sub
    
    Public Enum wVk As Short
            VK_CANCEL = &H3 'BREAK(Control+Pause) key(ExtendedKey)
            VK_BACK = &H8 'BACKSPACE key
            VK_TAB = &H9 'TAB key
            VK_CLEAR = &HC
            VK_RETURN = &HD 'ENTER key
            VK_SHIFT = &H10 'SHIFT key
            VK_CONTROL = &H11 'CTRL key
            VK_MENU = &H12 'ALT key
            VK_PAUSE = &H13 'PAUSE key
            VK_CAPITAL = &H14 'CAPS LOCK key
            VK_KANA = &H15 'IME かな mode
            VK_JUNJA = &H17
            VK_FINAL = &H18
            VK_KANJI = &H19 'IME 漢字 mode
            VK_ESCAPE = &H1B 'ESC key
            VK_CONVERT = &H1C 'IME 変換 key
            VK_NONCONVERT = &H1D 'IME 無変換 key
            VK_ACCEPT = &H1E
            VK_MODECHANGE = &H1F
            VK_SPACE = &H20 'SPACEBAR
            VK_PRIOR = &H21 'PAGE UP key(ExtendedKey)
            VK_NEXT = &H22 'PAGE DOWN key(ExtendedKey)
            VK_END = &H23 'END key(ExtendedKey)
            VK_HOME = &H24 'HOME key(ExtendedKey)
            VK_LEFT = &H25 '← key(ExtendedKey)
            VK_UP = &H26 '↑ key(ExtendedKey)
            VK_RIGHT = &H27 '→ key(ExtendedKey)
            VK_DOWN = &H28 '↓ key(ExtendedKey)
            VK_SELECT = &H29
            VK_PRINT = &H2A
            VK_EXECUTE = &H2B
            VK_SNAPSHOT = &H2C 'PRINT SCREEN key(ExtendedKey)
            VK_INSERT = &H2D 'INS key(ExtendedKey)
            VK_DELETE = &H2E 'DEL key(ExtendedKey)
            VK_HELP = &H2F
            VK_0 = &H30 '0 key
            VK_1 = &H31 '1 key
            VK_2 = &H32 '2 key
            VK_3 = &H33 '3 key
            VK_4 = &H34 '4 key
            VK_5 = &H35 '5 key
            VK_6 = &H36 '6 key
            VK_7 = &H37 '7 key
            VK_8 = &H38 '8 key
            VK_9 = &H39 '9 key
            VK_A = &H41 'A key
            VK_B = &H42 'B key
            VK_C = &H43 'C key
            VK_D = &H44 'D key
            VK_E = &H45 'E key
            VK_F = &H46 'F key
            VK_G = &H47 'G key
            VK_H = &H48 'H key
            VK_I = &H49 'I key
            VK_J = &H4A 'J key
            VK_K = &H4B 'K key
            VK_L = &H4C 'L key
            VK_M = &H4D 'M key
            VK_N = &H4E 'N key
            VK_O = &H4F 'O key
            VK_P = &H50 'P key
            VK_Q = &H51 'Q key
            VK_R = &H52 'R key
            VK_S = &H53 'S key
            VK_T = &H54 'T key
            VK_U = &H55 'U key
            VK_V = &H56 'V key
            VK_W = &H57 'W key
            VK_X = &H58 'X key
            VK_Y = &H59 'Y key
            VK_Z = &H5A 'Z key
            VK_LWIN = &H5B 'Left Windows key
            VK_RWIN = &H5C 'Right Windows key
            VK_APPS = &H5D ' Applications key
            VK_NUMPAD0 = &H60 'Numeric keypad 0 key
            VK_NUMPAD1 = &H61 'Numeric keypad 1 key
            VK_NUMPAD2 = &H62 'Numeric keypad 2 key
            VK_NUMPAD3 = &H63 'Numeric keypad 3 key
            VK_NUMPAD4 = &H64 'Numeric keypad 4 key
            VK_NUMPAD5 = &H65 'Numeric keypad 5 key
            VK_NUMPAD6 = &H66 'Numeric keypad 6 key
            VK_NUMPAD7 = &H67 'Numeric keypad 7 key
            VK_NUMPAD8 = &H68 'Numeric keypad 8 key
            VK_NUMPAD9 = &H69 'Numeric keypad 9 key
            VK_MULTIPLY = &H6A '* key
            VK_ADD = &H6B '+ key
            VK_SEPERATOR = &H6C '
            VK_SUBTRACT = &H6D '- key
            VK_DECIMAL = &H6E 'テンキーの . key
            VK_DEVIDE = &H6F '/ key(ExtendedKey)
            VK_F1 = &H70 'F1 key
            VK_F2 = &H71 'F2 key
            VK_F3 = &H72 'F3 key
            VK_F4 = &H73 'F4 key
            VK_F5 = &H74 'F5 key
            VK_F6 = &H75 'F6 key
            VK_F7 = &H76 'F7 key
            VK_F8 = &H77 'F8 key
            VK_F9 = &H78 'F9 key
            VK_F10 = &H79 'F10 key
            VK_F11 = &H7A 'F11 key
            VK_F12 = &H7B 'F12 key
            VK_F13 = &H7C 'F13 key
            VK_F14 = &H7D 'F14 key
            VK_F15 = &H7E 'F15 key
            VK_F16 = &H7F 'F16 key
            VK_F17 = &H80 'F17 key
            VK_F18 = &H81 'F18 key
            VK_F19 = &H82 'F19 key
            VK_F20 = &H83 'F20 key
            VK_F21 = &H84 'F21 key
            VK_F22 = &H85 'F22 key
            VK_F23 = &H86 'F23 key
            VK_F24 = &H87 'F24 key
            VK_NUMLOCK = &H90 'NUM LOCK key(ExtendedKey)
            VK_SCROLL = &H91 'SCROLL LOCK key
            VK_LSHIFT = &HA0 'Left SHIFT key
            VK_RSHIFT = &HA1 ' Right SHIFT key(ExtendedKey)
            VK_LCONTROL = &HA2 'Left CONTROL key
            VK_RCONTROL = &HA3 'Right CONTROL key(ExtendedKey)
            VK_LMENU = &HA4 'Left MENU key
            VK_RMENU = &HA5 'Right MENU key(ExtendedKey)
            VK_OEM_1 = &HBA ': * key
            VK_OEM_PLUS = &HBB '; + key
            VK_OEM_COMMA = &HBC ', < key
            VK_OEM_MINUS = &HBD '- = key
            VK_OEM_PERIOD = &HBE '. > key
            VK_OEM_2 = &HBF '/ ? key
            VK_OEM_3 = &HC0 '@ ` key
            VK_OEM_4 = &HDB '[ { key
            VK_OEM_5 = &HDC '\ | key
            VK_OEM_6 = &HDD '] } key
            VK_OEM_7 = &HDE '^ ~ key
            VK_OEM_8 = &HDF
            VK_PROCESSKEY = &HE5
            VK_OEM_ATTN = &HF0 '英数
            VK_OEM_102 = &HE2 '\ _ key
            VK_OEM_COPY = &HF2 'カタカナひらがな
            VK_OEM_AUTO = &HF3 '全角/半角
            VK_OEM_ENLW = &HF4 '全角/半角
            VK_OEM_BACKTAB = &HF5 'ローマ字
            VK_PACKET = &HE7
            VK_ATTN = &HF6
            VK_CRSEL = &HF7
            VK_EXSEL = &HF8
            VK_EREOF = &HF9
            VK_PLAY = &HFA
            VK_ZOOM = &HFB
            VK_NONAME = &HFC
            VK_PA1 = &HFD
            VK_OEM_CLEAR = &HFE
        End Enum
    I have never used SendInput() before, in old gamse i have used SendKeys.Send("")
    I know that I can send only 1 char using SendKey(). But i can't open console. I`m stuck here and can't advance.
    As i said, I just want to do simple things with it.
    Any help will be appreciated. Thanks in advance

  2. #2
    TyJsiDement's Avatar
    Join Date
    Jul 2012
    Gender
    male
    Posts
    1
    Reputation
    10
    Thanks
    0
    What the fuck is this?

  3. #3
    'SmoLL's Avatar
    Join Date
    Jul 2012
    Gender
    male
    Location
    EASY WAY TO GET BANNED
    Posts
    292
    Reputation
    10
    Thanks
    153
    My Mood
    Twisted
    Do not quite understand because I am using a translator.
    O'que But I understand that you want to open the game chat and send a message?

    If so ...
    Code:
    Public Class Form1
        Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 
           'Set Timer interval 1
            If GetAsyncKeyState(Keys.A) Then ' My key is used"A"
                SendKeys.Send("{Enter}")'Enter, Open Chat
                SendKeys.Send("My Message")'Send Message
                 SendKeys.Send("{Enter}")'If you need to close the Chat, Enter again
            End If
        End Sub
    End Class
    I hope I helped!
    Last edited by 'SmoLL; 10-02-2012 at 03:57 PM.

Similar Threads

  1. what do i save a windows form applications as?
    By g0t5k111z2 in forum Visual Basic Programming
    Replies: 3
    Last Post: 07-01-2010, 04:46 PM
  2. Windows form come up after inject?
    By Ragehax in forum C++/C Programming
    Replies: 0
    Last Post: 04-13-2010, 05:57 AM
  3. [Tutorial] How to change colors in DotNetBar for Windows Forms
    By Invidus in forum Visual Basic Programming
    Replies: 7
    Last Post: 02-27-2010, 11:20 PM
  4. [Help]About.vb Windows Form
    By LetItRock in forum Visual Basic Programming
    Replies: 12
    Last Post: 11-12-2009, 08:36 AM
  5. Windows Forms(C++) and etc.
    By zeco in forum C++/C Programming
    Replies: 3
    Last Post: 08-09-2009, 09:52 PM