Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ManagementScope和Win32_产品检索可执行路径_C# - Fatal编程技术网

C# ManagementScope和Win32_产品检索可执行路径

C# ManagementScope和Win32_产品检索可执行路径,c#,C#,我目前正在做一个C#项目。我将ManagementScope与Win32_产品一起使用。我正在成功地检索软件名称、供应商和安装位置,但我希望能够获取启动软件的实际可执行文件的路径 我正在使用以下代码检索信息 try { ManagementScope scope = new ManagementScope("\\\\.\\ROOT\\cimv2"); ObjectQuery query = new Obje

我目前正在做一个C#项目。我将ManagementScope与Win32_产品一起使用。我正在成功地检索软件名称、供应商和安装位置,但我希望能够获取启动软件的实际可执行文件的路径

我正在使用以下代码检索信息

try
            {
                ManagementScope scope = new ManagementScope("\\\\.\\ROOT\\cimv2");

                ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_Product");

                ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);

                ManagementObjectCollection queryCollection = searcher.Get();

                DataSet ds = new DataSet();
                dt = new DataTable();
                ds.Tables.Add(dt);

                DataColumn sofNameCol = new DataColumn("Software", typeof(string));
                DataColumn sofPublish = new DataColumn("Publisher", typeof(string));
                DataColumn sofInstallCol = new DataColumn("Install Path", typeof(string));
                dt.Columns.Add(sofNameCol);
                dt.Columns.Add(sofPublish);
                dt.Columns.Add(sofInstallCol);

                foreach (ManagementObject m in queryCollection)
                {
                    string softwareName = m["Name"].ToString();
                    string publisher = m["Vendor"].ToString();
                    object install = m["InstallLocation"];

                    if (install != null)
                    {
                        DataRow rw = dt.NewRow();
                        dt.Rows.Add(rw);

                        rw["Software"] = softwareName;
                        rw["Publisher"] = publisher;
                        rw["Install Path"] = install;
                    }
                    Console.WriteLine("Software Name: {0}", m["Name"]);
                    Console.WriteLine("Publisher: {0}", m["Vendor"]);
                    Console.WriteLine("Path: {0}", m["InstallLocation"]);
                }
                this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Background, new System.Windows.Threading.DispatcherOperationCallback(delegate
                {
                    tblSoftware.ItemsSource = ds.Tables[0].DefaultView;
                    sortData();
                    return null;
                }), null);

            }
            catch (ManagementException ex)
            {
                Console.WriteLine("Management Error: " + ex.Message);
            }
我已经尝试过谷歌搜索如何扩展代码来检索可执行路径。谢谢你能提供的帮助