private bool retrieveRegistry() { var tablePathRagistry = new string[] { @"SOFTWARE\Wow6432Node\", @"SOFTWARE\" }; var tableIdsProduct = this.tableInfosProduct.Keys; foreach (var pairInfoProduct in this.tableInfosProduct) { var infoProduct = pairInfoProduct.Value; var idProductAuth = pairInfoProduct.Key; var idProductUnInstall = infoProduct.idProductUnInstall; var nameKey = @"DOGA-" + idProductUnInstall; foreach (var pathRegistry in tablePathRagistry) { var builder = new StringBuilder(); builder.Append(pathRegistry); builder.Append(@"Microsoft\Windows\CurrentVersion\Uninstall\"); builder.Append(nameKey); var key = Registry.LocalMachine.OpenSubKey(builder.ToString()); if (key == null) { continue; } var pathUnInstall = (string)key.GetValue("UninstallString"); if (pathUnInstall == null) { continue; } var regexp = new Regex(@"uninst[\w\d]*\.exe"); var matched = regexp.Match(pathUnInstall); int indexUninstallExe = matched.Index; var pathInstalled = pathUnInstall.Substring(0, indexUninstallExe); #if DOGALX_DLL_CHECK_USER_REGISTRATION if (!checkUserRegistration(pathInstalled, infoProduct)) { continue; } #endif var infoInstall = new InstallInfo(pathInstalled, infoProduct); this.tableInfosInstall.Add(idProductAuth, infoInstall); break; } } return(true); }
public InstallInfo(InstallInfo infoInstall) : base(infoInstall.infoProduct) { this.pathInstalled = infoInstall.pathInstalled; this.loadProfileIni(); }