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