private static IEnumerable <ApplicationUninstallerEntry> GetUpdates() { if (!HelperIsAvailable) { yield break; } var output = FactoryTools.StartProcessAndReadOutput(HelperPath, "list"); if (string.IsNullOrEmpty(output) || output.Trim().StartsWith("Error", StringComparison.OrdinalIgnoreCase)) { yield break; } foreach (var group in FactoryTools.ExtractAppDataSetsFromHelperOutput(output)) { var entry = new ApplicationUninstallerEntry { UninstallerKind = UninstallerType.WindowsUpdate, IsUpdate = true, Publisher = "Microsoft Corporation" }; foreach (var valuePair in group) { switch (valuePair.Key) { case "UpdateID": entry.RatingId = valuePair.Value; if (GuidTools.TryExtractGuid(valuePair.Value, out var result)) { entry.BundleProviderKey = result; } break; case "RevisionNumber": entry.DisplayVersion = ApplicationEntryTools.CleanupDisplayVersion(valuePair.Value); break; case "Title": entry.RawDisplayName = valuePair.Value; break; case "IsUninstallable": if (bool.TryParse(valuePair.Value, out var isUnins)) { entry.IsProtected = !isUnins; } break; case "SupportUrl": entry.AboutUrl = valuePair.Value; break; case "MinDownloadSize": if (long.TryParse(valuePair.Value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var size)) { entry.EstimatedSize = FileSize.FromBytes(size); } break; case "MaxDownloadSize": break; case "LastDeploymentChangeTime": if (DateTime.TryParse(valuePair.Value, CultureInfo.InvariantCulture, DateTimeStyles.None, out var date) && !DateTime.MinValue.Equals(date)) { entry.InstallDate = date; } break; default: Debug.Fail("Unknown label"); break; } } entry.UninstallString = $"\"{HelperPath}\" uninstall {entry.RatingId}"; entry.QuietUninstallString = entry.UninstallString; yield return(entry); } }
public override void OnLoadRes() { base.OnLoadRes(); GUIFrame frame = GuidNewModule.Instance.GetFrameByResName(frameName); if (frame == null) { return; } Transform tran = frame.FrameRootTransform.Find(itemName); if (tran == null) { return; } if (this.m_tick) { GuidNewModule.Instance.RemoveFunction(this); } //Vector4 m_tempVec = new Vector4(Screen); //GameEvents.UI_Guid_Event.OnReflashCircleMask.SafeInvoke(tempVec, 1); GameEvents.UI_Guid_Event.OnMaskClick += OnMaskClick; RectTransform srcRect = tran.GetComponent <RectTransform>(); Action act = () => { if (this.m_isClearing) { return; } Vector2[] cornPos = GuidTools.getCornPos(srcRect, this.lessPixel); GameEvents.UI_Guid_Event.OnShowMask.SafeInvoke(new List <Vector2[]> { cornPos }, new List <MaskEmptyType> { emptyType }, animType, eventName, isScene == 2); if (this.m_rotation >= 0) { GUIFrame guidFrame = GuidNewModule.Instance.GetFrameByResName(UIDefine.UI_GUID); if (guidFrame != null) { Vector2[] emptyPos = GuidNewTools.GetEmptyPos(cornPos, guidFrame.FrameRootTransform); //Vector2 center = new Vector2((emptyPos[2].x + cornPos[0].x) / 2f, (cornPos[1].y + cornPos[0].y) / 2f); GameEvents.UI_Guid_Event.OnLoadEffect.SafeInvoke(20000, "UI_xinshouyindao_shou.prefab", emptyPos[0], Vector2.one, m_rotation); } } }; if (srcRect.sizeDelta.x > 0) { if (this.delayTimeTT > 0) { TimeModule.Instance.SetTimeout(act, this.delayTimeTT); } else { act(); } } else { TimeModule.Instance.SetTimeout(act, 0.8f); Debug.Log("mask time out === "); } }