0

私は、本質的にウィンドウをだましてフォーカスがあると思わせる方法を理解しようとしています。いくつかの検索でわかったのは、これを達成するには何らかのサンドボックスが必要だということです。OS とウィンドウの間の中間層。

C#を介して(必要に応じてpinvokeなどを使用して)これを達成する方法を正しい方向に向けるために、いくつかの支援をいただければ幸いです。基本的に、C# プログラムから別の実行可能ファイルを起動し、一定のウィンドウ フォーカスを使用して、何らかの方法で偽のデスクトップになるように設定します。ただし、通常どおりウィンドウと対話することはできます (必要に応じてウィンドウ ラッパーのように、必要に応じてフォーカスを失う可能性がありますが、含まれているウィンドウはフォーカスが外れているとは決して考えません)。

これはかなりの作業だと確信しています (ただし、そうではないかもしれませんが、おそらく誰かがこれに対するエレガントな解決策を知っているかもしれません)。(このサンドボックス製品の動作の 1 つをエミュレートしようとしています)。

4

2 に答える 2

0

ターゲット Windows メッセージ キューに WM_ACTIVATE メッセージを挿入してみてください。これにより、フォーカスがない場合でも、フォーカスがあると思わせる可能性があります。アプリケーションがフォーカスをチェックする方法に大きく依存します。

于 2016-10-09T23:54:30.770 に答える
0

まず、アクティベーション イベントを呼び出してみます。

private void Form1_Activated(object sender, EventArgs e)
{
    //Code
}

次に、任意の関数から、eventarg を宣言します。

private EventArgs ev;

最後に、フォーカスを偽造したい場合は、アクティブ化された関数を呼び出します。

Form1_Activated(this, ev);

その助けを願っています!

于 2012-04-28T04:54:58.363 に答える