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