internal Items(Settings settings, FileTypeCollection fileTypes) { this._Settings = settings; this._FileTypes = fileTypes; }
private static Items Load() { Settings settings = new Settings(); FileType[] supportedTypes = new FileType[] { new PngFileType(), new BmpFileType(), new TiffFileType(), new JpegFileType(), new GifFileType() }; FileTypeCollection fileTypes = new FileTypeCollection(supportedTypes); using (RegistryKey Key = Registry.CurrentUser.OpenSubKey(@"Software\Goletas\ScreenCapture", RegistryKeyPermissionCheck.ReadSubTree)) { if (Key != null) { try { for (int i = 0; i < supportedTypes.Length; i++) { if (supportedTypes[i].IsEditable) { supportedTypes[i].Deserialize(Key.GetValue(supportedTypes[i].FormatId.ToString("B")) as byte[]); } } settings.IncludeCursor = Settings.Int32ToBoolTrueOnFail(Key.GetValue("IncludeCursor")); settings.AlwaysOnTop = Settings.Int32ToBoolFalseOnFail(Key.GetValue("AlwaysOnTop")); if (settings.UpdateFileNameFormat(Key.GetValue("FileName") as string)) { settings.ImageDestinations = Settings.ToImageDestinations(Key.GetValue("ImageDestinations")); } settings.WorkingDirectory = Key.GetValue("WorkingDirectory") as string; settings.UseExternalApp = Settings.Int32ToBoolFalseOnFail(Key.GetValue("UseExternalApp")); settings.ExternalApp = Key.GetValue("ExternalApp") as string; settings.UseFileOverwrite = Settings.Int32ToBoolFalseOnFail(Key.GetValue("UseFileOverwrite")); string FormatId = Key.GetValue("FileType") as string; int TypeIndex; if (Settings.IsGuid(FormatId) && ((TypeIndex = fileTypes.IndexOf(new Guid(FormatId))) >= 0)) { settings.FileType = fileTypes[TypeIndex]; } } catch (IOException) { } } } using (RegistryKey Key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", RegistryKeyPermissionCheck.ReadSubTree)) { if (Key != null) { try { settings.AutoStartup = ((Key.GetValue("Goletas.ScreenCapture") as string) == ("\"" + System.Windows.Forms.Application.ExecutablePath + "\" background")); } catch (IOException) { } } } if (settings.FileType == null) { settings.FileType = fileTypes[0]; } if (!Settings.IsValidPath(settings.WorkingDirectory)) { settings.WorkingDirectory = null; settings.ImageDestinations = ImageDestinations.Clipboard; } if (!Settings.IsValidPathToExecutable(settings.ExternalApp)) { settings.ExternalApp = null; settings.UseExternalApp = false; } return new Items(Settings.Synchronized(settings), fileTypes); }