1

已使用以下代码来获取我计算机上的软件列表,但是我想获取安装在 LAN 上每台单独计算机上的所有软件的列表。

我想获取网络上的计算机列表,然后选择我要扫描的计算机。不希望一次扫描所有计算机。

非常感谢任何相关的帮助。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;

namespace Final_Year_Project
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void btn_GetSoftware_Click(object sender, EventArgs e)
    {
        string uninstallKey =        @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
        using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(uninstallKey))
        {
            foreach (string skName in rk.GetSubKeyNames())
            {
                using (RegistryKey sk = rk.OpenSubKey(skName))
                {
                    try
                    {
                        string[] row = {     sk.GetValue("DisplayName").ToString()};
                        var listViewItem = new ListViewItem(row);
                        lst_Software.Items.Add(listViewItem);
                    }

                    catch (Exception ex)
                    { }
                }
            }
            lbl_SoftwareReturned.Text += " (" +     lst_Software.Items.Count.ToString() + ")";
        }  
    }

    private void lst_Software_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
4

1 回答 1

0

要访问另一台机器上的注册表,请使用RegistryKey.OpenRemoteBaseKey

于 2016-01-31T16:55:01.117 回答