Do you have some sample code using the SendInput or mouse_event APIs?
Main Topics
Browse All Topicsi need to click on a button in another application from my C# application, i have API calls working to activate or close the window etc and they work fine so i know i am sending messages, and i know the code for an api mouse click, however i need to know the code to convert the integer mouse coordinates into the correct format so the correct area gets clicked in the other application. Here is my sample code:
public const uint WM_LBUTTONDOWN = 0x0201;
public const uint WM_LBUTTONUP = 0x0202
[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
);
public static void SendMouseClick(int iHandle, int X, int Y)
{
/***problem line*********** / long lparm=(X and Y converted coordinates)
long lngResult = SendMessage(iHandle, WM_LBUTTONDOWN, 0, lparm);
long lngResult2 = SendMessage(iHandle, WM_LBUTTONUP, 0, lparm);
}
From my app i call
SendMouseClick(windowHandl
i need to know how to figure out the correct value for the last parameter and pass it to the sendmessage function.
In some sample coordinates i saw online it stated that a Y value of 200 and an X value of 100 would look something like 0064 00C8 but i have no idea how to get to that format from 200 and 100 and how to put them together, thanks in advance for the help
Ruby
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
http://www.pinvoke.net/def
PInvoke declarations are shown for C# and VB. There is code sample in C# for sending keyboard messages and in VB for sending mouse messages, see:
Private Sub SendInputStream()
' Synthesize the user clicking the right mouse button
...
You can translate this to C#.
http://www.pinvoke.net/def
This is mouse_event sample. Microsoft recommends using SendInput, but mouse_event works eas well.
Business Accounts
Answer for Membership
by: AlexFMPosted on 2005-09-03 at 02:19:34ID: 14815583
lParam and wParam should be defined as int, because .NET long is 64-bit integer, and Win32 WPARAM and LPARAM are 32-bits type. To pack x and y to LPARAM use:
int lParam = (y << 16) + x;
To send mouse messages it is better to use SendInput or mouse_event API.