SendKeys() がSHIFT
キーストロークを送信すると終了する (クラッシュする?) アプリケーションがあります。+
シフト キーは、単純なシフト文字 、大文字によって、または などのセカンダリ キーを送信することによって間接的に呼び出すことができます@
。いずれの場合も、アプリは終了します。これはサードパーティのアプリケーションなので、コードを修正できません。
を挿入することで資本問題を回避しました{CAPSLOCK}
。それは二次キーの問題を解決しません。Shift を呼び出さずに SendKeys に特殊文字を送信させることは可能ですか? キャラクター:!@#$%^&*(){}|:"<>?
[おそらく、それらを最初に Unicode 表現に変換するか何かによって。これらすべての文字を手動で Unicode にマップしたくありません。基になるコードがまだ SHIFT をタップするかどうかわからない]?
更新
要求されたコードは次のとおりです。
SetForegroundWindow(windowHandle);
string keySequence = stringVariable + "{TAB}" + "aa";//works fine
//string keySequence = stringVariable + "{TAB}" + "a+a";//crash
//string keySequence = stringVariable + "{TAB}" + "aS";//crash
//string keySequence = stringVariable + "{TAB}" + "a@";//crash
SendKeys.SendWait(keySequence);