プロが教えるわが家の防犯対策術!

C#で仮想キーコードを使ったプログラムを書きたいのですが
メソッド中で
private const int VK_SHIFT = 0x10; // SHIFTキー
private const int VK_CONTROL = 0x11; // CTRL キー
...
private const int VK_0 = 0x30; //0 キー
...
とせずに一括で(1行で)定義(?)する方法はありませんか?

質問者からの補足コメント

  • つらい・・・

    いつもありがとうございます。
    でも、どう記述すればいいのでしょうか?
    次のサンプルを基に作ろうと思っているのですが...
    http://nonsoft.la.coocan.jp/SoftSample/CS.NET/Sa …

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/03/01 15:08
  • うーん・・・

    ありがとうございます。
    実はメソッド内で使おうと思っています。
    private void send_command(String command,...)//command -->A,B,...
    {

    SendInput(...);
    }
    という感じです。
    Shiftキー、Altキー、Ctrlキーは教えていただいた方法でいけましたが、他のキー(A,B,...)はどうやってキャストしたらいいのでしょうか?

    No.2の回答に寄せられた補足コメントです。 補足日時:2017/03/01 16:10

A 回答 (3件)

>他のキー(A,B,...)はどうやってキャストしたらいいのでしょうか?



まったく同じです。
(short)Keys.A で、VK_A(というかAのキー)
(short)Keys.Enter で、VK_RETURN(Enterキー)
(short)Keys.F11 で、VK_F11(F11キー)
キーの種類についてはMSDNのKeys列挙型の メンバー のところに記載されています。
# VK_なんちゃらだとASCIIコードで対応とかの範囲は省略されていたりしますけど。

掲示されたページのbutton5_Click()でやっているのと同じように、配列に設定してSendInputすることになるかと。
# ただ、前回の回答の通りであればki.wScanは0設定でも大丈夫かも知れませんが。(未検証なので自己責任でお願いします)
    • good
    • 0
この回答へのお礼

ありがとうございます。
でも、実際に動かして動作を確認するにはまだまだ時間がかかりそうです。

お礼日時:2017/03/02 15:18

>inp[1].ki.wVk = (short)Keys.A;



でKeys列挙型からのキャストをやっています。
ので、同じように記述することになるかと。

シフトキーの場合は Keys.Shift ではなく、Keys.ShiftKey ですので、その辺りにご注意を。
Altキーやコントロールキーなんかも同様の注意が必要です。
この回答への補足あり
    • good
    • 0

Keys列挙型…かなぁ?


https://msdn.microsoft.com/ja-jp/library/system. …

int型にキャストが必要かも知れませんけど。


VK_なんたらは以下のページに。(あるいはWindowsSDKのヘッダファイルとか)
https://msdn.microsoft.com/en-us/library/windows …
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!