2016-10-09 1 views
-1

Okey、HWIDをチェックするコードがうまくいきましたが、HWIDを文字列に渡す部分が来たら、空白に戻ります。C#HWIDチェック、その動作が文字列に渡されません

これは私がAPI呼び出しをしようとしてすべてのものにもより明確イムを作るために

private void Form1_Load(object sender, EventArgs e) 
    { 
     string HWID = string.Empty;//creating a empty string 
     ManagementClass Management = new ManagementClass("win32_processor");//declaring the system management calss 
     ManagementObjectCollection MObject = Management.GetInstances();//decalring the system management object collection 
     foreach (ManagementObject mob in MObject)//having a foreach loop 
     { 
      if (string.IsNullOrEmpty(HWID)) 
      { 
       HWID = mob.GetPropertyValue("processorID").ToString();//converting the HWID to string 
       break; 
      } 
     } 

    } 

    private void alphaBlendTextBox2_TextChanged(object sender, EventArgs e) 
    { 

    } 

    private void pictureBox1_Click(object sender, EventArgs e) 
    { 
     string loginUrl = "http://xxxxxx.xyz/customapi.php?username=" + alphaBlendTextBox1.Text + "&password=" + alphaBlendTextBox2.Text + "&hid=" + hwid + "&apiKey=APIKEYHERE&hid=" + HWID + "&ver=2"; 

を使用するコードで、すべてが正常であるが、それはHWIDその失敗に来るとき。

//編集

コードを書き換えると修正するwilliing誰もが病気に幸せである場合、私は、失敗し続ける...ありがとう!

+0

のようにそれをやりました。 「文字列」を削除します。 –

+0

@HansPassantのような? http://pastebin.com/unV8fqfC – CEED

答えて

0

ためのメソッドを作成Form1_Loadの外に「ID」があります。

だから、

string HWID = string.Empty;//creating a empty string 

private void Form1_Load(object sender, EventArgs e) 
{ 
    ManagementClass Management = new ManagementClass("win32_processor");//declaring the system management calss 
    ManagementObjectCollection MObject = Management.GetInstances();//decalring the system management object collection 
    foreach (ManagementObject mob in MObject)//having a foreach loop 
    { 
     if (string.IsNullOrEmpty(HWID)) 
     { 
      HWID = mob.GetPropertyValue("processorID").ToString();//converting the HWID to string 
      break; 
     } 
    } 

} 

のように見えます私はいつもあなた例ではForm1_Load()メソッドのローカル変数をHWID作っこの

string HWID = String.Empty; 
ManagementObjectSearcher moSearcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Processor"); 
foreach (ManagementObject mngObj in moSearcher.Get()) 
{ 
    HWID = mngObj["ProcessorId"].ToString(); 
} 
+0

私はちょっと修正しましたが、今問題は64/32bit PCでこの作業をする必要があることです。 Thiisは32ビットで動作しますが、64ビットPCでは何があっても同じIDを返す – CEED

0

あなたは必要はありませんが、それは別のメソッドまたはクラス

からアクセス可能な静的またはないではない場合、私は誰もがいくつかのコーディングスタイルを持って知っているが、あなたのコード上で、あなたの書き込みあなたのコメント場合、それは、よりクリーンで

読みやすいですnullにHWID文字列を設定します

「HWをこのQuestionThisチュートリアル

を参照してください、私はハードウェアIDを取得したい場合、私はあなたが文字列を宣言する必要があり、それを得る

+0

私は試してみましょう、そして、ああ、何が起こるか知ってみましょう、タイ! – CEED

+0

私はまだ失敗しています:/ – CEED

関連する問題