2

Babylon 辞書と他のいくつかの辞書では、任意の Windows プログラムで任意の単語をクリックすると、カーソルの下にある単語が自動的に認識され、インストールされている辞書でその単語を検索しているときに、すぐに辞書ウィンドウを開くことができます。一方、辞書を開いて単語を入力し、Enter キーを押すと、結果は同じになります。

たとえば「Automaton」という単語を含むテキスト ラベルを含む Delphi フォームがあります。

私の質問は:

手動で入力して Enter キーを押したかのように、Delphi アプリケーションから単語を辞書ウィンドウに直接送信する方法は?

最善の解決策は、Windows メカニズムを介してメッセージを送信することですが、それが複雑すぎる場合は、別の解決策があります。2 番目の答え: 説明したように、[Ctrl+マウスの左] クリックをモデル化する必要があります。この単語は、フォーム [私の Delphi アプリケーションの画面上のビジュアル ラベル] に表示されます。正確には、このラベルの中央のピクセルに表示されます。

Delphi で何かを行う方法について、親切にアドバイスをいただけますか?

** 編集: AppActivate の問題は次のとおりです。Babylon dict には、トレイに収まるデーモン部分があります。タスク マネージャーでは、テキストを入力する必要がある実際のウィンドウも「Babylon」という名前になっています。したがって、AppActivate('Babylon') は、アプリケーションの非表示部分を前面に表示しようとします。

ウィンドウ ハンドルまたはアプリケーションの実際のビジュアル部分を特定する方法について何か提案はありますか? タスクマネージャーでは、視覚部分と非視覚部分の両方が「バビロン」と名付けられていることを繰り返します。

4

1 に答える 1

1

洞察やアドバイスほど答えを提供することはできません...

キーボードとマウスの命令を「傍受」し、ソフトウェアによって模倣されている場合は本質的に「無効化」する特定のアプリケーションがあります。一般的に言えば、これは設計上、Kaspersky などの適切なアンチウイルス ソフトウェアでのみ表示されますが、次のようになります。

一部の (多くはありませんが、一部の) プログラムがキーボードとマウスの入力をフックする方法は、副作用として同じように動作します。上記のコメントとして与えられたアドバイスをすべて試しても、結果として Babylon にアクションをトリガーさせることができない場合は、Babylon が私が説明したように動作する可能性があります。

私が疑っていることが本当なら、あなたが試みている方法は単に不可能です (少なくとも、単純な Pascal コードを単独で使用しないでください... ASM はそれを実行できるかもしれませんが、それは私の知識を超えています)。

より良い解決策は、次のオプションのいずれかが利用可能かどうかを確認するために少し調査を行うことです: 1) Babylon には、アプリケーションとのインターフェースに使用できるパイプラインまたは API がありますか? 2) バビロンに必要な特定の機能は、バビロンの一部として配布されている 1 つ (または複数) の DLL ファイルからアクセスできますか? 3) ニーズに合わせて Babylon を使用する代わりに何か方法はありますか?

それ自体が答えではないことは承知していますが (確かにあなたが聞きたいと思うものではありません)、より良い方向にあなたを向けるかもしれません.

于 2011-04-14T19:00:50.840 に答える