106 / 0 / 0
Регистрация: 05.03.2014
Сообщений: 101
Записей в блоге: 1
1

Запуск программы и таймера

06.02.2015, 15:20. Показов 8129. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребят у меня есть программа и там есть Form1 и запуск программы идёт с неё и на форме есть таймер ну и собственно я его использую но я хочу сделать так сказать 2 режим запуска программы (чтобы окна не было а таймер запускался) но в Main я не могу этого сделать

Как можно это сделать если таймер находиться в Form1 а его надо запустить в Main ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2015, 15:20
Ответы с готовыми решениями:

Запуск таймера через новый поток
вечер добрый помогите мне понять есть форма на ней таймер мне нужно именно с данного таймера не...

При нажатии на кнопку запуск таймера длительностью 11 минут
Помогите написать код чтобы при нажатии на кнопку запускался таймер длительностью 11 минут! И если...

Отследить запуск сторонней программы без таймера
Здравствуйте. Задача такая, отслеживать запущенные программы, и , если программа соответствует...

Запуск программы без создания окна. Запуск фоновой программы
Вопрос, как сделать, чтобы консольное приложение при запуске не создавало окошко консоли. Т.е....

13
Администратор
Эксперт .NET
9610 / 4752 / 761
Регистрация: 17.04.2012
Сообщений: 9,606
Записей в блоге: 14
06.02.2015, 16:22 2
Цитата Сообщение от TwerTrue Посмотреть сообщение
в Main я не могу этого сделать
В приложении Windows Forms в большинстве случаев метод Main() стоит оставить как есть, всё работа - в классе формы.
Цитата Сообщение от TwerTrue Посмотреть сообщение
чтобы окна не было а таймер запускался
Скройте окно в обработчике события формы Load и там же запускайте таймер.
1
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,271
Записей в блоге: 9
06.02.2015, 17:55 3
C#
1
2
3
4
5
6
private void Form1_Load(object sender, EventArgs e)
        {
            
            timer1.Enabled = true;
 
        }
0
106 / 0 / 0
Регистрация: 05.03.2014
Сообщений: 101
Записей в блоге: 1
06.02.2015, 18:24  [ТС] 4
Я вас понял но как сделать чтобы это зависело от Main где обрабатывается txt и если там значение 1 то тогда только будет запускаться один таймер без запуска формы ?

Добавлено через 1 минуту
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
if (File.Exists("settings.txt"))
                            {    
                                //Пусто 
                            }
                            else
                            {
                                File.WriteAllText("settings.txt", "hiding-0");
                                MessageBox.Show("Файл с настройками успешно создан!", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);                          
                            }
 
                            using (StreamReader fileSetting = new StreamReader("settings.txt"))
                            {
                                string bufferStr;
                                while (!fileSetting.EndOfStream)
                                {
                                    bufferStr = fileSetting.ReadLine();
 
                                    if (bufferStr == "hiding-0")
                                    {
                                        MessageBox.Show("hiding-0", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                        Application.Run(new Form1());                                
                                    }
 
                                    if (bufferStr == "hiding-1")
                                    {
                                        MessageBox.Show("hiding-1", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    }
Вот мой код с обработкой в Main
Я понял что можно сделать через проверку но будет ошибка что элемент не существует в данном контексте
Или вынести обработку в Form1 (txt) ?
0
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,273
06.02.2015, 18:56 5
TwerTrue,
Не очень понял, как вы хотите запустить таймер с формы, когда еще не произошло Application.Run(new Form1) ?

Может типа такого нужно?
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
static class Program
    {
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Form1 form1 = new Form1();
 
            Timer timer = new Timer();
            timer.Interval = 10000;
            timer.Tick += new EventHandler(timer_Tick);
 
            string str = "1";
 
            if (str=="1")
               timer.Start();
 
            Application.Run(form1);
        }
 
        static void timer_Tick(object sender, EventArgs e)
        {
            (sender as Timer).Stop();
        }
    }
Добавлено через 2 минуты
Может лучше так сделать Режим приватности (смотри ближе к концу странички.)
Только, во второй форме вместо проверки пароля делать все ваши операции/
0
106 / 0 / 0
Регистрация: 05.03.2014
Сообщений: 101
Записей в блоге: 1
06.02.2015, 19:10  [ТС] 6
Но а если я этот таймер буду использовать и в Form1 то надо будет его так сказать копировать (я хочу обойтись без этого)
0
106 / 0 / 0
Регистрация: 05.03.2014
Сообщений: 101
Записей в блоге: 1
06.02.2015, 20:10  [ТС] 7
Ребят у меня есть программа но я хочу запустить в ней только таймер без графической её части
Как мне его инициализировать без графической части чтобы потом его использовать ?

C#
1
2
3
4
5
6
7
8
9
10
11
12
private void InitializeComponents()
        {
            this.components = new System.ComponentModel.Container();
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
            this.timer1 = new System.Windows.Forms.Timer(this.components);
            this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
            this.SuspendLayout();
            // 
            // timer1
            // 
            this.timer1.Interval = 500;
            this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
Я использую этот код но всё равно появляется пустое окно

 Комментарий модератора 
Темы объединены.
TwerTrue, не плодите темы, по тому же вопросу продолжайте тут.
0
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,247
06.02.2015, 20:28 8
Цитата Сообщение от TwerTrue Посмотреть сообщение
Я использую этот код но всё равно появляется пустое окно
ну вы же используете винформс проект. Без форм там никуда. Можно скрыть форму сразу.
Можно создать виндоус-службу с вашим таймером (но это сложнее).
0
106 / 0 / 0
Регистрация: 05.03.2014
Сообщений: 101
Записей в блоге: 1
06.02.2015, 20:52  [ТС] 9
Можете дать код на закрытие формы ? Главное чтобы она не мигала
0
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,247
06.02.2015, 21:16 10
Цитата Сообщение от TwerTrue Посмотреть сообщение
Главное чтобы она не мигала
C#
1
this.Hide();
но мигать она будет (один раз)
0
106 / 0 / 0
Регистрация: 05.03.2014
Сообщений: 101
Записей в блоге: 1
06.02.2015, 21:17  [ТС] 11
Не чего не происходит форма открывается
Код я вставляю после
C#
1
InitializeComponents();
0
141 / 138 / 22
Регистрация: 16.02.2012
Сообщений: 453
06.02.2015, 21:44 12
Цитата Сообщение от Монфрид Посмотреть сообщение
ну вы же используете винформс проект. Без форм там никуда.
Да бросьте. Удалите все формы, в методе Main создавайте таймер и запустите цикл, чтобы программа не вышла из метода, а завершала работу по вашему условию. Также можно NotifyIcon использовать без форм, только иконка в трее.
0
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,271
Записей в блоге: 9
07.02.2015, 00:36 13
Короче сформулируйте конкретнее задачу! Если помощи хотите!

Выводы из Вашей мутной задачи:
1) не трогайте main
2) может вас устроит просто скрыть форму? Form.Visible = false; а когда нужно отобразить её Form.Visible = true;
0
Master of Orion
Эксперт .NET
6100 / 4956 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
07.02.2015, 03:32 14
TwerTrue, замени строчку
C#
1
public Form1 : ApplicationContext
и не будет графической части.
1
07.02.2015, 03:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2015, 03:32
Помогаю со студенческими работами здесь

Запуск таймера
вроде бы написал все правильно, но на форме таймер не запускаетсяprocedure...

Запуск и остановка Таймера
Уважаемые форумчане, добрый день! В просторах интернета по вопросу работы ТАЙМЕРА на VBA, я нашел...

Запуск таймера Unity C#
Нужна помощь с реализацией Суть: есть таймер, который запускает панель...

Запуск таймера на второй форме
Подскажите, пожалуйста слюдующее: Как сделать переход со второй формы на третью. Выставляю...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru