DirectInputたぶん完全解説・メソッド・・・中枢

コード中枢(値の取得)

やってきました!ちゅーす〓(頭逝ってます
うっ、またしても解説の必要が・・・・ない
平常時の頭が睡魔に捲かれた頭とPen4とcleくらいの差があることを実感中
というわけで、まんまペタ

  bool Whatkeypush()             //何が押されたか
  {
   string textnow = String.Empty;         //String変数初期化
   KeyboardState state = null;          //キーボード状態初期化

   if (null == applicationDevice)         //デバイス初期状態
    return true;            //返り値true戻す

   InputException ie = null;          //DirectInput例外 ie値無し
   try
   {
    state = applicationDevice.GetCurrentKeyboardState();  //stateにデバイスから直接データを取得
   }
   catch (DirectXException)          //↑が失敗した場合
   {
            
    bool loop = true;           //trueの場合ループ
    do               //falseになるまで繰り返す
    {
     try
     {
      applicationDevice.Acquire();      //デバイス占用
     }
     catch(InputLostException)        //アクセス権を失った場合
     {
      loop = true;          //ループ再実行
     }
     catch(InputException inputException)     //新規デバイス初期化占用
     {
      ie = inputException;        //ieにinputExceptionを入れる
      loop = false;          //ループ終了可能
     }
    }while (loop);            //ループfalseのため終了
//↓例外発生 他のアプリケーションが完全占用状態又は占用不能
    if (ie is OtherApplicationHasPriorityException || ie is NotAcquiredException)
     label1.Text = "キーボードを占用できません。他のアプリケーションを終了してください";

    return true;            //返り値true戻す 
   }
    
   for (Key k = Key.Escape; k <= Key.MediaSelect; k++)    //falseになるまで繰り返す(MediaSelectの方が優先度高)
   {
    if (state[k])            //デバイスより直接得たデータをkとする
     textnow += k.ToString() + " ";       //kの後にスペースを入れたものをtextnowに追加
//ToStringはバイナリを文字にしている・・・だったはず。
   }
    
   if (label1.Text != textnow)          //もしtextnowとlabel1.textが等しくない場合
    label1.Text = textnow;          //label1.textにtextnowを入れる
    
   return true;             //戻す
  }

一応説明足りない部分書き足して、これで完了かな?前も述べたとおりlabel1に結果をだすプログラム