Example #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();
            }
        }
Example #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("Программа заблокировала реестр.");
        }