Example #1
0
 internal Items(Settings settings, FileTypeCollection fileTypes)
 {
     this._Settings = settings;
     this._FileTypes = fileTypes;
 }
Example #2
0
        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);
        }