I am trying to make Teamviewer as part of the software for fun, which allows one person to view another personโs screen and click and all that. Anyway, I have the most sockets, but I donโt know how to make the mouse clicks work correctly. Here is the code I found online to move the mouse programmatically:
public static class VirtualMouse { // import the necessary API function so .NET can // marshall parameters appropriately [DllImport("user32.dll")] static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo); // constants for the mouse_input() API function private const int MOUSEEVENTF_MOVE = 0x0001; private const int MOUSEEVENTF_LEFTDOWN = 0x0002; private const int MOUSEEVENTF_LEFTUP = 0x0004; private const int MOUSEEVENTF_RIGHTDOWN = 0x0008; private const int MOUSEEVENTF_RIGHTUP = 0x0010; private const int MOUSEEVENTF_MIDDLEDOWN = 0x0020; private const int MOUSEEVENTF_MIDDLEUP = 0x0040; private const int MOUSEEVENTF_ABSOLUTE = 0x8000; // simulates movement of the mouse. parameters specify changes // in relative position. positive values indicate movement // right or down public static void Move(int xDelta, int yDelta) { mouse_event(MOUSEEVENTF_MOVE, xDelta, yDelta, 0, 0); } // simulates movement of the mouse. parameters specify an // absolute location, with the top left corner being the // origin public static void MoveTo(int x, int y) { mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, x, y, 0, 0); } // simulates a click-and-release action of the left mouse // button at its current position public static void LeftClick() { mouse_event(MOUSEEVENTF_LEFTDOWN, Control.MousePosition.X, Control.MousePosition.Y, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, Control.MousePosition.X, Control.MousePosition.Y, 0, 0); } }
Now I want to move the mouse using the MoveTo method, but crazy high numbers are required for any movements. Anyway, can I match the coordinates for moving here to the position on the screen in pixels? Sorry if this seems like an obvious question, but I have been searching for searches for almost an hour, and I cannot find any discussion of which units are used for the x and y positions of the mouse, so I cannot configure any type of formula to match clicks on one panel to click on the user's screen.
source share