2016-10-09 24 views
-1

Okey,我檢查HWID的代碼工作正常,但當它傳遞的部分傳遞HWID在字符串它不工作,它返回空白。C#HWID檢查,它的工作,但不會傳遞到字符串

這是我的代碼使用

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"; 

使一切更清楚我嘗​​試做API調用,一切都很好,但是當涉及到HWID它的失敗。

//編輯

我一直失敗,如果有人williing改寫和修復代碼生病幸福..謝謝!

+0

你讓HWID的Form1_Load的()方法的局部變量。刪除「字符串」。 –

+0

@HansPassant是這樣的嗎? http://pastebin.com/unV8fqfC – CEED

回答

0

您必須聲明字符串「HW ID「在Form1_Load之外。

所以看起來

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; 
     } 
    } 

} 

我總是做了這樣的

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

我有點修復它,現在的問題是,ii需要使這項工作在64/32位PC上。 Thiis工作在32位,但在64位電腦上它返回相同的ID無論如何 – CEED

0

您無需設置HWID字符串爲null,如果它不是靜態的或者未從其他方法或類Accessable

我知道人有一些編碼風格,但如果你寫你的代碼,你上面的評論它更乾淨和可讀性

看到這個QuestionThis教程

如果我想獲得硬件ID,我創建了一個方法得到它

+0

讓我試一下,讓我知道會發生什麼,ty! – CEED

+0

我一直失敗:/ – CEED

相關問題