これは完全にテストされておらず、C# でこれらの DLL 呼び出しを使用したことはありませんが、うまくいけばうまくいくか、少なくとも近づくでしょう...
public class Win32
{
public const uint WM_SETTEXT = 0x000c;
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern IntPtr SendMessage(HandleRef hWnd, uint Msg, IntPtr wParam, string lParam);
[DllImport("user32.dll")]
static extern IntPtr WindowFromPoint(int xPoint, int yPoint);
}
コードの他の場所...
IntPtr theHandle = WindowFromPoint(Cursor.Position.X, Cursor.Position.Y);
if (theHandle != null)
{
long res = Win32.SendMessage(theHandle, WM_SETTEXT, IntPtr.Zero, Clipboard.GetText());
}
注:WindowFromPiont
ウィンドウ自体のハンドルではなく、別のウィンドウの子コントロール(つまり、実際のテキストボックス)のハンドルを取得するかどうかは完全にはわかりません。カーソル位置で子を見つける必要がある場合があります。残念ながら、私がこのようなことをしたのは久しぶりです。
また、ウィンドウ ハンドルの取得についてより詳しく知りたい場合は、次の質問を参照してください: c# でマウス クリックに基づいてアクティブなウィンドウ名を取得する