>백엔드 개발 >C++ >C#에서 설치된 애플리케이션 목록을 어떻게 검색할 수 있나요?

C#에서 설치된 애플리케이션 목록을 어떻게 검색할 수 있나요?

Barbara Streisand
Barbara Streisand원래의
2025-01-24 23:52:10360검색

How Can I Retrieve a List of Installed Applications in C#?

C#을 사용하여 시스템에 설치된 애플리케이션 가져오기

질문:

C# 코드를 사용하여 시스템에 설치된 애플리케이션을 확인하는 방법은 무엇입니까?

해결책:

C#을 사용하여 시스템에 설치된 애플리케이션 목록을 얻으려면 레지스트리 또는 WMI(Windows Management Instrumentation)를 사용할 수 있습니다.

레지스트리 기반 방법:

"SOFTWAREMicrosoftWindowsCurrentVersionUninstall" 레지스트리 키를 반복하면 설치된 애플리케이션의 전체 목록을 제공할 수 있습니다. 각 하위 키는 서로 다른 응용 프로그램을 나타내며 "DisplayName" 값에는 응용 프로그램의 이름이 포함됩니다.

WMI 방법:

느리지만 실행 가능한 대안은 ManagementObjectSearcher 개체를 통해 WMI를 사용하는 것입니다. "SELECT * FROM Win32_Product" 쿼리는 설치된 프로그램 목록을 검색합니다. 각 ManagementObject의 "Name" 속성은 애플리케이션의 이름을 나타냅니다.

코드 조각:

레지스트리 기준:

<code class="language-csharp">string registry_key = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using (Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registry_key))
{
    foreach (string subkey_name in key.GetSubKeyNames())
    {
        using (RegistryKey subkey = key.OpenSubKey(subkey_name))
        {
            Console.WriteLine(subkey.GetValue("DisplayName"));
        }
    }
}</code>

WMI 기준:

<code class="language-csharp">ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_Product");
foreach (ManagementObject mo in mos.Get())
{
    Console.WriteLine(mo["Name"]);
}</code>

참고:

레지스트리 기반 방법으로 Windows 업데이트 및 구성 요소를 캡처할 수도 있습니다. WMI는 느리기는 하지만 모든 사용자에게 설치된 응용 프로그램이 누락될 수 있습니다. 필요에 따라 적절한 방법을 선택할 수 있습니다.

위 내용은 C#에서 설치된 애플리케이션 목록을 어떻게 검색할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.