R
Reinhard Vornholt
Hello,
I am trying to write a small application to remote another application.
Nothing special just
some mouse movement and clicking. But somehow it is not working. I figured
already that I cant
use the encapsulated win32 methods of the framework. So I searched the net
for some code and came up with the code you see below, but its not working.
The application I am trying to remote is a actually a game and it is running
in fullscreen mode.
Thats what I have until now:
private const uint WM_MOUSEMOVE = 0x0200;
private const uint WM_LBUTTONDOWN = 0x0201;
private const uint WM_LBUTTONUP = 0x0202;
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(
string lpClassName, // class name
string lpWindowName // window name
);
[DllImport("user32.dll")]
public static extern IntPtr SendMessage(
IntPtr hWnd, // handle to destination window
uint Msg, // message
int wParam, // first message parameter
int lParam // second message parameter
);
public static void LeftMouseClick(IntPtr handle)
{
SendMessage(handle, WM_LBUTTONDOWN, 0, 0);
SendMessage(handle, WM_LBUTTONUP, 0, 0);
}
public static IntPtr MoveMouse(IntPtr handle, int x, int y)
{
return SendMessage(handle, WM_MOUSEMOVE, (int)0, MakeLParam(x,y));
}
private static int MakeLParam(int LoWord, int HiWord)
{
return (int) ((HiWord << 16) | (LoWord & 0xffff));
}
And when I do this:
IntPtr aom = Win32.FindWindow(AOMCLASS, AOMWINDOW);
int i = (int) MoveMouse(aom, AOM_MULTIPLAYER_X, AOM_MULITPLAYER_Y);
LeftMouseClick(aom);
nothing happens
What am I doing wrong? Can someone help?
And is the a list of all the WM_... values? I found these in the net but
couldn't find a list of all of them.
thanx,
cheers
RV
I am trying to write a small application to remote another application.
Nothing special just
some mouse movement and clicking. But somehow it is not working. I figured
already that I cant
use the encapsulated win32 methods of the framework. So I searched the net
for some code and came up with the code you see below, but its not working.
The application I am trying to remote is a actually a game and it is running
in fullscreen mode.
Thats what I have until now:
private const uint WM_MOUSEMOVE = 0x0200;
private const uint WM_LBUTTONDOWN = 0x0201;
private const uint WM_LBUTTONUP = 0x0202;
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(
string lpClassName, // class name
string lpWindowName // window name
);
[DllImport("user32.dll")]
public static extern IntPtr SendMessage(
IntPtr hWnd, // handle to destination window
uint Msg, // message
int wParam, // first message parameter
int lParam // second message parameter
);
public static void LeftMouseClick(IntPtr handle)
{
SendMessage(handle, WM_LBUTTONDOWN, 0, 0);
SendMessage(handle, WM_LBUTTONUP, 0, 0);
}
public static IntPtr MoveMouse(IntPtr handle, int x, int y)
{
return SendMessage(handle, WM_MOUSEMOVE, (int)0, MakeLParam(x,y));
}
private static int MakeLParam(int LoWord, int HiWord)
{
return (int) ((HiWord << 16) | (LoWord & 0xffff));
}
And when I do this:
IntPtr aom = Win32.FindWindow(AOMCLASS, AOMWINDOW);
int i = (int) MoveMouse(aom, AOM_MULTIPLAYER_X, AOM_MULITPLAYER_Y);
LeftMouseClick(aom);
nothing happens
What am I doing wrong? Can someone help?
And is the a list of all the WM_... values? I found these in the net but
couldn't find a list of all of them.
thanx,
cheers
RV