Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
AndreySeVeN
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 156
Записей в блоге: 1
1

Выполнять действия через определенные интервалы таймера

29.06.2014, 11:33. Просмотров 2214. Ответов 25
Метки нет (Все метки)

Нужно считывать информацию с таймера и в соответствии со временем делать клик мышкой. Таймер до ТЫСЯЧНЫХ мсек.:00.00.000сек
Пример: в txt написано:
5365
7563
10542
11025
15000
Это значит, что после запуска таймера должен произойти клик мышкой в следующее время на таймере: 5сек 365мсек, 7сек 563мсек, 10сек 542мсек и т.д. Таймер желательно запускать кнопкой клавиатуры(например F5). Я понимаю, что в Windows не получится сделать очень точный таймер, но допустимы погрешности ~+-10мсек.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2014, 11:33
Ответы с готовыми решениями:

Написать автотест, который будет выполнять определенные действия
Здравствуйте! В общем такая тема, на работе сильно требуют знания С# и выдали задачку для освоения....

Копирование папки через определенные интервалы времени
Ув.Гуру-кодеры, помогите пожалуйста разобраться с задачкой Есть папка, по таймеру делает...

Написать код, методы которого будут выполнять определенные этапы задания
Дана матрица размером m*n. Вывести на экран матрицу и есть ли одинаковые количество положительных и...

Циклически выполнять действия
Здравствуйте, немного запутался, надеюсь на вашу помощь. Как можно циклически выполнять одно и тоже...

Служба Windows перестает выполнять действия
Добрый день. Создал службу которая читает из БД и пишет в лог информацию каждые 10 сек. Служба...

25
Веселый
62 / 68 / 43
Регистрация: 12.10.2013
Сообщений: 979
29.06.2014, 21:23 2
Клик мышью - это действие физическое, т .е. нужно нажать ЛКМ или ПКМ ,а вот событие - это действие программное .
Поэтому вопрос : обязательно ли прописывать в Вашей программе событие MouseClick или можно в методе

C#
1
2
3
4
 private void timer1_Tick(object sender, EventArgs e)
        {
           Mouse.Click;
        }
выполнять какое-то другое действие ,которое должно происходить по запланированному вами времени?
0
AndreySeVeN
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 156
Записей в блоге: 1
29.06.2014, 21:28  [ТС] 3
Веселый, нажатие кнопки клавиатуры или клик мышкой!

Добавлено через 1 минуту
Мне код таймера нужен. И какое приложение консольное или Windows form. Плюс таймер до тысячных.
0
pokerface
205 / 170 / 48
Регистрация: 20.09.2012
Сообщений: 468
29.06.2014, 22:15 4
Цитата Сообщение от AndreySeVeN Посмотреть сообщение
Мне код таймера нужен. И какое приложение консольное или Windows form. Плюс таймер до тысячных.
Опишите ещё раз нормально ТЗ, а то что то никак не вникну что нужно
0
29.06.2014, 22:15
AndreySeVeN
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 156
Записей в блоге: 1
30.06.2014, 10:39  [ТС] 5
pokerface, Нужен таймер до тысячных. С таймера нужно считывать значение. Пример: в txt написано:
5365
7563
10542
11025
15000
Э при этих миллисекундах должен произойти клик мышкой или нажатие кнопки клавиатуры
0
sk007
Life Builder
452 / 440 / 352
Регистрация: 12.01.2011
Сообщений: 1,588
Завершенные тесты: 6
30.06.2014, 10:55 6
Можно что-то такое сделать
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
        StreamReader sr = new StreamReader("<pathToFile>");
        Timer t = new Timer();
 
        private void button1_Click(object sender, EventArgs e)
        {
            Text += "1";
        }
 
        void t_Tick(object sender, EventArgs e)
        {
            t.Stop();
            //Here your code. Example:
            button1.PerformClick();
 
            t.Interval = int.Parse(sr.ReadLine());
            t.Start();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            t.Interval = int.Parse(sr.ReadLine());
            t.Tick += new EventHandler(t_Tick);
            t.Start();
        }
1
Ev_Hyper
Заблокирован
30.06.2014, 12:54 7
Немного изменил код sk007, все таки по условию в текстовом файле задан не интервал, а время:

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
 int count = 0;
        string[] text;
        Timer timer;
        Stopwatch t = new Stopwatch();
        public Form1()
        {
            InitializeComponent();
         //   text = File.ReadAllLines("путь к файлу");
            text = new string[] { "5365","7563","10542","11025","15000"};
            timer = new Timer();
            button1.Click += delegate
            {
                timer.Interval = Convert.ToInt32(text[count++]);
                richTextBox1.Text += "Timer пущен" + "\r\n"; 
                timer.Start();
                t.Start();
            };
            timer.Tick += delegate
            {
                if (count < text.Length)
                {
                    timer.Stop();
                    button2.PerformClick();
                    timer.Interval = Convert.ToInt32(text[count++]) - Convert.ToInt32(text[count - 2]);
                    timer.Start();
                }
                else
                {
                    timer.Stop();
                    richTextBox1.Text += "Файл завершен" + "\r\n"; 
                }
            };
            button2.Click += delegate
            {
                t.Stop();
                richTextBox1.Text += timer.Interval.ToString() + "\t" + t.ElapsedMilliseconds + "\r\n";
                t.Restart();
            };
 
        }
Stopwatch для проверки точности:
Код
Timer пущен
5365	5371
2198	2196
2979	2971
483	483
Файл завершен
0
Spawn
974 / 872 / 353
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
30.06.2014, 13:10 8
Ровно миллисекунда в миллисекунду Вы не попадёте, по крайней мере не средствами системных таймеров.
0
sk007
Life Builder
452 / 440 / 352
Регистрация: 12.01.2011
Сообщений: 1,588
Завершенные тесты: 6
30.06.2014, 13:37 9
Ev_Hyper, Я то думал, что в текстовом файле написаны интервалы
0
AndreySeVeN
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 156
Записей в блоге: 1
30.06.2014, 13:42  [ТС] 10
Ev_Hyper, А это консольное да? Можно проект отправить? С чтением из файла. А и тогда, пожно таймер запускать кнопкой клавиатуры?
0
Ev_Hyper
Заблокирован
30.06.2014, 14:08 11
AndreySeVeN, не консольное. Я думал нужно было WinForm. В архиве старт по нажатию на кнопку, но переделать под определенную клавишу несложно.
1
Вложения
Тип файла: rar _timer_.rar (46.6 Кб, 11 просмотров)
AndreySeVeN
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 156
Записей в блоге: 1
30.06.2014, 15:25  [ТС] 12
Ev_Hyper, А что нужно сделать?

Добавлено через 4 минуты
Ev_Hyper, А ты в какой версии делал код? У меня 2010 не открывает.
0
Ev_Hyper
Заблокирован
30.06.2014, 15:33 13
AndreySeVeN, в VS2012, должно открывать.
На всякий случай переделал под 10 версию.
0
Вложения
Тип файла: rar WindowsFormsApplication1.rar (63.8 Кб, 8 просмотров)
AndreySeVeN
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 156
Записей в блоге: 1
30.06.2014, 15:39  [ТС] 14
Ev_Hyper, Неа. Не открывается. Придется VS2012 скачивать((
1
S_el
2289 / 1723 / 361
Регистрация: 15.12.2013
Сообщений: 6,920
30.06.2014, 15:41 15
AndreySeVeN, а как вы собственно его открываете?
0
AndreySeVeN
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 156
Записей в блоге: 1
30.06.2014, 15:42  [ТС] 16
S_el, Ну файл sln... Пишет что это создано в более новой версии программы.
0
Spawn
974 / 872 / 353
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
30.06.2014, 15:43 17
Не придётся, создайте пустое решение, добавьте проект. Не открывается только файл решения, а проекты в 2012 и 2010 студии совпадают почти во всём.
0
AndreySeVeN
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 156
Записей в блоге: 1
30.06.2014, 15:43  [ТС] 18
Spawn, да ладно. Я уже скачать VS2012
0
S_el
2289 / 1723 / 361
Регистрация: 15.12.2013
Сообщений: 6,920
30.06.2014, 15:44 19
AndreySeVeN, а вы соглашайтесь и ждите пока оно преобразует.
Вам кстати и под VS 2010 вроде-бы скидывали.

Добавлено через 51 секунду
Цитата Сообщение от AndreySeVeN Посмотреть сообщение
Spawn, да ладно. Я уже скачать VS2012

Не по теме:

Хороший у вас интернет :)

0
AndreySeVeN
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 156
Записей в блоге: 1
30.06.2014, 15:46  [ТС] 20
S_el, А он весит 625мб
0
30.06.2014, 15:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2014, 15:46

Нужно составить программу, которая будет выполнять различные действия с матрицами
Разработать приложение (C#), содержащее методы обработки основных операций с матрицами (сложение,...

Гарантированно циклически выполнять действия в новом потоке (в цикле, без остановки)
Иногда цикл перестает работать. Имеется следующая структура кода: public static volatile...

Выполнять определенные действия при любом выходе из функции
Есть функция, в которой ряд ветвлений и return'ов... при этом хотелось бы при каждом return'е...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru