Sending mouse input to the WoW Client (specifically 2.4.3) with Windows API menu

Shout-Out

User Tag List

Results 1 to 4 of 4
  1. #1
    sneakydick's Avatar Member
    Reputation
    1
    Join Date
    Jan 2019
    Posts
    2
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Sending mouse input to the WoW Client (specifically 2.4.3) with Windows API

    I am attempting to create a program that would allow you to plug two keyboards and mice into a single computer and play two copies of WoW at the same time by splitting their inputs to the different application windows. I found no good tool for this online, so I'm making my own.

    From all my research and testing it seems like SendMessage and PostMessage are my best bet. I've been intercepting WM_INPUT messages on windows and sending them to the desired application and so far this has been working... to an extent.

    I've tested my application with an older RTS game called Command and Conquer Generals and it worked perfectly. I superimposed a dummy mouse cursor over the game and was able to scroll around and click as if it were the real mouse. This isn't working with WoW's client, however. And I believe it to be some anti-cheat bullshittery built within the client itself.

    I have two videos to help you understand the problem I'm experiencing:
    The first simply shows my program working as I would expect when sending input to Chrome. As I scroll around and click you can see Chrome reacting to the superimposed cursor as if I were scrolling right over it.
    Video 1: Nice


    This second video shows me doing the exact same thing with WoW's client, and for some reason it does not quite work right. It just plain doesn't work with the dummy cursor, but it does respond to the *real* cursor, even though the window technically doesn't have focus (which tells me that PostMessage is working, but it just refuses to acknowledge the clicks at the location of the dummy cursor instead of the real cursor).
    Video 2: Not Quite



    So my question is simple: does anyone have any experience directly sending mouse input to WoW's client in this way? I'm certain it's some level of anti-cheat protection but I'm not sure how to get around it.

    To give an example of my code for handling mouse click events, here you go:

    Code:
    private void m_MouseButtonDown(object sender, InputDevice.MouseControlEventArgs e)
            {
                if (e.Mouse.deviceHandle != MouseHandle1)
                    return;
    
                uint L_Param_Window = (uint)(cursorPosX + ((int)cursorPosY << 16));
    
                uint W_Param = 0;
                switch (e.Mouse.buttonMessage)
                {
                    case WM_LBUTTONDOWN:
                        W_Param = (uint)MouseButtons.LEFT;
                        break;
                    case WM_MBUTTONDOWN:
                        W_Param = (uint)MouseButtons.MIDDLE;
                        break;
                    case WM_RBUTTONDOWN:
                        W_Param = (uint)MouseButtons.RIGHT;
                        break;
                }
    
                // Send Messages
                PostMessage(applicationHandle1, e.Mouse.buttonMessage, (IntPtr)W_Param, (IntPtr)L_Param_Window);
            }
    I have tried ensuring the input mapper has administrator privileges, and I have tried toggling on/off the "Hardware Cursor" setting in WoW.
    This is done in C#, by the way.

    Thank you in advance.

    Sending mouse input to the WoW Client (specifically 2.4.3) with Windows API
  2. #2
    clozer's Avatar Member
    Reputation
    10
    Join Date
    Mar 2016
    Posts
    61
    Thanks G/R
    17/9
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Did you try running it as Admin? If WoW is running with Admin rights my programm cant even move the mouse in wow. But with admin rights everything goes well.

    Besides that can't you do this with some ez ahk script?

  3. #3
    sneakydick's Avatar Member
    Reputation
    1
    Join Date
    Jan 2019
    Posts
    2
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by clozer View Post
    Did you try running it as Admin? If WoW is running with Admin rights my programm cant even move the mouse in wow. But with admin rights everything goes well.

    Besides that can't you do this with some ez ahk script?
    I've tried running it in Admin mode but I could try again. But I'm not attempting to move the real mouse, I'm just superimposing a fake mouse on the screen and when a click is detected my input mapper is sending WoW a click message at the position of the dummy mouse.

  4. #4
    spaceboy's Avatar Member
    Reputation
    1
    Join Date
    Feb 2008
    Posts
    11
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    If you have a 2nd video card laying around an easier solution would be to run UnRAID on your baremetal then have 2 hosted windows machines with their own screens and input devices. Check out the linus tech tips vid where they made a single pc for something crazy like 6 or 8 gamers for more info.

Similar Threads

  1. Replies: 1
    Last Post: 12-14-2015, 01:24 PM
  2. Different ways to interact with the WoW client
    By Corthezz in forum WoW Memory Editing
    Replies: 2
    Last Post: 06-28-2015, 01:49 PM
  3. [Hack] Help to patch the WOW client of 4.1.0, Thank you!
    By lnlhg in forum WoW Memory Editing
    Replies: 9
    Last Post: 07-09-2011, 04:06 AM
  4. Replies: 0
    Last Post: 02-28-2011, 12:58 PM
  5. Dotnet Source Example Sending Keyboard Input to Wow
    By joe7314 in forum WoW Memory Editing
    Replies: 13
    Last Post: 04-19-2010, 12:55 AM
All times are GMT -5. The time now is 12:13 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search