.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();
}