Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/34: Рейтинг темы: голосов - 34, средняя оценка - 4.82
 Аватар для AntonMD
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 16

Как задать время и число для выполнения действий в программе?

12.05.2016, 19:56. Показов 6464. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток всем!
Народ, прошу строго не судить, если задал вопрос не там где то, или как то некорректно.
Я весьма начинающий в этом деле человек, надеюсь в 30ку начинать учить C# не поздно...
Вообщем решил написать программу, точнее мини ботик для приложения в контакте, на пару функций, потому что требуется выполнить одно действие несколько десятков раз. Искал и на ютубах и форумах как притворить эту функцию в жизнь, так и не нашел... поэтому на вас вся надежда)
Исходник нашел в инете, функцию заменил на нужную мне, но не могу понять, как сделать чтоб функция повторялась нужное количество раз, и с небольшой паузой между повторениями 5-10 сек.
-На форме видно кнопку "Наехать", в кнопку я вставил нужную функцию с запросом на сервер и аутентификацией.
Ну так вот, "наехать" нужно иногда 50 или 100 раз. Как можно сделать, чтоб при нажатии кнопки "Наехать" он выполнял это действие столько, сколько указано в textbox "кол-во" и чтоб между каждым повтором была пауза указанная выше.
-И как привязать повтор допустим через 8 часов, к кнопке "собрать прибыль" После нажатия на нее, до закрытия программы чтоб повторялся сбор каждые 8 часов

Заранее благодарен) Прошу не расстреливать если что не так
Миниатюры
Как задать время и число для выполнения действий в программе?   Как задать время и число для выполнения действий в программе?  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.05.2016, 19:56
Ответы с готовыми решениями:

Как задать программе время исполнения и время закрытия?
Подскажите пожалуйста как можно задать время исполнения и время закрытия программы допустим нужно запустить файл start 1.txt и через...

Как задать время выполнения команды?
Нужно что бы следующая команда выполнялась спустя некоторое (заданное) время. Как это реализовать?

Задать событие для контрола который создается во время выполнения
Есть функция private void Table_creater(int x, int y, int Sizex, int Sizey, int id, string text) { var butt = new...

16
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,573
12.05.2016, 19:58
Как вариант, использовать обычный Timer.
0
 Аватар для AntonMD
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 16
12.05.2016, 20:04  [ТС]
Цитата Сообщение от Someone007 Посмотреть сообщение
Как вариант, использовать обычный Timer.
Вот в том и проблема, я не знаю как связать таймер с функцией кнопки, и тем более чтоб эта функция выполнялась столько раз сколько напишу в текстбоксе, и с нужным интервалом между каждым запросом...Я совсем начинающий и без образования программера народ, так что извините( учусь быстро просто иногда не хватает толковых подсказок) поэтому буду рад подсказкам)
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,573
12.05.2016, 20:11
Таймер как раз и выполняет какую-то операцию с нужным интервалом. А по кнопке вы просто запускаете таймер.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        Timer timer = new Timer();
 
        public Form1()
        {
            InitializeComponent();
 
            timer.Tick += Timer_Tick;
            timer.Interval = 1000; //интервал, мс
        }
 
        private void Timer_Tick(object sender, EventArgs e)
        {
            // тут код который будет выполнятся каждые timer.Interval миллисекунд...
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            timer.Start(); // запуск таймера
        }
1
 Аватар для AntonMD
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 16
12.05.2016, 20:23  [ТС]
Ох спасибо огромное, я думал все гораздо мудреней, а вот как сделать чтоб выполнялось нужное количество раз, 50 или 100, чтоб не тыкать столько раз на кнопку, буду очень признателен, и прошу простить за назойливость) И получается мне из функции button1 нужно вырезать код и вставить его в функцию таймера, а в функцию button1 прописать функцию которая будет считывать информацию из текстбокса3 и выполняться столько сколько там написано? Только не представляю как это представить в виде кода(
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,573
12.05.2016, 20:42
Лучший ответ Сообщение было отмечено AntonMD как решение

Решение

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
        Timer timer = new Timer();
        int counter = 0; // счетчик
        int maxCounter = 0; // макс значение счетчика
 
        public Form1()
        {
            InitializeComponent();
 
            timer.Tick += Timer_Tick;
            timer.Interval = 1000; //интервал, мс
        }
 
        private void Timer_Tick(object sender, EventArgs e)
        {
            // тут код который будет выполнятся каждые timer.Interval миллисекунд...
 
            counter++;
 
            if (counter >= maxCounter)
               timer.Stop();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            maxCounter = Convert.ToInt32(textBox3.Text);
            timer.Start(); // запуск таймера
        }
1
 Аватар для AntonMD
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 16
13.05.2016, 20:25  [ТС]
Прошу прощение за беспокойство, но возникла некая проблема, код я сделал все работает нормально, и данные с сервера получает и отдает, выполняет нужное действие, но, есть одно существенное НО, он выполняет действие бесконечно, а не столько раз сколько указано в textBox3 и чтоб прекратить выполнение приходится закрывать программу.... никак не могу понять почему, пытался сделать эту строчку if (counter >= maxCounter) на if (counter = maxCounter) красным подчеркивает....( help me please((
0
3 / 3 / 1
Регистрация: 09.04.2014
Сообщений: 62
13.05.2016, 20:33
Цитата Сообщение от AntonMD Посмотреть сообщение
Прошу прощение за беспокойство, но возникла некая проблема, код я сделал все работает нормально, и данные с сервера получает и отдает, выполняет нужное действие, но, есть одно существенное НО, он выполняет действие бесконечно, а не столько раз сколько указано в textBox3 и чтоб прекратить выполнение приходится закрывать программу.... никак не могу понять почему, пытался сделать эту строчку if (counter >= maxCounter) на if (counter = maxCounter) красным подчеркивает....( help me please((
Не сбрасывается таймер, в
Цитата Сообщение от AntonMD Посмотреть сообщение
C#
1
2
if (counter >= maxCounter)
    timer.Stop();
добавьте counter=0;

т.е.

C#
1
2
3
4
5
 if (counter >= maxCounter)
 {
               timer.Stop();
               counter=0;
}
Цитата Сообщение от AntonMD Посмотреть сообщение
C#
1
(counter = maxCounter)
Не =, а ==. Просто = - это присваивание. А == - это сравнение.
0
 Аватар для AntonMD
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 16
13.05.2016, 21:13  [ТС]
Цитата Сообщение от Elizar_ELA Посмотреть сообщение
Не сбрасывается таймер, в
добавьте counter=0;

т.е.

C#
1
2
3
4
5
 if (counter >= maxCounter)
 {
               timer.Stop();
               counter=0;
}
Все равно продолжает выполнять действие бесконечно.
вот полный код:

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
 public partial class Form1 : Form
    {
        Timer timer = new Timer();
        int counter = 0; // счетчик
        int maxCounter = 0; // макс значение счетчика
        public Form1()
        {
            InitializeComponent();
            
 
            timer.Tick += timer1_Tick;
            timer.Interval = 5000; //интервал, мс
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            maxCounter = Convert.ToInt32(textBox3.Text);
            timer1.Start();
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
             
            string s = "enemy=" + textBox4.Text + "&method=challengeToDuel&key=" + textBox2.Text + "&user=" + textBox1.Text + "";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://109.224.256.251/prison/unive.....");
            request.UserAgent = "Opera/9.80";
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            byte[] bytes = Encoding.ASCII.GetBytes(s);
            request.ContentLength = bytes.Length;
            request.GetRequestStream().Write(bytes, 0, bytes.Length);
            request.GetRequestStream().Close();
            HttpWebRequest request2 = (HttpWebRequest)WebRequest.Create("http://109.224.256.251/prison/unive.....");
            string str2 = new StreamReader(request.GetResponse().GetResponseStream(), Encoding.Default).ReadToEnd();
            
            counter++;
 
            if (counter >= maxCounter)
               timer.Stop();
            counter = 0;
        }
        }
    }
К серверу подключается делает действие. Кстати, вот возможно корректно сделать так, чтоб адрес //109.224.256.251/prison/unive.... а точнее часть его 109.224.256.251, выставлялась на выбор из ComboBox?
если сделать вот так будет правильно? http://" + ComboBox1 +"/prison/unive....

И если можно, небольшой совет, как вывести ответ на полученный запрос в richTextBox1, так обычно пишут победа или поражение. А то у меня получилось сделать вариант только с выводом в отдельное окно, и при том оно выходит при каждом запросе.... а в риче было бы удобно.
0
3 / 3 / 1
Регистрация: 09.04.2014
Сообщений: 62
13.05.2016, 21:24
AntonMD, го в скуп? А то вопросов уже темы на 3 тянет =) (удалено, если что).
 Комментарий модератора 
Правила форума запрещают оставлять контакты в постах, либо обсуждайте на форуме, либо обменивайтесь контактами через личное сообщение.
0
 Аватар для AntonMD
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 16
14.05.2016, 13:18  [ТС]
Народ помогите хотя бы понять как с таймером вопрос решить, чтоб действие перестало бесконечно выполняться(
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,573
14.05.2016, 14:02
Удалите строку
C#
1
counter = 0;
из timer1_Tick и по идее все должно работать.

Еще не мешало бы добавить эту же строку в button1_Click, чтобы при повторном нажатии счетчик обнулялся.
0
 Аватар для AntonMD
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 16
14.05.2016, 19:32  [ТС]
Получается counter = 0; оттуда перенести в button1+Click в вас правильно понял? Так сделать?
C#
1
2
3
4
5
6
 private void button1_Click(object sender, EventArgs e)
        {
            maxCounter = Convert.ToInt32(textBox3.Text);
            int counter = 0;
            timer1.Start();
        }

А вот еще небольшой вопросик на счет адреса и вывода результата:

Возможно корректно сделать так, чтоб адрес //109.224.256.251/prison/unive.... а точнее часть его 109.224.256.251, выставлялась на выбор из ComboBox?
если сделать вот так будет правильно? http://" + ComboBox1 +"/prison/unive....
И если можно, небольшой совет, как вывести ответ на полученный запрос в richTextBox1, так обычно пишут победа или поражение. А то у меня получилось сделать вариант только с выводом в отдельное окно, и при том оно выходит при каждом запросе.... а в риче было бы удобно
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,573
14.05.2016, 22:00
C#
1
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(string.Format("http://{0}/prison/unive.....", значение_из_комбобокса));
C#
1
2
string str2 = new StreamReader(request.GetResponse().GetResponseStream(), Encoding.Default).ReadToEnd();
richTextBox1.AppendText(str2);
1
 Аватар для AntonMD
3 / 3 / 0
Регистрация: 12.05.2016
Сообщений: 16
14.05.2016, 22:53  [ТС]
Спасибо больше за все ответы, хорошо хоть есть добрые люди, и такие хорошие форумы, прошу извинить что так много вопросов, просто изучать все это дело начал меньше месяца назад. Вот так получается будет?
C#
1
2
3
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(string.Format("http://{0}/prison/prison/universal.php?challengeToDuel", ComboBox1.Text));
string str2 = new StreamReader(request.GetResponse().GetResponseStream(), Encoding.Default).ReadToEnd();
richTextBox1.AppendText(str2);
Планирую в ComboBox добавить несколько адресов, 109.224.256.251, 109.224.256.252 и тд, чтоб выбирать нужный адрес авторизации, либо менять периодически.
А вот данные этого запроса, реально вывести в richTextBox чтоб получался как лог, чтоб видеть например сколько раз напал и результат. Или же для этого нужно использовать что то другое. За эти 4 дня перевернул весь ютуб, все форумы, в поисковиках частично коды забивал, а вот вывода данных в виде лога событий так и не нашел.
0
 Аватар для ASvag
2 / 2 / 0
Регистрация: 18.12.2015
Сообщений: 19
12.03.2021, 19:11
Здравствуйте. Что то никак не пойму свойства. Может кто сможет объяснить. Читал смотрел так и не дошло. Составил задачку себе. Есть число N и время taim. Когда приходит число например 7 то N=7 затем смотрю время компьютера DateTime.Now и присваиваю его taim.
Все это добавляю в многомерный список лист. Получаю [7][12.00] и так далее. Могу посмотреть по индексам когда пришла та или иная цифра.
А как это сделать через свойства "N.taim"? И если еще добавить поле например "m". Как сделать "N.m"?([7][12.00][m]) Или они не для таких целей. Надеюсь правильно вопрос задал.
0
 Аватар для ASvag
2 / 2 / 0
Регистрация: 18.12.2015
Сообщений: 19
14.03.2021, 16:31
Немного запутался потому что. Надо создать экземпляр класса. Научился.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.03.2021, 16:31
Помогаю со студенческими работами здесь

Как задать время выполнения цикла в секундах?
Здравствуйте. кусок кода для вывода строки текста на экран const char string1 = "sample of text"; HDC dc =...

Можно ли как-то жестко задать время выполнения скрипта?
Вот кусок скрипта, который может загрузить сервер на 100% <% dim i i=0 while i=0 wend %> <html>

Мьютексы-потоки: Как задать время выполнения потока
Подскажите пожалуйста насчет следующих вопросов, сам не разобрался. 1. Как задать время выполнения потока? 2. Как заставить потоки...

Интерактивный музей, задержка действий на время выполнения анимации и Корутины в Unity
Доброго времени суток! Я новичок. Делаю проект интерактивного музея, там есть театральная сцена на которой должны меняться декорации по...

Использование оператора switch для выполнения последовательности действий как в С++
switch (n){ case 0: a = 0; case 1: b = 2; case 2: c = 10; ... }


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru