2012-08-06 92 views
0

有什么方法(使用WMI类在C#中)找出特定软件的安装和卸载次数?在计算机上安装和卸载软件的次数有多少次

我想在远程计算机上运行它。我正在通过以下代码获取软件列表:

ManagementScope scope = new ManagementScope(@"\\" + ipAddress + @"\root\cimv2"); 
ObjectQuery query = new ObjectQuery("Select * from Win32_Product"); 
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query); 
ManagementObjectCollection queryCollection = searcher.Get(); 
foreach (ManagementObject m in queryCollection) 
{ 
    Console.Write(m["Caption"]+"\t"); 
    Console.WriteLine(m["installDate"]); 
} 
+1

哪个软件?您自己的软件或第三方软件? – 2012-08-06 12:57:41

+0

我的意思是安装在远程计算机上的所有软件....不是关于我自己的软件 – Arshad 2012-08-11 03:47:52

回答

1

通常不会。

当程序将被卸载时,程序的每一位都应该从机器中删除,就像它从来不是它们的。不幸的是,几乎所有的程序都没有在这一点上做出完美的工作,在机器上留下一些文物。

尽管如此,预期的行为是,卸载后一切都消失了(包括某种计数器),以便只能检查程序是否当前安装。

在另一个网站上没有允许程序保存在某个地方的一些计数器(如注册表),这将增加每次一个安装开始,但这是特定于每个程序的东西,没有共同的机制存在,其中该计数器应该驻留。

相关问题