3

カスタマイズされたキー (Ctrl、Alt、および ... なし) を使用して、仮想キーボード (スクリーン キーボード上) を作成します。問題は、アプリケーションを に設定するとTopmost="Ture"、最後にアクティブだったアプリケーションのウィンドウを見つけて、選択したキーをそれに送信できないことです。(キーボード アプリケーションがアクティブになりました。) いくつかの検索を行いましたが、役立つものは見つかりませんでした。

4

2 に答える 2

3

プロパティを true に設定する前に、最後のウィンドウへのハンドルを保持し、GetForegroundWindow()またはGetActiveWindow()を見て、キーボード アプリケーションの操作が完了した後にSetActiveWindow()を使用して元に戻します。

using System;
using System.Runtime.InteropServices;

namespace Foreground {
  class GetForegroundWindowTest {

    [DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
    public static extern IntPtr GetForegroundWindow();

    public static void Main(string[] args){
        IntPtr fg = GetForegroundWindow(); //use to keep the last active window
        // set the topmost property to your keyboard        
        //Set fg to be active again when needed using SetActiveWindow()
    }
  }
}
于 2013-03-04T05:27:58.760 に答える
0

あなたの助けと答えをありがとう。私はWoskを見つけ、それが私の問題を解決しました。コードを確認できます。

于 2013-03-06T05:29:25.223 に答える