Installierte Programme auflisten



  • Hallo, vielleicht kann mir einer von euch verraten, warum nicht alle
    Programme, die unter "Software" aufgelistet werden mit MsiGetProductInfo
    angezeigt werden?

    while(ERROR_SUCCESS == (ret = MsiEnumProducts(i, pcode)))
    
    	{
    
    		if(ERROR_SUCCESS == MsiGetProductInfo(
    
    			pcode, 
    
    			INSTALLPROPERTY_INSTALLEDPRODUCTNAME,
    
    			NULL,
    
    			&newsz))
    
    		{
    
    			if(newsz > sz)
    
    			{
    
    				delete [] name;
    
    				name = new TCHAR[newsz + 1];
    
    				sz = newsz;
    
    			}
    
    			newsz = sz + 1;
    
    			if(ERROR_SUCCESS == MsiGetProductInfo(
    
    				pcode, 
    
    				INSTALLPROPERTY_INSTALLEDPRODUCTNAME,
    
    				name,
    
    				&newsz))
    
    			{
    			wcout<<name<<endl;
    
    			}
    
    			else
    			cout<<"Error while getting product name"<<endl;
    
    		}
    
    		else
    		cout<<"Error while getting product name"<<endl;
    
    		i++;
    
    	}
    
    	delete [] name;
    
    	if(ret != ERROR_NO_MORE_ITEMS)
    
    		cout<<"Error: "<<ret<<endl;
    

  • Mod

    Weil die anderen Programme MSI nicht benutzen.



  • Danke Martin. Ich bin auf eine Klasse von Codeproject umgestiegen die ich mal
    zur Analyse zerlege. Habs mir fast gedacht.



  • Hey ho,

    des is ja lustig, weil ich hab mir heut au schon mal ueberlegt wie man die Programme die unter Software aufgelistet werden herausfinden kann. Muss aber ehrlich sagen war zu faul zum suchen.

    Shoggy schrieb:

    Danke Martin. Ich bin auf eine Klasse von Codeproject umgestiegen die ich mal
    zur Analyse zerlege. Habs mir fast gedacht.

    Koennteste mir da mal den Link geben?

    Peace & Blessed Love C0de4Fun



  • Hab's nochmal für dich und die Nachwelt rausgesucht:

    http://www.codeproject.com/KB/system/installed_programs.aspx


Anmelden zum Antworten