2010-05-25 9 views
6

के साथ स्थापित प्रोग्राम की एक सूची प्राप्त करें मुझे स्थानीय मशीन पर एप्लिकेशन आइकन के साथ स्थापित प्रोग्राम की एक सूची प्राप्त करने की आवश्यकता है। नीचे कोड स्निपेट है जो स्थापित प्रोग्राम की सूची और स्थापित निर्देशिका पथ प्राप्त करने के लिए उपयोग कर रहा है।एप्लिकेशन आइकन

/// <summary> 
    /// Gets a list of installed software and, if known, the software's install path. 
    /// </summary> 
    /// <returns></returns> 
    private string Getinstalledsoftware() 
    { 
     //Declare the string to hold the list: 
     string Software = null; 

     //The registry key: 
     string SoftwareKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"; 
     using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(SoftwareKey)) 
     { 
      //Let's go through the registry keys and get the info we need: 
      foreach (string skName in rk.GetSubKeyNames()) 
      { 
       using (RegistryKey sk = rk.OpenSubKey(skName)) 
       { 
        try 
        { 
         //If the key has value, continue, if not, skip it: 
         if (!(sk.GetValue("DisplayName") == null)) 
         { 
          //Is the install location known? 
          if (sk.GetValue("InstallLocation") == null) 
           Software += sk.GetValue("DisplayName") + " - Install path not known\n"; //Nope, not here. 
          else 
           Software += sk.GetValue("DisplayName") + " - " + sk.GetValue("InstallLocation") + "\n"; //Yes, here it is... 
         } 
        } 
        catch (Exception ex) 
        { 
         //No, that exception is not getting away... :P 
        } 
       } 
      } 
     } 

     return Software; 
    } 

अब समस्या यह है कि मैं स्थापित एप्लिकेशन आइकन कैसे प्राप्त कर सकता हूं?

अग्रिम धन्यवाद।

+0

एक और बात यह है कि इसके बाद के संस्करण कोड भी शामिल है विंडो अपडेट, मैं उन कार्यक्रमों को कैसे बाहर कर सकता हूं? – MUS

उत्तर

8

यह निर्धारित करने के लिए कि क्या यह एक अपडेट है, IsMinorUpgrade नामक एक कुंजी होगी। यह मौजूद है और अपडेट के लिए 1 पर सेट है। यदि यह 0 है या मौजूद नहीं है, तो यह अद्यतन नहीं है।

एक निष्पादन से एक आइकन पाने के लिए, इस कोड का उपयोग:

वीबी:

Public Function IconFromFilePath(filePath As String) As Icon 
    Dim result As Icon = Nothing 
    Try 
     result = Icon.ExtractAssociatedIcon(filePath) 
    Catch ''# swallow and return nothing. You could supply a default Icon here as well 
    End Try 
    Return result 
End Function 

सी #:

public Icon IconFromFilePath(string filePath) 
{ 
    Icon result = null; 
    try { 
     result = Icon.ExtractAssociatedIcon(filePath); 
    } catch { } 
    return result; 
} 
+0

मैं स्थापित प्रोग्राम के खिलाफ आइकन प्राप्त करने के लिए "DisplayIcon" कुंजी का उपयोग कर रहा हूं लेकिन WIN XP नियंत्रण कक्ष में उपलब्ध निकालें प्रोग्राम उपयोगिता की तुलना में अलग-अलग परिणाम प्राप्त हुए। कोई सुझाव ? – MUS

+0

वह डरावना है। मेरे पास कोई विचार नहीं है, लेकिन मैं देखूंगा कि मैं और अधिक शोध कर सकता हूं या नहीं – Icemanind

0

पहली बार स्थापित खिड़कियों आवेदन के आइकन को निकालने के लिए हमें स्थापित विंडोज़ एप्लिकेशन के लिए आइकन का स्थान पता लगाने की आवश्यकता है।

  1. कुंजी नाम - - HEKY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall मूल्य - DisplayIcon
  2. कुंजी नाम - HKEY_CLASSES_ROOT \ इंस्टालर \ उत्पाद {productId} मूल्य यह जानकारी निम्न स्थानों पर रजिस्ट्री में संग्रहीत किया जाता है - ProductIcon

और अधिक विस्तार और कोड के लिए आवेदन प्राप्त करने के लिए माउस - http://newapputil.blogspot.in/2015/06/extract-icons-of-installed-windows_17.html

संबंधित मुद्दे