Winform 打包,卸载程序制作--获取ProductCode

方法一:(速度慢)

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Product");

            string productcode;

            foreach (ManagementObject wmi in searcher.Get())

            {

                if (wmi.GetPropertyValue("Name").ToString() == "yourapplicationname")

                {

                    productcode = wmi.Properties["ProductID"].Value.ToString();

                    break;

                }

            }

http://social.msdn.microsoft.com/Forums/zh-CN/winforms/thread/02397dc0-2653-4afe-9539-9356befa6147

方法二:

       Type type = Type.GetType("WindowsInstaller.Installer") ?? //这个取不到type不知道咋回事
                            Type.GetTypeFromProgID("WindowsInstaller.Installer");
                WindowsInstaller.Installer installer = (WindowsInstaller.Installer)
                                                       Activator.CreateInstance(type);

                string productCode = string.Empty;

                foreach (string code in installer.Products)
                {
                    string productName = installer.get_ProductInfo(code, "InstalledProductName");
                    if (productName == "YourPruductName")
                    {
                        productCode = code;
                        break;
                    }
                }

http://www.pcreview.co.uk/forums/obtain-product-code-within-c-application-t3631582.html

 

posted @ 2011-03-20 22:27  sweetjian  阅读(1266)  评论(0编辑  收藏  举报