none
Deleted RRS feed

すべての返信

  • CapsLock キーは、本来、アルファベット入力の大文字/小文字を切り替えるもので、プログラムから CapsLock キーのシミュレートを使って全角/半角を切り替えることはできないようです。

    また、下記の投稿によると SendKeys.Send メソッドによって全角/半角を切り替えることはできないようです。
    https://social.msdn.microsoft.com/Forums/ja-JP/84d8271c-84df-4631-b6f9-ecd195f65152

    上記の回答を参考に user32.dll の SendInput を使用するのはどうでしょうか?

    ※ こちらは Windows API を使用しているため、クロスプラットフォーム開発で Windows 以外の OS に対応する場合は、OS ごとに処理を切り分ける必要があるかと思います。


    https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11184621411

    上記サイトでも同時期に同じ投稿がありました。マルチポストでしょうか?そちらのほうで先に有用な回答があがるかもしれませんので参考のため提示しておきます。

    2018年1月13日 3:17
  • Deleted
    2018年1月13日 8:09
  • クロスプラットフォームにこだわっているのは変わっていないのでしょうか。
    そうであれば、質問の時点で明確にしないと、「Windows でしか使えない方法に興味はない」と回答者側の労力を否定する流れが続きますので、配慮してください。

    また、SendKeys.Send はデフォルトでフック方式を使うため、ユーザーがキーボードを押したときと同じ動きにならないことがあります。
    app.config で SendInput 相当の動作に切り替えれば可能性はあるかもしれません。
    このページで app.config に言及している箇所を参照
    ただし、これは Windows にしか効かないので、早いこと、クロスプラットフォーム前提をあきらめたほうがよいと思います。

    2018年1月13日 13:01
    モデレータ
  • Deleted
    2018年1月13日 15:19
  • タイトル(当初の質問)と一致しない内容なのでスレッドを分けてください。
    それと、どの程度の OS の範囲を想定しているのかも明らかにしておいたほうがよいでしょう。
    2018年1月13日 20:10
    モデレータ
  • そもそもプラットフォーム毎に入力モードの切り替えキーは異なるし、さらに言えば入力モードの概念も異なるわけで。単にCAPS LOCKキーを押せば済む話ではありません。

    その辺り、質問者さんはどのような動作を行いたいかを仕様を明確にすべきです。仕様が明確になって初めて具体的な実装ができることは理解していますか?

    2018年1月14日 0:51
  • Deleted
    2018年1月14日 1:33
  • 私は ATOK を使っているのですが、[Ctrl]+[CAPS LOCK] では何の変化もないのですが。半角英数への切り替えは [無変換] ですね。

    なお、Windows 10 標準の Microsoft IME に切り替えて [Ctrl]+[CAPS LOCK] を押してみましたが、「あ」変わりませんねぇ。もっとも、キー設定を ATOK に合わせるように変えていますが。
    # あ、Microsoft IME だと画面中央にモードが表示されるのか。じゃまだけど、便利だな。


    Jitta@わんくま同盟

    2018年1月14日 2:13
  • Deleted
    2018年1月14日 2:17
  • windows7ではCtrl+CapsLockで入力モード(あ⇔_A)を変更できる。

    Jitta さんの指摘を理解されていますか?
    あなたのその返答は「あなたの環境・設定の場合はできる」であり、Jitta さんの指摘の本質は「環境や設定によってはそのような決め打ちな実装では動かないよ」なので、答えになっていません。

    クロスプラットフォームと言っていますが、そのソフトウェアはあなただけが使えればよいのですか?
    それとも対象とする環境のユーザーすべてで動かないといけないのですか?(ほかの人に使ってもらうつもりですか?)

    前者であればそれでよいかもしれませんが、それを明確にしておいたほうがコミュニケーションは円滑となるでしょう。
    後者であればあなたのその考え方だとまずいというわけです。

    2018年1月14日 2:22
    モデレータ
  • windows7ではCtrl+CapsLockで入力モード(あ⇔_A)を変更できる。

    なるほど。このような質問をされていますが、お忘れですか?

    プラットフォーム毎に何が違うのか具体的に教えて欲しい。

    追記

    Windows 7 で操作しましたが、半角にならなかった事を追記します。キーボード操作は環境に強く依存することが、これからわかると思います。


    Jitta@わんくま同盟


    • 編集済み Jitta 2018年1月15日 7:35 Windows 7 操作追記
    2018年1月14日 5:23
  • そもそもですが、Mac に Caps Lock キーってありましたっけ?。
    Windows、Mac、Linux のクロスなら最初からこうした前提にはならない気がしますが。

    ( Caps Lock キー云々が出て来る時点でクロス開発なの?と言う疑問が。)


    クロスを開発する技量はありませんが、Linux から Win に移植されたものを愛用しています。
    これらでも、App 間の文字データ遣り取りは Clipboard 経由 と Drag&Drop 実装です。
    それでも、相当数の dll が一緒に提供されています。 ( OS の差異吸収?)
    そして、OS 毎のバイナリ で提供されています。

    本題とは離れますが、文字データファイルに関しても改行文字からして異なりますし。

    2018年1月14日 6:05