.NET 4.x Запуск программы. Ошибка - открывает каждую секунду - C#

Узнай цену своей работы

Формулировка задачи:

Прошу помощи господа. В моём говнокоде не могу найти ошибку. Сделал запуск программы по нажатию на button
 System.Diagnostics.Process p = new System.Diagnostics.Process();
                p.StartInfo.FileName = "open.exe";
                p.Start();
Но вот беда. Почему то мне каждую секунду открывает программу. Полный код
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using Microsoft.Win32;
using System.Security.Principal;
 
namespace Updater
{
    public partial class Form1 : Form
    {
        
        public Form1()
 
        {
            InitializeComponent();
            t.Tick += timer1_Tick;
            t2.Tick += timer2_Tick;
            this.Text = "Автоматический корректировщик "; // + FormUpdater.my_version;
            label3.Text = FormUpdater.my_version;
        }

        private void выходToolStripMenuItem_Click(object sender, EventArgs e)
        {
           // Close();
        }
 
        private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AboutBox1 a = new AboutBox1();
            a.Show();
 
        }
 
        private void button1_Click(object sender, EventArgs e) // 1 кнопка активация в ВК
        {
            
            if (timer1.Enabled)
            {
                System.Diagnostics.Process p = new System.Diagnostics.Process();
                p.StartInfo.FileName = "open.exe";
                p.Start();
                button1.Text = "Открыть доступ в ВК \r продолжит таймер";
                timer1.Enabled = false;
              
            }
            else
            {
                System.Diagnostics.Process p = new System.Diagnostics.Process();
                p.StartInfo.FileName = "close.exe";
                p.Start();
                button1.Text = "Приостановить таймер";
                timer1.Enabled = true;
                
            }
            //MessageBox.Show("Критическая ошибка приложения \n \n Данная функция не работает в этой версии программы \n Версия программы " + FormUpdater.my_version, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
          
        }
 
        private void настройкиToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Окошко №1 \n \n \n Тестовая запись \r Окно настроек ещё не готово", "Настройки...", MessageBoxButtons.OK, MessageBoxIcon.Question);
        }
 
        int i;
        int ti;
 
       private void button3_Click(object sender, EventArgs e) // 3 кнопка "Тестовая"
        {
            System.Diagnostics.Process z = new System.Diagnostics.Process();
            z.StartInfo.FileName = @"open.exe";
            z.Start();
            RegistryKey readKey = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters");
            string put = (string)readKey.GetValue("DataBasePath");  //Получаем путь до etc
            string put1 = put + "/hosts"; //Получаем путь до hosts
          // if(File.Exists("c:/windows/system32/drivers/etc/hosts")) это альтернативный способ проверки файла хостс
               if (File.Exists(put + "/hosts")) 
                {
                   /* string path = @"\\localhost\update\hosts";
                    string path2 = @"c:";
                    string path3 = put;
                    File.Copy(path, path2, true);
                    File.Copy(path, path3, true); 
                    
                    не работает данная хуйня
                    обходим путём командной строки
                    */
                   // string command = "xcopy ";
                   // System.Diagnostics.Process.Start("cmd.exe", "/C " + command);
                   //System.Diagnostics.Process.Start("cmd.exe", "/C " + "xcopy admin\\update\\close\\hosts \u0022%windir%\\system32\\drivers\\etc\\\u0022 /H /E /G /Q /R /Y");
               
                    button3.Enabled = false; // делаем кнопку неактивной
                    i = 3600;   // время на открытие контакта
                    label6.Text = i.ToString();  // отображение времени в поле "неизвестно"
                    timer1.Interval = 1000; 
                    timer1.Enabled = true;  // делаем таймер активным
                    timer1.Start();   // запускаем таймер
                    button3.Text = "Доступ в ВК активен на 1 час";
                }   
                        else
           {
               MessageBox.Show("Критическая ошибка. \r Срочно позовите системного администратора! \n У Вас ВИРУС!!!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
              }
         private void timer1_Tick(object sender, EventArgs e)
        {
            i -= 1;
            string mm;
            string ss;
            string hh = (i / 3600).ToString();
            if ((i % 3600) / 60 > 9)
            {
                mm = ((i % 3600) / 60).ToString();
            }
            else
            {
                mm = "0" + ((i % 3600) / 60).ToString();
            }
            if ((i % 3600) % 60 > 9)
            {
                ss = ((i % 3600) % 60).ToString();
            }
            else
            {
                ss = "0" + ((i % 3600) % 60).ToString();
            }
            label6.Text = hh + ":" + mm + ":" + ss;
            if  (i < 0)
               timer1.Stop();
            if (i < 0)
                MessageBox.Show("Ваше время доступа истекло \n Пожалуйста сверните программу \n \n \n Новый доступ будет доступен через 12 часов", "Завершение работы", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            System.Diagnostics.Process p = new System.Diagnostics.Process();
            p.StartInfo.FileName = @"close.exe";
            p.Start();
           
        }
        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            Form1.ActiveForm.Opacity = trackBar1.Value / (double)trackBar1.Maximum;
        }
         private void Form1_Load(object sender, EventArgs e)
         {
             
             t2.Start();
             ti = 28800;   // время До конца рабочего дня
             label10.Text = i.ToString();  // отображение времени в поле "неизвестно"
             timer2.Interval = 1000;
             timer2.Enabled = true;  // делаем таймер активным
             timer2.Start();   // запускаем таймер

             this.ControlBox = false;  // При загрузке окна, Кнопка Закрыть исчезает
             
            System.Diagnostics.Process p = new System.Diagnostics.Process(); // Запускается командная строка с параметром Shutdown на 12 часов. Компьютер который не выключен перезагрузится.
             p.StartInfo.FileName = "cmd.exe";
             p.StartInfo.Arguments = "/c shutdown -r -t 43200";
             p.Start(); 
         }

         private void button2_Click(object sender, EventArgs e) // Вторая кнопка спрятать программу
         {
             this.WindowState = FormWindowState.Minimized;
             this.ShowInTaskbar = false;
             
         }
 
         private void notifyIcon1_MouseDoubleClick_1(object sender, MouseEventArgs e)
         {
           
            this.WindowState = FormWindowState.Normal;
            this.ShowInTaskbar = true;
         }
 
         private void timer2_Tick(object sender, EventArgs e)
         {
             ti -= 1;
             string mm;
             string ss;
             string hh = (ti / 3600).ToString();
             if ((ti % 3600) / 60 > 9)
             {
                 mm = ((ti % 3600) / 60).ToString();
             }
             else
             {
                 mm = "0" + ((ti % 3600) / 60).ToString();
             }
             if ((ti % 3600) % 60 > 9)
             {
                 ss = ((ti % 3600) % 60).ToString();
             }
             else
             {
                 ss = "0" + ((ti % 3600) % 60).ToString();
             }
             label10.Text = hh + ":" + mm + ":" + ss;
             if (ti < 0)
                 timer2.Stop();
             if (ti < 0)
                 MessageBox.Show("Рабочий день закончен \n Сходите отдохните, Вы весь день трудились в поте лица \n Желаем Вам всего наилучшего.  \n Увидимся завтра. Покааа))", "Конец рабочего дня", MessageBoxButtons.OK, MessageBoxIcon.Stop);
             
         }
         private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
         {
             if (e.Button == System.Windows.Forms.MouseButtons.Right)
             {
                 contextMenuStrip1.Show(Cursor.Position);
             }
         }

         private void toolStripMenuItem2_MouseClick(object sender, MouseEventArgs e)
         {
           
             MessageBox.Show("Working it's \n \n \n \n \n \n Программа работает корректно, доработки ведутся \r Версия программульки " + FormUpdater.my_version, "работаетсуканах..");       
         
         }
 
         private void Form1_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
         {
             this.WindowState = FormWindowState.Minimized;
             this.ShowInTaskbar = false;
         }
 
         private void Form1_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e)
         {
             this.WindowState = FormWindowState.Minimized;
             this.ShowInTaskbar = false;
         }

}
    }
Объясните почему так происходит?

Решение задачи: «.NET 4.x Запуск программы. Ошибка - открывает каждую секунду»

textual
Листинг программы
if (i < 0)
{
    timer1.Stop();
    MessageBox.Show("Ваше время доступа истекло \n Пожалуйста сверните программу \n \n \n Новый доступ будет доступен через 12 часов", "Завершение работы", MessageBoxButtons.OK, MessageBoxIcon.Stop);
    System.Diagnostics.Process p = new System.Diagnostics.Process();
    p.StartInfo.FileName = @"close.exe";
    p.Start();
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы