.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();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д