Ejemplo n.º 1
0
        private void Application_Startup(object sender, StartupEventArgs e)
        {
            int verbose = 0;

            //var optionSet = new OptionSet
            //{
            //    { "v|verbose", "verbose output, repeat for more verbosity.",
            //        arg => verbose++ }
            //}

            var extra = e.Args;

            if (e.Args.Length == 1 && e.Args[0] == "-block")
            {
                clUnBlock blockAll = new clUnBlock();
                blockAll.BlockAllUblock(true);
            }
            else if (e.Args.Length == 1 && e.Args[0] == "-unblock")
            {
                clUnBlock blockAll = new clUnBlock();
                blockAll.BlockAllUblock(false);
            }
            else
            {
                //Console.WriteLine("Нет Аргументов");
                var mainWindow = new MainWindow();
                mainWindow.Show();
            }
        }
Ejemplo n.º 2
0
        private void btnBlock_Click(object sender, RoutedEventArgs e)
        {
            #region Блокировка заРаз ver 1
            //clUnBlock blockAll = new clUnBlock();
            //blockAll.BlockAllUblock(true);
            //ListUpdate();
            #endregion

            #region Блокировка заРаз ver 2
            //string baseSoft = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\TaskMan.exe";
            //Console.WriteLine("baseSoft=  " + baseSoft);
            //clUnBlock.RunAsAdmin(baseSoft, "b");
            #endregion


            #region Блокировка заРаз ver3

            MessageBox.Show("После применения необходимо сделать выход/вход.", "Bloking...(5сек)", MessageBoxButton.OK, MessageBoxImage.Exclamation);

            if (clUnBlock.IsAdmin())
            {
                clUnBlock blockAll = new clUnBlock();
                blockAll.BlockAllUblock(true);
            }
            else
            {
                try
                {
                    ////Ver 1
                    //string baseSoft = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\TaskMan.exe";
                    //Process.Start(new ProcessStartInfo { FileName = baseSoft, Arguments = "-block", Verb = "runas" }).WaitForExit();

                    //Ver 2
                    //установка времени ожидания
                    int timeOut = 5000;

                    //MessageBox.Show("После применения необходимо сделать выход/вход.", "Bloking...(5сек)", MessageBoxButton.OK, MessageBoxImage.Exclamation);

                    //получить путь на котором сидит программа
                    string sysFolder = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
                    //Создание отдельного процесса
                    ProcessStartInfo pinfo = new ProcessStartInfo();
                    //Установка имени файла
                    pinfo.FileName = sysFolder + @"\TaskMan.exe";
                    //Аргументы
                    pinfo.Arguments = "-block";
                    //Права admin
                    pinfo.Verb = "runas";
                    //Старт процесса
                    Process p = Process.Start(pinfo);

                    //ждем окончания загрузки окна.
                    p.WaitForExit(timeOut);
                    // Проверяем, запущен ли процесс.
                    if (p.HasExited == false)
                    {
                        //Процесс все ещё запущен
                        if (p.Responding)
                        {
                            //процесс отвечает, закрываем главное окно
                            p.CloseMainWindow();
                        }
                        else
                        {
                            //Процесс не отвечает, грохаем все
                            p.Kill();
                        }
                    }
                }
                catch
                {
                    MessageBox.Show("Повышение привелегий не удалось");
                }
            }
            #endregion

            log.writeLog("Программа заблокировала реестр.");
        }
Ejemplo n.º 3
0
        private void ListUpdate()
        {
            lstRegBlock.Items.Clear();
            // lstRegBlock.Items.Add(DateTime.Now.ToString());

            clUnBlock dicBlock = new clUnBlock();

            #region загружаем данные c словаря и ищем в реестре эти ключи и значения. На основании значений заполняем listView



            foreach (var item in dicBlock.dicReestr)
            {
                if (item.Value.RazdelReg == "CU")
                {
                    //Console.WriteLine("RazdelReg=" + item.Value.RazdelReg);

                    using (RegistryKey key = Registry.CurrentUser.OpenSubKey(item.Value.PathReg))
                    {
                        if (item.Value.DataTypeReg == "dword")
                        {
                            string keyBl = key?.GetValue(item.Key)?.ToString();
                            //Console.WriteLine("keyBl=" + keyBl + " BlockParamReg " + item.Value.BlockParamReg);

                            if (keyBl != null)
                            {
                                if (keyBl == item.Value.BlockParamReg)
                                {
                                    lstRegBlock.Items.Add(item.Value.DescriptReg);
                                    //Console.WriteLine("Блокировка");
                                }
                                else
                                {
                                    //Значение не обрабатывается
                                    //lvReestr.Items.Add(new Label() { Content = "Ветка ресстра(" + item.Key + ") на блокировку и разблокировку имеет не определеннное значение ", ToolTip = item.Value.DescriptReg });
                                }
                            }
                            else
                            {
                                //lvReestr.Items.Add(new Label() { Content = "Ветка ресстра(" + item.Key + ") на блокировку и разблокировку НЕ НАЙДЕНЫ", ToolTip = item.Value.DescriptReg });
                            }
                        }
                        else if (item.Value.DataTypeReg == "str")
                        {
                            string keyBl = key?.GetValue(item.Key)?.ToString();
                            if (keyBl != null)
                            {
                                string Ver;
                                //Определяем версию компьютера
                                // для ХР(32) - 5.1
                                // Windows 7  - 6.1
                                // Windows 8  - 6.2
                                int majorVer = Environment.OSVersion.Version.Major;
                                int minorVer = Environment.OSVersion.Version.Minor;

                                if (majorVer == 5)
                                {
                                    Ver = @"%USERPROFILE%\Start Menu\Programs";
                                }
                                else
                                {
                                    Ver = @"%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs";
                                }


                                //Console.WriteLine("keyBl=" + keyBl + " BlockParamReg " + item.Value.BlockParamReg);

                                if (keyBl == item.Value.BlockParamReg)
                                {
                                    lstRegBlock.Items.Add(item.Value.DescriptReg);
                                    //Console.WriteLine("Блокировка");
                                }
                            }
                        }
                    }
                }
                else if (item.Value.RazdelReg == "LM")
                {
                    using (RegistryKey key = Registry.LocalMachine.OpenSubKey(item.Value.PathReg))
                    {
                        if (item.Value.DataTypeReg == "dword")
                        {
                        }
                        else if (item.Value.DataTypeReg == "str")
                        {
                            string keyBl = key?.GetValue(item.Key)?.ToString();

                            //Console.WriteLine("keyBl=" + keyBl + " BlockParamReg= " + System.AppDomain.CurrentDomain.BaseDirectory.ToString() + "PerfMonitor.exe");

                            //Console.WriteLine("Замена диспетчера задач находится по пути - " + keyBl);
                            if (keyBl != null)
                            {
                                if (keyBl == System.AppDomain.CurrentDomain.BaseDirectory.ToString() + "PerfMonitor.exe")
                                {
                                    lstRegBlock.Items.Add(item.Value.DescriptReg);
                                    //Console.WriteLine("Блокировка");
                                }
                            }
                        }
                    }
                }
            }

            #endregion
        }