概要
C#でタッチキーボードのデスクトップアプリを作成しています.
Windows10には標準でひらがなのタッチキーボードが存在しますが,50音順に並んだ配列のキーボードが必要なため,自作しています.
※使用場面はキーボードを搭載していないwindows10のタブレットを想定しています.
質問は以下の2点です.
SendKeys.Send
メソッドで「変換キー」を押す方法SendKeys.Send
メソッドに代わる実装方法
質問1
フォーム上にボタンを配置してそれらが押されると,キーボード上の特定のキーがSendKeys.Send
メソッドによって送信されるようになっています.
ひらがなは,それに該当するローマ字を連続して送ることで入力しています.
(例「か」の場合は"ka",エンターキーの場合は"{ENTER}")
入力されたひらがなを漢字に変換するために,変換キーを押す機能もタッチキーボードに入れたいのですが,変換キーに該当するキーコードが見つかりません.
SendKeys.Send
以外の方法でも構いませんが,変換キーを操作する方法は何かありますでしょうか.
- 試したこと1
こちらにて回答されているキーコード"F13"で試してみましたが,反応がありませんでした. - 試したこと2
スペースキーでも入力中のひらがなを変換できるため,キーコードに空白文字を使用してみましたが,短い間隔で連続して送ると変換ではなく半角空白文字が送られるため,適切ではないと思われます.
質問2
キーボードを操作する方法としてSendKeys.Send
メソッドを使用していますが,質問1の「試したこと1」に載せたリンク先にもあるように,どうやらSendKeys.Send
メソッドの挙動が危険であるという情報がいくつか見受けられました.
これは公式のドキュメントで注意喚起されている"タイミングの問題"にあたるかどうかははっきり分かりませんが,SendKeys.Send
メソッドを使うべきでない理由,またSendKeys.Send
メソッドに代わる実装方法等をご存知でしたら,教えてください.
実装方法が大きく変わるような案でも構いませんので,アイデアをいただけたらと思います.
よろしくお願いします.

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/27 07:43