Заблокирован

Отображение прогресса метода в ProgressBar

21.05.2015, 01:16. Показов 3150. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вот у меня идет перебор паролей в textBox1 и мне надо чтобы прогресс то есть как далеко уже перебор идет, отображался в прогресс баре, и чтобы показывал проценты до 6 цифр( в прогресс баре) после запятой.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.05.2015, 01:16
Ответы с готовыми решениями:

Отображение прогресса в ProgressBar при копировании каталога
Доброе время суток! Копирую файлы из одного каталога в другой таким способом: FileSystem.CopyDirectory(sourcePath, destinationPath,...

Отображение общего прогресса работы нескольких потоков на одном progressbar
В программе параллельно работают три потока, каждый из которых выполняет одинаковый объем работы, но время выполнения может отличаться. мне...

Отображение прогресса операции
Здравствуйте, подскажите как реализовать. Есть progressBar в котором нужно отобразить статус завершения, я удаляю файлы из папки,...

18
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
21.05.2015, 12:01
komra23,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Threading;
using System.Windows.Forms;
 
namespace WindowsFormsApplication285
{
    public partial class Form1 : Form
    {
        private PassEnumerator passEnum;
        private string currentPass;
        bool hacked = false;
        private string targetPass = "dggea1";
 
        public Form1()
        {
            InitializeComponent();
 
            var image = Image.FromStream(new WebClient().OpenRead("http://i.**********/pQT0l.jpg"));
            Size = image.Size;
            StartPosition = FormStartPosition.Manual;
            FormBorderStyle = FormBorderStyle.FixedToolWindow;
            new PictureBox() {Parent = this, Dock = DockStyle.Fill, Image = image}.Paint += pb_Paint;
 
            passEnum = new PassEnumerator("0123456789qwertyuiopasdfghjklzxcvbnm", 6);
 
            new Thread(GeneratePass).Start();
        }
 
        void GeneratePass()
        {
            foreach (var pass in passEnum.Enumerate())
            {
                currentPass = new string(pass);
                if (currentPass == targetPass)
                {
                    hacked = true;
                    break;
                }
            }
        }
 
        void pb_Paint(object sender, PaintEventArgs e)
        {
            var rect = new Rectangle(450, 300, 400, 70);
            using (var brush = new SolidBrush(Color.FromArgb(160, 0, 255, 0)))
                e.Graphics.FillRectangle(brush, rect);
            e.Graphics.DrawRectangle(Pens.Lime, rect);
 
            using (var font = new Font(FontFamily.GenericMonospace, 40, FontStyle.Bold))
            {
                e.Graphics.DrawString(currentPass, font, Brushes.White, rect.Location.X + 10, rect.Location.Y + 10);
 
                if (!hacked)
                {
                    var r = new Rectangle(rect.Left + 20, rect.Bottom + 20, rect.Width - 40, 20);
                    ProgressBarRenderer.DrawHorizontalChunks(e.Graphics, new Rectangle(r.Left, r.Top, (int)(1f * r.Width * passEnum.Processed / passEnum.TotalCount), r.Height));
                    using (var brush = new SolidBrush(Color.FromArgb(160, 0, 155, 0)))
                        e.Graphics.FillRectangle(brush, r);
                    e.Graphics.DrawRectangle(Pens.Lime, r);
                }
                else
                {
                    var r = new Rectangle(rect.Left + 20, rect.Bottom + 20, rect.Width - 40, 55);
 
                    using (var brush = new SolidBrush(Color.FromArgb(160, 0, 155, 0)))
                        e.Graphics.FillRectangle(brush, r);
                    e.Graphics.DrawRectangle(Pens.Lime, r);
                    e.Graphics.DrawString("Hacked!", font, Brushes.White, r);
                }
            }
 
            (sender as Control).Invalidate(rect);
            Text = currentPass;
        }
    }
 
    class PassEnumerator
    {
        private int length;
        private char[] chars;
        private char[] result;
        private int[] indexes;
 
        public long TotalCount;
        public long Processed;
 
        public PassEnumerator(string charStr, int length)
        {
            this.length = length;
            chars = charStr.ToArray();
            result = new char[length];
            indexes = new int[length];
 
            TotalCount = 1;
 
            for (var j = 0; j < length; j++)
            {
                result[j] = chars[0];
                TotalCount *= chars.Length;
            }
        }
 
        public IEnumerable<char[]> Enumerate()
        {
            int i = 0;
 
            do
            {
                yield return result;
                Processed++;
 
                for (i = 0; i < length; i++)
                {
                    var ind = indexes[i];
                    ind++;
                    if (ind >= chars.Length)
                    {
                        indexes[i] = 0;
                        result[i] = chars[0];
                    }
                    else
                    {
                        indexes[i] = ind;
                        result[i] = chars[ind];
                        break;
                    }
                }
 
            } while (i < length);
        }
    }
}


4
21.05.2015, 12:25

Не по теме:

Storm23, ад! :D

0
63 / 69 / 22
Регистрация: 28.04.2015
Сообщений: 194
Записей в блоге: 1
21.05.2015, 12:29
Не по теме:
Storm23,
0
Заблокирован
15.07.2015, 23:26  [ТС]
У меня идет перебор паролей в textBox4 и мне надо чтобы прогресс то есть как далеко уже перебор идет, отображался в прогресс баре, и чтобы показывал проценты до 6 цифр( в прогресс баре) после запятой.
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
16.07.2015, 19:45
Сколько знаков в пароле
1
16.07.2015, 19:54

Не по теме:

Цитата Сообщение от zna926 Посмотреть сообщение
Сколько знаков в пароле
Будем надеяться, что не 40 :D

0
Заблокирован
17.07.2015, 00:26  [ТС]
zna926, tezaurismosis, пароль длина 6 знаков a-z A-Z 0-9. Комб. может быть любая...
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
17.07.2015, 13:26
Уточняю условие:
Количество переборов - это число сочетаний из 62 элементов по 6. Всего будет 61 474 519.
Из условия неясно, есть ли счетчик выполненных переборов?
0
Заблокирован
17.07.2015, 16:11  [ТС]
zna926, нет никакого счетчика есть после private ASYNC void и в конце await Task.Delay(1);
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
17.07.2015, 17:53
Оnкуда будет получать данные ProgressBar, чтобы показать какая часть перебора паролей уже выполнена?
0
17.07.2015, 18:02

Не по теме:

Цитата Сообщение от zna926 Посмотреть сообщение
Количество переборов - это число сочетаний из 62 элементов по 6. Всего будет 61 474 519.
мож ошибаюсь, но по моим скромным подсчетам это будет 62^6 = 56 800 235 584

0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
17.07.2015, 18:49
Увы ошибаетель, подобной формулы там и близко нет. Для данной задачи число сочетаний равно

c = 62*61*60* 59*58*57/1*2*3*4*5*6.
Эта формула и в школьном курсе и в Google
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9674 / 4826 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
17.07.2015, 19:15
komra23, вам уже указали направление - максимальное количество переборов для достижения результата - 61 474 519, значит это количество можно принять за 100%, значит на каждые 600 000 итераций будем прибавлять по 1 проценту в ProgressBar.
0
Заблокирован
17.07.2015, 20:46  [ТС]
zna926, не правильно, мне нужен код который будет выполнятся...данные с textBox4.Text
nedel, верно, 62*62*62*62*62*62=56 800 235 584(62^6)
Цитата Сообщение от zna926 Посмотреть сообщение
c = 62*61*60* 59*58*57/1*2*3*4*5*6.
Эта формула и в школьном курсе
И не только в школьное но и в вузе если есть предмет такой как теория вероятности и математическая статистика
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
17.07.2015, 23:01
Komra! Это фантазия, такой формулы в комбинаторике нет. И конкретную ссылку вряд ли найдете. А в данном случае речь идет о размещениях, т.к. в пароле комбинация ав и ва не эквивалентны. Число размещений - около 50 миллиардов. Ранее я ошибочно привел данные для для сочетаний.
И каким образом такое количество данных, как Вы пишете, будете вбрасывать в текстбокс.
Резюме: условия никак не продуманы и в таком виде задача не может быть решена.
0
Заблокирован
18.07.2015, 00:32  [ТС]
tezaurismosis, блин не то.....
0
1168 / 886 / 517
Регистрация: 09.04.2014
Сообщений: 2,102
18.07.2015, 13:18
Цитата Сообщение от zna926 Посмотреть сообщение
Увы ошибаетель, подобной формулы там и близко нет
Цитата Сообщение от zna926 Посмотреть сообщение
Это фантазия, такой формулы в комбинаторике нет. И конкретную ссылку вряд ли найдете
Основные формулы комбинаторики:
Теорема 4. Общее количество различных наборов при выборе k элементов из n с возвращением и с учётом порядка равняется n^k.
1
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
19.07.2015, 20:47
komra23 сделал задачу другим способом.Все работает в автомате. Текстбоксы не нужны и мд5 тоже.
Сделал строковый массив из 22 символов .по 6 первых букв алфавита (большие и малые) и 10 цифр в строковом виде
Перебор пароля - в автомате. Теоретически полный перебор - 53 771 360 раз.
Пароль генерирутся из случайных 6 символов указанных символов. При больших границах , уходит мтого времени,
работает прогрессбар
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.07.2015, 20:47
Помогаю со студенческими работами здесь

Отображение прогресса скачивания файла
Доброго, делаю программку по скачиванию файлов с сервера все легально и чисто, в общем имеется три файла я сделал на винформе 3 кнопки и 3...

Загрузка файла на сервер с использованием BackgroundWorker - отображение прогресса
Добрый вечер! Знаю, подобных тем полно, но ответ на свой вопрос я так и не нашел. Я через протокол SFTP заливаю выбранный файл....

Progressbar ход выполнения метода
У меня есть большой метод, который создает БД. Как мне показать ход выполнения метода в ProgressBar?

Заполнение ProgressBar при выполнении метода
Здравствуйте! Возник такой вопрос. Существует два класса в одном распаковывается архив а в другом парсится XML. Из-за большого объема...

Сравнение и отображение в progressbar
Добрый вечер. У меня есть 2 textbox'а и progressbar, можно сделать сравнение значений этих двух textbox'ов и вывести это в progressbar. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

Новые блоги и статьи
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru