タッチスクリーン PC 用の Windows オンスクリーン キーボードのような仮想キーボードを作成したいと考えています。しかし、仮想キーボードが使用中のアプリケーションからフォーカスを奪うという問題があります。Windows のオンスクリーン キーボードは、ユーザーが現在のアプリケーションをクリックしても、現在のアプリケーションにフォーカスを維持します。C# の Windows フォームで同じことを行う方法はありますか?
今のところできることは、次のコードのメモ帳のような特定のアプリケーションにキーボード イベントを送信することだけです。フォームをフォーカス不可にできれば、現在フォーカスされているウィンドウを GetForegroundWindow で取得できます。
[DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
public static extern IntPtr FindWindow(string lpClassName,string lpWindowName);
[DllImport("USER32.DLL")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
private void button1_Click(object sender, EventArgs e)
{
IntPtr calculatorHandle = FindWindow("notepad", null);
SetForegroundWindow(calculatorHandle);
SendKeys.SendWait("111");
}
これを行う方法はありますか?フォームが使用中のアプリケーションにキーボード イベントを送信するためのより良い方法の提案はありますか?
ありがとう!!