2012-08-06 3 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

어떤 소프트웨어입니까? 자신의 소프트웨어 또는 타사 소프트웨어? –

+0

나는 원격 컴퓨터에 설치된 모든 소프트웨어를 말하며 .... 내 자신의 소프트웨어에 관한 것은 아닙니다. – Arshad

답변

1

정상적으로 아니다.

프로그램을 제거 할 때마다 프로그램의 모든 비트가 시스템에서 제거되어야합니다. 불행하게도 거의 모든 프로그램이이 시점에서 완벽한 작업을 수행하지 못해 컴퓨터에 일부 가공물이 남습니다.

그럼에도 불구하고 원하는 동작은 프로그램을 현재 설치했는지 여부 만 확인할 수 있도록 모든 항목을 제거한 후 (일종의 카운터 포함) 제거 된 것입니다.

다른 사이트에서는 프로그램이 설치가 시작될 때마다 증가 할 일부 카운터 (예 : 레지스트리)를 저장할 수있는 프로그램이 없지만 각 프로그램에 특정적인 내용이며 카운터가 상주해야하는 일반적인 메커니즘이 없습니다.

관련 문제