Exemple #1
0
        public static void Associate()
        {
            /*
             * RegistryKey FileReg = Registry.ClassesRoot.CreateSubKey(".code");
             * RegistryKey AppReg = Registry.CurrentUser.CreateSubKey("Dot DeCode.exe");
             * //RegistryKey FileReg = Registry.CurrentUser.CreateSubKey("Software\\Classes\\.code");
             * // RegistryKey AppReg = Registry.CurrentUser.CreateSubKey("Software\\Classes\\Applications\\Dot DeCode.exe");
             * //  RegistryKey AssReg = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\.code");
             *
             *
             * string configFile = string.Empty; ;
             * string appdata = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
             * configFile = Path.Combine(appdata, configFile);
             *
             * FileReg.CreateSubKey("DefaultIcon").SetValue("", System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)+ "\\code.png.ico");
             *
             *
             * AppReg.CreateSubKey("shell\\open\\command").SetValue("", "\"" + System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "\\Dot DeCode.exe"+"\"%1");
             * AppReg.CreateSubKey("DefaultIcon").SetValue("",  System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "\\code.png.ico");
             *
             * //AssReg.CreateSubKey("UserChoice").SetValue("Progid", "Applications\\Dot DeCode.exe");
             *
             * // RegistryKey CurrentUser = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\" + ".code", true);
             * // CurrentUser.DeleteSubKey("UserChoice", false);
             * // CurrentUser.Close();
             *
             * SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero);
             */

            RegistryKey BaseKey;
            RegistryKey OpenMethod;
            RegistryKey Shell;
            RegistryKey CurrentUser;
            string      KeyName = "Dot DeCode";

            BaseKey = Registry.ClassesRoot.CreateSubKey(".code");
            string configFile = string.Empty;;
            string appdata    = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

            configFile = Path.Combine(appdata, configFile);
            BaseKey.SetValue("", KeyName);

            OpenMethod = Registry.ClassesRoot.CreateSubKey(KeyName);
            OpenMethod.SetValue("", "CoDe File");
            OpenMethod.CreateSubKey("DefaultIcon").SetValue("", System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "\\code.png.ico");
            Shell = OpenMethod.CreateSubKey("Shell");
            Shell.CreateSubKey("edit").CreateSubKey("command").SetValue("", "\"" + System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "\\Dot DeCode.exe" + "\"%1");
            Shell.CreateSubKey("open").CreateSubKey("command").SetValue("", "\"" + System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "\\Dot DeCode.exe" + "\"%1");
            BaseKey.Close();
            OpenMethod.Close();
            Shell.Close();

            /*
             * CurrentUser = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\" + ".code", true);
             * CurrentUser.DeleteSubKey("UserChoice", false);
             * CurrentUser.Close();
             */

            SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero);
        }
        // http://stackoverflow.com/questions/2681878/associate-file-extension-with-application
        //[PrincipalPermission(SecurityAction.Demand, Role = @"BUILTIN\Administrators")]
        public static void SetAssociation(string Extension, string KeyName, string OpenWith, string FileDescription)
        {
            // The stuff that was above here is basically the same
            RegistryKey BaseKey;
            RegistryKey OpenMethod;
            RegistryKey Shell;
            RegistryKey CurrentUser;

            BaseKey = Registry.CurrentUser.OpenSubKey("Software\\Classes", true).CreateSubKey(Extension);
            BaseKey.SetValue("", KeyName);

            OpenMethod = Registry.CurrentUser.OpenSubKey("Software\\Classes", true).CreateSubKey(KeyName);
            OpenMethod.SetValue("", FileDescription);
            OpenMethod.CreateSubKey("DefaultIcon").SetValue("", "\"" + OpenWith + "\",0");
            Shell = OpenMethod.CreateSubKey("Shell");
            Shell.CreateSubKey("edit").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
            Shell.CreateSubKey("open").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
            BaseKey.Close();
            OpenMethod.Close();
            Shell.Close();

            // Delete the key instead of trying to change it
            CurrentUser = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\" + Extension, true);
            CurrentUser.DeleteSubKey("UserChoice", false);
            CurrentUser.Close();

            // Tell explorer the file association has been changed
            SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero);
        }
Exemple #3
0
 public void Close()
 {
     if (mShell != null)
     {
         mShell.Close();
     }
 }
Exemple #4
0
        public static void SetAssociation(string Extension, string KeyName, string FileDescription)
        {
            if (!requestPrivilege())
            {
                return;
            }

            RegistryKey BaseKey;
            RegistryKey OpenMethod;
            RegistryKey Shell;
            RegistryKey CurrentUser;
            string      OpenWith = Application.ExecutablePath;


            BaseKey = Registry.ClassesRoot.CreateSubKey(Extension);
            BaseKey.SetValue("", KeyName);

            OpenMethod = Registry.ClassesRoot.CreateSubKey(KeyName);
            OpenMethod.SetValue("", FileDescription);
            OpenMethod.CreateSubKey("DefaultIcon").SetValue("", "\"" + OpenWith + "\",0");
            Shell = OpenMethod.CreateSubKey("Shell");
            Shell.CreateSubKey("edit").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
            Shell.CreateSubKey("open").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
            BaseKey.Close();
            OpenMethod.Close();
            Shell.Close();

            // Tell explorer the file association has been changed
            SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero);
        }
Exemple #5
0
        public static void SetECLPFileOpenHandler()
        {
            RegistryKey BaseKey;
            RegistryKey OpenMethod;
            RegistryKey Shell;
            RegistryKey CurrentUser;
            RegistryKey hkcuClasses     = Registry.CurrentUser.OpenSubKey(@"Software\Classes", true);
            string      Extension       = ".eclp";
            string      KeyName         = "ECLProfile";
            string      OpenWith        = System.Reflection.Assembly.GetEntryAssembly().Location;
            string      FileDescription = "EVE Custom Launcher profile";

            BaseKey = hkcuClasses.CreateSubKey(Extension);
            BaseKey.SetValue("", KeyName);

            OpenMethod = hkcuClasses.CreateSubKey(KeyName);
            OpenMethod.SetValue("", FileDescription);
            OpenMethod.CreateSubKey("DefaultIcon").SetValue("", "" + OpenWith + ",0");
            Shell = OpenMethod.CreateSubKey("Shell");
            Shell.CreateSubKey("open").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"/profile:%1\"");
            BaseKey.Close();
            OpenMethod.Close();
            Shell.Close();

            CurrentUser = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\" + Extension, true);
            if (CurrentUser != null)
            {
                CurrentUser.DeleteSubKey("UserChoice", false);
                CurrentUser.Close();
            }

            SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero);
        }
        //Thanks StackOverflow https://stackoverflow.com/questions/2681878/associate-file-extension-with-application
        public static void SetAssociation(string Extension, string KeyName, string OpenWith, string FileDescription)
        {
            RegistryKey BaseKey;
            RegistryKey OpenMethod;
            RegistryKey Shell;
            RegistryKey CurrentUser;

            BaseKey = Registry.ClassesRoot.CreateSubKey(Extension);
            BaseKey.SetValue("", KeyName);

            OpenMethod = Registry.ClassesRoot.CreateSubKey(KeyName);
            OpenMethod.SetValue("", FileDescription);
            OpenMethod.CreateSubKey("DefaultIcon").SetValue("", "\"" + OpenWith + "\",0");
            Shell = OpenMethod.CreateSubKey("Shell");
            Shell.CreateSubKey("edit").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
            Shell.CreateSubKey("open").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
            BaseKey.Close();
            OpenMethod.Close();
            Shell.Close();

            CurrentUser = Registry.CurrentUser.CreateSubKey(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\" + Extension);
            CurrentUser.DeleteSubKey("UserChoice", false);
            CurrentUser.SetValue("Progid", KeyName, RegistryValueKind.String);
            CurrentUser.Close();

            //Notify Explorer
            SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero);
        }
Exemple #7
0
        public static void SetAssociation(string Extension, string KeyName, string OpenWith, string FileDescription)
        {
            RegistryKey BaseKey;
            RegistryKey OpenMethod;
            RegistryKey Shell;
            RegistryKey CurrentUser;

            BaseKey = Registry.ClassesRoot.CreateSubKey(Extension);
            BaseKey.SetValue("", KeyName);

            OpenMethod = Registry.ClassesRoot.CreateSubKey(KeyName);
            OpenMethod.SetValue("", FileDescription);
            OpenMethod.CreateSubKey("DefaultIcon").SetValue("", "\"" + OpenWith + "\",0");
            Shell = OpenMethod.CreateSubKey("Shell");
            Shell.CreateSubKey("edit").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
            Shell.CreateSubKey("open").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
            BaseKey.Close();
            OpenMethod.Close();
            Shell.Close();

            CurrentUser = Registry.CurrentUser.CreateSubKey($@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\{Extension}");
            CurrentUser = CurrentUser.OpenSubKey("UserChoice", RegistryKeyPermissionCheck.ReadWriteSubTree, System.Security.AccessControl.RegistryRights.FullControl);
            CurrentUser.SetValue("Progid", KeyName, RegistryValueKind.String);
            CurrentUser.Close();

            // Delete the key instead of trying to change it
            CurrentUser = Registry.CurrentUser.OpenSubKey($"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\{Extension}", true);
            CurrentUser.DeleteSubKey("UserChoice", false);
            CurrentUser.Close();

            // Tell explorer the file association has been changed
            SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero);
        }
        public void SetAssociation(string extension, string file = null)
        {
            RegistryKey BaseKey;
            RegistryKey OpenMethod;
            RegistryKey Shell;

            RenameSubKey(Registry.ClassesRoot, extension, extension + "_back");
            SetStatus("SetAssociation:enter");
            BaseKey = Registry.ClassesRoot.CreateSubKey(extension);
            BaseKey.SetValue("", _keyName);

            OpenMethod = Registry.ClassesRoot.CreateSubKey(_keyName);
            OpenMethod.SetValue("", _keyName);//_fileDescription);

            if (!string.IsNullOrEmpty(file))
            {
                _openWith = file;
            }

            OpenMethod.CreateSubKey("DefaultIcon").SetValue("", "\"" + _openWith + "\",0");
            Shell = OpenMethod.CreateSubKey("Shell");
            Shell.CreateSubKey("edit").CreateSubKey("command").SetValue("", "\"" + _openWith + "\"" + " \"%1\"");
            Shell.CreateSubKey("open").CreateSubKey("command").SetValue("", "\"" + _openWith + "\"" + " \"%1\"");
            BaseKey.Close();
            OpenMethod.Close();
            Shell.Close();

            // Tell explorer the file association has been changed
            SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero);
        }
Exemple #9
0
        public static void SetWeakFileAssociation(string Extension, string KeyName, string OpenWith, string FileDescription, bool Unset = false)
        {
            RegistryKey BaseKey;
            RegistryKey OpenMethod;
            RegistryKey Shell;

            BaseKey = Registry.CurrentUser.CreateSubKey("Software\\Classes\\" + Extension, RegistryKeyPermissionCheck.ReadWriteSubTree);
            if (!Unset)
            {
                BaseKey.CreateSubKey("OpenWithProgids").SetValue(KeyName, "");
                OpenMethod = Registry.CurrentUser.CreateSubKey("Software\\Classes\\" + KeyName);
                OpenMethod.SetValue("", FileDescription);
                Shell = OpenMethod.CreateSubKey("Shell");
                Shell.CreateSubKey("open").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
                OpenMethod.Close();
                Shell.Close();
            }
            else
            {
                RegistryKey ProgIds = BaseKey.OpenSubKey("OpenWithProgids", true);
                if (ProgIds != null)
                {
                    ProgIds.DeleteValue(KeyName, false);
                }
                Registry.CurrentUser.OpenSubKey("Software\\Classes\\", true).DeleteSubKeyTree(KeyName, false);
                ProgIds.Close();
            }
            BaseKey.Close();

            // Tell explorer the file association has been changed
            SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero);
        }
Exemple #10
0
        public static void SetAssociation(string Extension, string KeyName, string OpenWith, string FileDescription)
        {
            RegistryKey BaseKey;
            RegistryKey OpenMethod;
            RegistryKey Shell;
            RegistryKey CurrentUser;

            BaseKey = Registry.ClassesRoot.CreateSubKey(Extension);
            BaseKey.SetValue("", KeyName);

            OpenMethod = Registry.ClassesRoot.CreateSubKey(KeyName);
            OpenMethod.SetValue("", FileDescription);
            OpenMethod.CreateSubKey("DefaultIcon").SetValue("", System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "\\code.png.ico");
            Shell = OpenMethod.CreateSubKey("Shell");
            Shell.CreateSubKey("edit").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
            Shell.CreateSubKey("open").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
            BaseKey.Close();
            OpenMethod.Close();
            Shell.Close();

            CurrentUser = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\" + Extension, true);
            CurrentUser.DeleteSubKey("UserChoice", false);
            CurrentUser.Close();
            SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero);
        }
        private static bool AssociateBA2Extension()
        {
            try
            {
                RegistryKey BaseKey;
                RegistryKey OpenMethod;
                RegistryKey Shell;

                BaseKey = Registry.ClassesRoot.CreateSubKey(associateExtension);
                BaseKey.SetValue("", associateKeyName);

                OpenMethod = Registry.ClassesRoot.CreateSubKey(associateKeyName);
                OpenMethod.SetValue("", associateFriendlyName);
                OpenMethod.CreateSubKey("DefaultIcon").SetValue("", "\"" + associateExePath + "\",0");
                Shell = OpenMethod.CreateSubKey("Shell");
                Shell.CreateSubKey("edit").CreateSubKey("command").SetValue("", "\"" + associateExePath + "\"" + " \"%1\"");
                Shell.CreateSubKey("open").CreateSubKey("command").SetValue("", "\"" + associateExePath + "\"" + " \"%1\"");
                BaseKey.Close();
                OpenMethod.Close();
                Shell.Close();

                // Tell explorer the file association has been changed
                NativeMethods.SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero);

                return(true);
            }
            catch (SecurityException)
            {
                return(false);
            }
        }
Exemple #12
0
        public static bool Associated(string KeyName = "ByteFlood", string Description = "TORRENT File", string Extension = ".torrent")
        {
            RegistryKey BaseKey;
            RegistryKey OpenMethod;
            RegistryKey Shell;

            BaseKey = Registry.CurrentUser.OpenSubKey("Software", true).OpenSubKey("Classes", true);
            if (!BaseKey.GetSubKeyNames().Contains(Extension))
            {
                return(false);
            }
            BaseKey = BaseKey.OpenSubKey(Extension);

            OpenMethod = Registry.CurrentUser.OpenSubKey("Software", true).OpenSubKey("Classes", true);
            if (!OpenMethod.GetSubKeyNames().Contains(KeyName))
            {
                return(false);
            }
            OpenMethod = OpenMethod.OpenSubKey(KeyName);
            Shell      = OpenMethod.OpenSubKey("Shell");
            if (!Shell.GetSubKeyNames().Contains("open"))
            {
                return(false);
            }
            BaseKey.Close();
            OpenMethod.Close();
            Shell.Close();
            return(true);
        }
Exemple #13
0
        public static void SetAssociation(string KeyName = "ByteFlood", string Description = "TORRENT File", string Extension = ".torrent")
        {
            RegistryKey BaseKey;
            RegistryKey OpenMethod;
            RegistryKey Shell;
            RegistryKey CurrentUser;

            BaseKey = Registry.CurrentUser.OpenSubKey("Software\\Classes", true).CreateSubKey(Extension);
            BaseKey.SetValue("", KeyName);

            OpenMethod = Registry.CurrentUser.OpenSubKey("Software\\Classes", true).CreateSubKey(KeyName);
            OpenMethod.SetValue("", Description);
            OpenMethod.CreateSubKey("DefaultIcon").SetValue("", "\"" + OpenWith + "\",0");
            Shell = OpenMethod.CreateSubKey("Shell");
            Shell.CreateSubKey("open").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
            BaseKey.Close();
            OpenMethod.Close();
            Shell.Close();

            CurrentUser = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\.torrent", true);
            CurrentUser.DeleteSubKey("UserChoice", false);
            CurrentUser.Close();

            SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero);
        }
Exemple #14
0
        //START -- Association | .gs
        public static void SetAssociation(string Extension, string KeyName, string OpenWith, string FileDescription)
        {
            if (!UacHelper.IsUacEnabled || !UacHelper.IsProcessElevated)
            {
                return;
            }

            RegistryKey BaseKey;
            RegistryKey OpenMethod;
            RegistryKey Shell;
            RegistryKey CurrentUser;

            BaseKey = Registry.ClassesRoot.CreateSubKey(Extension);
            BaseKey.SetValue("", KeyName);

            OpenMethod = Registry.ClassesRoot.CreateSubKey(KeyName);
            OpenMethod.SetValue("", FileDescription);
            OpenMethod.CreateSubKey("DefaultIcon").SetValue("", "\"" + OpenWith + "\",0");
            Shell = OpenMethod.CreateSubKey("Shell");
            Shell.CreateSubKey("edit").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
            Shell.CreateSubKey("open").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
            BaseKey.Close();
            OpenMethod.Close();
            Shell.Close();

            CurrentUser = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\" + Extension, true);
            CurrentUser.DeleteSubKey("UserChoice", false);
            CurrentUser.Close();

            SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero);
        }
Exemple #15
0
        private void NavigatableOnRequestClose(object sender, EventArgs e)
        {
            if (Config.BlockWindowClose)
            {
                return;
            }

            Shell.Close();
        }
Exemple #16
0
        bool SetAssociation(string Extension, string KeyName, string OpenWith, string FileDescription)
        {
            RegistryKey BaseKey;
            RegistryKey OpenMethod;
            RegistryKey Shell;
            RegistryKey CurrentUser;

            try
            {
                BaseKey = Registry.ClassesRoot.CreateSubKey(Extension);
                BaseKey.SetValue("", KeyName);
                BaseKey.Flush();
                BaseKey.Close();

                OpenMethod = Registry.ClassesRoot.CreateSubKey(KeyName);
                OpenMethod.SetValue("", FileDescription);
                OpenMethod.CreateSubKey("DefaultIcon").SetValue("", "\"" + OpenWith + "\",0");
                OpenMethod.Flush();

                Shell = OpenMethod.CreateSubKey("Shell");
                Shell.CreateSubKey("open").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
                Shell.CreateSubKey("edit").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
                Shell.Flush();
                Shell.Close();
                OpenMethod.Close();

                // Delete the key instead of trying to change it
                CurrentUser = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\" + Extension, true);
                if (CurrentUser != null)
                {
                    CurrentUser.DeleteSubKey("UserChoice", false);
                    CurrentUser.Flush();
                    CurrentUser.Close();
                }
            }
            catch (Exception ex)
            {
                if (ex is System.Security.SecurityException || ex is UnauthorizedAccessException)
                {
                    MessageBox.Show("Please restart this program with administrative privileges to set file associations!");
                    return(false);
                }
#if DEBUG
                MessageBox.Show(ex.ToString());
#else
                MessageBox.Show(ex.Message);
#endif
                return(false);
            }


            // Tell explorer the file association has been changed
            SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero);

            return(true);
        }
Exemple #17
0
        public static string RecorderView()
        {
            string id = RecorderControl.OpenRecorderShell();
            Shell  s  = Shell.GetShell(id);

            if (s != null)
            {
                RecorderControl p = s.MainControl as RecorderControl;
                if (p != null)
                {
                    return(id);
                }
                s.Close();
                return("Error: unable to open recorder control.");
            }
            return("Error: unable to open recoder shell.");
        }
        /// <summary>
        /// Handle the "File|Exit" menu item.
        /// </summary>
        private void FileExitAction()
        {
            // If the document is in a pristine state with no changes, exit the application
            if (CurrentDocument.IsNew)
            {
                Shell.Close();
                return;
            }

            // Close will return false if the user cancels the document close
            if (!CurrentDocument.Close())
            {
                return;
            }

            Shell.Close();
        }
Exemple #19
0
        public static void SetAssociation(string Extension, string KeyName, string OpenWith, string OpenWithParameter, string IconIndex, string FileDescription)
        {
            try
            {
                RegistryKey key   = Registry.ClassesRoot.OpenSubKey(Extension);
                string      temp1 = key.GetValue(null, "").ToString();
                if (temp1.Trim().Length > 0)
                {
                    Registry.ClassesRoot.DeleteSubKeyTree(temp1);
                }

                Registry.ClassesRoot.DeleteSubKeyTree(Extension);
            }
            catch
            {
            }

            RegistryKey BaseKey;
            RegistryKey OpenMethod;
            RegistryKey Shell;
            RegistryKey CurrentUser;

            BaseKey = Registry.ClassesRoot.CreateSubKey(Extension);
            BaseKey.SetValue("", KeyName);

            OpenMethod = Registry.ClassesRoot.CreateSubKey(KeyName);
            OpenMethod.SetValue("", FileDescription);
            OpenMethod.CreateSubKey("DefaultIcon").SetValue("", "\"" + OpenWith + "\"," + IconIndex);
            Shell = OpenMethod.CreateSubKey("Shell");
            Shell.CreateSubKey("edit").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"" + OpenWithParameter + "\" \"%1\"");
            Shell.CreateSubKey("open").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"" + OpenWithParameter + "\" \"%1\"");
            BaseKey.Close();
            OpenMethod.Close();
            Shell.Close();
            try
            {
                CurrentUser = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\" + Extension, true);
                CurrentUser.DeleteSubKey("UserChoice", false);
                CurrentUser.Close();
            }
            catch
            {
            }
            // Tell explorer the file association has been changed
            SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero);
        }
Exemple #20
0
        public static void SetAssociation(string Extension, string KeyName, string OpenWith, string FileDescription)
        {
            try
            {
                RegistryKey CurrentUser;


                // The stuff that was above here is basically the same
                RegistryKey BaseKey;
                RegistryKey OpenMethod;
                RegistryKey Shell;


                BaseKey = Registry.ClassesRoot.CreateSubKey(Extension);
                BaseKey.SetValue("", KeyName);

                OpenMethod = Registry.ClassesRoot.CreateSubKey(KeyName);
                OpenMethod.SetValue("", FileDescription);
                OpenMethod.CreateSubKey("DefaultIcon").SetValue("", Application.StartupPath + "\\bcicons.dll" + ",0");
                Shell = OpenMethod.CreateSubKey("Shell");
                Shell.CreateSubKey("edit").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
                Shell.CreateSubKey("open").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
                BaseKey.Close();
                OpenMethod.Close();
                Shell.Close();


                // Delete the key instead of trying to change it
                CurrentUser = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\" + Extension, true);
                CurrentUser.DeleteSubKey("UserChoice", false);

                CurrentUser.Close();

                // Tell explorer the file association has been changed
                SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero);

                MessageBox.Show("Registry File Association Done", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Registry File Association Error" + Environment.NewLine + ex.Message + ex.Source, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Exemple #21
0
 public static string BPlotClose(string plotId)
 {
     if (!String.IsNullOrWhiteSpace(plotId))
     {
         Shell s = Shell.GetShell(plotId);
         if (s != null)
         {
             if (s.MainControl.Dispatcher.CheckAccess())
             {
                 s.Close();
                 return("Closed plot:" + plotId);
             }
             else
             {
                 return(s.MainControl.Dispatcher.Invoke(new Func <string>(() => { return BPlotClose(plotId); })));
             }
         }
         return("Error: unable to access plot shell.");
     }
     return("Error: plot Id.");
 }
Exemple #22
0
 public static string BPlot(string exchangeName, int messageId = ProtocolConstants.IDENT_USER, bool hasTimeData = true)
 {
     if (!String.IsNullOrWhiteSpace(exchangeName))
     {
         string id = PlotControl.OpenPlotShell();
         Shell  s  = Shell.GetShell(id);
         if (s != null)
         {
             PlotControl p = s.MainControl as PlotControl;
             if (p != null)
             {
                 BabelMessageDataCache d = new BabelMessageDataCache(exchangeName, messageId, true, hasTimeData);
                 p.SetCache(d);
                 return(id);
             }
             s.Close();
             return("Error: unable to open plot control.");
         }
         return("Error: unable to open plot shell.");
     }
     return("Error: bad exchange name.");
 }
Exemple #23
0
            private void SetAssociation(string Extension, string KeyName, string OpenWith, string FileDescription)
            {
                RegistryKey BaseKey;
                RegistryKey OpenMethod;
                RegistryKey Shell;

                RegistryKey root = Registry.CurrentUser.CreateSubKey("Software");

                root = root.CreateSubKey("Classes");

                BaseKey = root.CreateSubKey(Extension);
                BaseKey.SetValue("", KeyName);

                OpenMethod = root.CreateSubKey(KeyName);
                OpenMethod.SetValue("", FileDescription);
                OpenMethod.CreateSubKey("DefaultIcon").SetValue("", "\"" + OpenWith + "\",0");
                Shell = OpenMethod.CreateSubKey("Shell");
                Shell.CreateSubKey("edit").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
                Shell.CreateSubKey("open").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
                BaseKey.Close();
                OpenMethod.Close();
                Shell.Close();
            }
Exemple #24
0
 void Exit_Click(object sender, RoutedEventArgs e)
 {
     parentView.Close();
 }
Exemple #25
0
 void OnClose() => Shell.Close();
Exemple #26
0
 private IEnumerable <IResult> Exit()
 {
     Shell.Close();
     yield break;
 }