Robot クラスを使用して文字列を入力するコードを書いています。ほとんどすべてが適切です (文字キーコードを取得するには、大きな switch ステートメントを使用する必要がありShiftます)。大文字の場合は、 を使用して簡単に確認できCharacter.isUpperCase(c)
ますが、 や などの!@#$%^&*()_+
さまざまな句読点は「大文字」とは見なされませんが、キーストロークを生成するにはシフトを押す必要があります。グーグルで検索してみましたが、満足のいく回答のないフォーラム投稿を見つけました。文字をシフトする必要があるかどうかを判断する方法はありますか?もしそうなら、どの文字が「シフトされていない」バージョンですか?
編集:これが私がこれまでに持っているコードです。
public void GenerateKeyTyped(char c) {
if (Character.isUpperCase(c)) {
r.keyPress(KeyEvent.VK_SHIFT);
}
r.keyPress(GetKeyCode(c));
r.keyRelease(GetKeyCode(c));
if (Character.isUpperCase(c)) {
r.keyRelease(KeyEvent.VK_SHIFT);
}
}