0

フォーカスされている入力ポイント (キャレット位置、ウィンドウ/コントロール) を取得する必要があります。私のアプリケーション/サービスは、ユーザーがいつ入力を開始したかを検出し、入力された文字を所定の値に置き換える必要があります。秘訣は、ユーザーが入力したい場所がわからないことです (これをいくつかのアプリケーションに限定したくありません)。

次を使用してテキストを取得/置換する方法を知っていると思います:

[DllImport("USER32.DLL", CharSet = CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hWnd, uint msg, IntPtr wparam, StringBuilder text);

フォーカスされているコントロールを取得するにはどうすればよいですか? テキストの入手先と代替品の送付先を知るにはどうすればよいですか?

私はC#、WPFでこれをやっています。

ありがとうございました!

4

2 に答える 2

2

キーボード アクティビティをエミュレートするだけの場合は、keybd_eventまたはを使用できますSendInput。これらはキープレスをフォーカスのあるウィンドウに自動的に配信するため、自分でキープレスを検出する必要はありません。

于 2011-12-31T03:36:33.607 に答える
1

質問に WinAPI のタグを付けたので、 Keyboard Hookingのように別のアプリケーションからのキーストロークを傍受しようとしていると思います。これらのリンクを見てください:

于 2011-12-31T03:36:12.380 に答える