Note that there are some explanatory texts on larger screens.

plurals
  1. PODecrease WMI query execution time
    text
    copied!<p>In my application i want to see if windows 7 is activated. To be clear, i do not want to check if windows are genuine. I use the code below, found here <a href="http://www.dreamincode.net/forums/topic/166690-wmi-softwarelicensingproduct/" rel="nofollow">http://www.dreamincode.net/forums/topic/166690-wmi-softwarelicensingproduct/</a></p> <p>The time needed to execute the query is about 5-10 sec. Is there anyway to reduce the time needed? Or another way to check if winows 7 is activated?</p> <pre><code>public string VistaOrNewerStatus(){ string status = string.Empty; string computer = "."; try { //set the scope of this search ManagementScope scope = new ManagementScope(@"\\" + computer + @"\root\cimv2"); //connect to the machine scope.Connect(); //use a SelectQuery to tell what we're searching in SelectQuery searchQuery = new SelectQuery("SELECT * FROM SoftwareLicensingProduct"); //set the search up ManagementObjectSearcher searcherObj = new ManagementObjectSearcher(scope, searchQuery); //get the results into a collection using (ManagementObjectCollection obj = searcherObj.Get()) { MessageBox.Show(obj.Count.ToString()); //now loop through the collection looking for //an activation status foreach (ManagementObject o in obj) { //MessageBox.Show(o["ActivationRequired"].ToString()); switch ((UInt32)o["LicenseStatus"]) { case 0: status = "Unlicensed"; break; case 1: status = "Licensed"; break; case 2: status = "Out-Of-Box Grace Period"; break; case 3: status = "Out-Of-Tolerance Grace Period"; break; case 4: status = "Non-Genuine Grace Period"; break; } } } // return activated; } catch (Exception ex) { // MessageBox.Show(ex.ToString()); status = ex.Message; //return false; } return status; </code></pre> <p>}</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload