Reputation: 786
How would I go about making a small program that keeps moving the mouse upwards?
For those who would like to know, tt's a tiny one-use thing. I'm playing Star Wars The Force Unleashed. In console versions, you would hold the right stick upwards. In the bad console port on the PC, you're using your mouse. Maybe you can understand my frustration.
Upvotes: 6
Views: 29477
Reputation: 25024
This is a problem for mechanical programming, not CSharp.
To execute the program, flip the power switch on the power strip the drill is plugged into.
Edit: if you want more portable code, use a cordless drill. Batteries not included.
Upvotes: 17
Reputation: 34218
SetCursorPos
will do this in unmanaged code. I'm not sure if there's a .NET method to do the same, but you can always use com interop. It's in User32.dll
[DllImport("user32.dll")]
static extern bool SetCursorPos(int X, int Y);
a little google produces this as a SetCursorPos equivalent for .net
System.Windows.Form.Cursor.Position
Upvotes: 17
Reputation: 2040
I don't know the game but internally windows sends out messages for mouse move. These are sent by the SendMessage()
API call to the application. In C# you would either have to use the same Win32 API directly or perhaps by creating/sending an event? Not sure how to send an event to another running application though.
The SendMessage() Win32 API call defined in C# would look like this:
[DllImport("user32.dll")]
public static extern int SendMessage(
int hWnd, // handle to destination window
uint Msg, // message
long wParam, // first message parameter
long lParam // second message parameter
);
Upvotes: 3