これは C++ 翻訳プログラムにあります。ユーザーがCTRL-Cを押さずに他のプログラムでテキストを選択すると、強調表示されたテキストを取得して翻訳できるようにしたいと考えています。これ (テキスト取得) は比較的スタンドアロンのコンポーネントであるため、C# ソリューションは歓迎されます。
考えられる解決策の 1 つは、マウス イベントにフックを追加することです。次のメッセージを検出しました: 左ボタンを押したままマウスをドラッグしてから、左ボタンを放します。次に、プログラムに CTRL-C を送信し、クリップボードからテキストを取得します。
ほとんどのプログラムがこの方法でうまく機能するように、クリップボードを保存して復元します。しかし、いくつかのプログラムがメッセージ ループで WM_KEYUP のようなイベントを処理することを確認しました。これらのプログラムでは、偽のメッセージを送信します! 強調表示されたテキストを取得する別の安全な方法はありますか?
2 つのマウス カーソル位置の間のテキストを取得するための API 呼び出しを見つけようとしましたが、見つかりません。