System.Management.ManagementObjectCollection UserSearch = new System.Management.ManagementObjectSearcher("Select * FROM Win32_Account").Get(); MessageBox.Show("Count:"+UserSearch.Count.ToString()); // removing this line will noth throw an exception in the foreach foreach(System.Management.ManagementObject mo in UserSearch) { if (MessageBox.Show(mo["Name"].ToString(),"next?",MessageBoxButtons.YesNo) == DialogResult.No) { break; } }The exception that is thrown in the foreach has the following message:
An unhandled exception of type 'System.Management.ManagementException' occurred in system.management.dll Additional information: COM object that has been separated from its underlying RCW can not be used.I am unsure why the messagebox causes problems.
>private void button11_Click(object sender, System.EventArgs e) >{ > ManagementObjectCollection UserSearch = new ManagementObjectSearcher("Select * FROM Win32_Account").Get(); > foreach(ManagementObject mo in UserSearch) > { > MessageBox.Show(mo["Name"].ToString()); > } >} > >private void button12_Click(object sender, System.EventArgs e) >{ > System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_Account"); > foreach (System.Management.ManagementObject mo in searcher.Get()) > { > MessageBox.Show(mo["Name"].ToString()); > } >} >>