How to get selected text of any application into a windows form application
c#, clipboard, hook, winforms
Solution
After some reading, I have found the way:
- Hook the double click event using something like globalmousekeyhook.codeplex.com
- (Optional) Save the current state of the clipboard
- Get The current mouse position with `GetCursorPos` from `user32.dll`
Get windows based on cursor position with `WindowFromPoint` from `user32.dll`
[DllImport("user32.dll")]
public static extern IntPtr WindowFromPoint(Point lpPoint);
[DllImport("user32.dll")]
public static extern bool GetCursorPos(out Point lpPoint);
public static IntPtr GetWindowUnderCursor()
{
Point ptCursor = new Point();
if (!(PInvoke.GetCursorPos(out ptCursor)))
return IntPtr.Zero;
return WindowFromPoint(ptCursor);
}
Send copy command with `SendMessage` form `user32.dll` (see Using User32.dll SendMessage To Send Keys With ALT Modifier)
- Your Code
- (Optional) Restore the clipboard content saved in step 2
Problem
This is what am trying to do, When user select any word(text) of any running application by double clicking the mouse particular highlighted word should be inserted into a windows application which is already running. So far I have implemented the logic using `Global Keystroke` where user has to trigger CRT+ C keyboard key combination to copy the selected word into win form application. What i want to know is there any way to get those selected text into the application without having any button key press of the keyboard?