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?

Original source