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

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

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

Прошу помощи господа. В моём говнокоде не могу найти ошибку. Сделал запуск программы по нажатию на button
Листинг программы
  1. System.Diagnostics.Process p = new System.Diagnostics.Process();
  2. p.StartInfo.FileName = "open.exe";
  3. p.Start();
Но вот беда. Почему то мне каждую секунду открывает программу. Полный код
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Diagnostics;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Windows.Forms;
  10. using System.IO;
  11. using Microsoft.Win32;
  12. using System.Security.Principal;
  13. namespace Updater
  14. {
  15. public partial class Form1 : Form
  16. {
  17. public Form1()
  18. {
  19. InitializeComponent();
  20. t.Tick += timer1_Tick;
  21. t2.Tick += timer2_Tick;
  22. this.Text = "Автоматический корректировщик "; // + FormUpdater.my_version;
  23. label3.Text = FormUpdater.my_version;
  24. }
  25.  
  26. private void выходToolStripMenuItem_Click(object sender, EventArgs e)
  27. {
  28. // Close();
  29. }
  30. private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)
  31. {
  32. AboutBox1 a = new AboutBox1();
  33. a.Show();
  34. }
  35. private void button1_Click(object sender, EventArgs e) // 1 кнопка активация в ВК
  36. {
  37. if (timer1.Enabled)
  38. {
  39. System.Diagnostics.Process p = new System.Diagnostics.Process();
  40. p.StartInfo.FileName = "open.exe";
  41. p.Start();
  42. button1.Text = "Открыть доступ в ВК \r продолжит таймер";
  43. timer1.Enabled = false;
  44. }
  45. else
  46. {
  47. System.Diagnostics.Process p = new System.Diagnostics.Process();
  48. p.StartInfo.FileName = "close.exe";
  49. p.Start();
  50. button1.Text = "Приостановить таймер";
  51. timer1.Enabled = true;
  52. }
  53. //MessageBox.Show("Критическая ошибка приложения \n \n Данная функция не работает в этой версии программы \n Версия программы " + FormUpdater.my_version, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
  54. }
  55. private void настройкиToolStripMenuItem_Click(object sender, EventArgs e)
  56. {
  57. MessageBox.Show("Окошко №1 \n \n \n Тестовая запись \r Окно настроек ещё не готово", "Настройки...", MessageBoxButtons.OK, MessageBoxIcon.Question);
  58. }
  59. int i;
  60. int ti;
  61. private void button3_Click(object sender, EventArgs e) // 3 кнопка "Тестовая"
  62. {
  63. System.Diagnostics.Process z = new System.Diagnostics.Process();
  64. z.StartInfo.FileName = @"open.exe";
  65. z.Start();
  66. RegistryKey readKey = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters");
  67. string put = (string)readKey.GetValue("DataBasePath"); //Получаем путь до etc
  68. string put1 = put + "/hosts"; //Получаем путь до hosts
  69. // if(File.Exists("c:/windows/system32/drivers/etc/hosts")) это альтернативный способ проверки файла хостс
  70. if (File.Exists(put + "/hosts"))
  71. {
  72. /* string path = @"\\localhost\update\hosts";
  73. string path2 = @"c:";
  74. string path3 = put;
  75. File.Copy(path, path2, true);
  76. File.Copy(path, path3, true);
  77. не работает данная хуйня
  78. обходим путём командной строки
  79. */
  80. // string command = "xcopy ";
  81. // System.Diagnostics.Process.Start("cmd.exe", "/C " + command);
  82. //System.Diagnostics.Process.Start("cmd.exe", "/C " + "xcopy admin\\update\\close\\hosts \u0022%windir%\\system32\\drivers\\etc\\\u0022 /H /E /G /Q /R /Y");
  83. button3.Enabled = false; // делаем кнопку неактивной
  84. i = 3600; // время на открытие контакта
  85. label6.Text = i.ToString(); // отображение времени в поле "неизвестно"
  86. timer1.Interval = 1000;
  87. timer1.Enabled = true; // делаем таймер активным
  88. timer1.Start(); // запускаем таймер
  89. button3.Text = "Доступ в ВК активен на 1 час";
  90. }
  91. else
  92. {
  93. MessageBox.Show("Критическая ошибка. \r Срочно позовите системного администратора! \n У Вас ВИРУС!!!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
  94. }
  95. }
  96. private void timer1_Tick(object sender, EventArgs e)
  97. {
  98. i -= 1;
  99. string mm;
  100. string ss;
  101. string hh = (i / 3600).ToString();
  102. if ((i % 3600) / 60 > 9)
  103. {
  104. mm = ((i % 3600) / 60).ToString();
  105. }
  106. else
  107. {
  108. mm = "0" + ((i % 3600) / 60).ToString();
  109. }
  110. if ((i % 3600) % 60 > 9)
  111. {
  112. ss = ((i % 3600) % 60).ToString();
  113. }
  114. else
  115. {
  116. ss = "0" + ((i % 3600) % 60).ToString();
  117. }
  118. label6.Text = hh + ":" + mm + ":" + ss;
  119. if (i < 0)
  120. timer1.Stop();
  121. if (i < 0)
  122. MessageBox.Show("Ваше время доступа истекло \n Пожалуйста сверните программу \n \n \n Новый доступ будет доступен через 12 часов", "Завершение работы", MessageBoxButtons.OK, MessageBoxIcon.Stop);
  123. System.Diagnostics.Process p = new System.Diagnostics.Process();
  124. p.StartInfo.FileName = @"close.exe";
  125. p.Start();
  126. }
  127. private void trackBar1_Scroll(object sender, EventArgs e)
  128. {
  129. Form1.ActiveForm.Opacity = trackBar1.Value / (double)trackBar1.Maximum;
  130. }
  131. private void Form1_Load(object sender, EventArgs e)
  132. {
  133. t2.Start();
  134. ti = 28800; // время До конца рабочего дня
  135. label10.Text = i.ToString(); // отображение времени в поле "неизвестно"
  136. timer2.Interval = 1000;
  137. timer2.Enabled = true; // делаем таймер активным
  138. timer2.Start(); // запускаем таймер
  139.  
  140. this.ControlBox = false; // При загрузке окна, Кнопка Закрыть исчезает
  141. System.Diagnostics.Process p = new System.Diagnostics.Process(); // Запускается командная строка с параметром Shutdown на 12 часов. Компьютер который не выключен перезагрузится.
  142. p.StartInfo.FileName = "cmd.exe";
  143. p.StartInfo.Arguments = "/c shutdown -r -t 43200";
  144. p.Start();
  145. }
  146.  
  147. private void button2_Click(object sender, EventArgs e) // Вторая кнопка спрятать программу
  148. {
  149. this.WindowState = FormWindowState.Minimized;
  150. this.ShowInTaskbar = false;
  151. }
  152. private void notifyIcon1_MouseDoubleClick_1(object sender, MouseEventArgs e)
  153. {
  154. this.WindowState = FormWindowState.Normal;
  155. this.ShowInTaskbar = true;
  156. }
  157. private void timer2_Tick(object sender, EventArgs e)
  158. {
  159. ti -= 1;
  160. string mm;
  161. string ss;
  162. string hh = (ti / 3600).ToString();
  163. if ((ti % 3600) / 60 > 9)
  164. {
  165. mm = ((ti % 3600) / 60).ToString();
  166. }
  167. else
  168. {
  169. mm = "0" + ((ti % 3600) / 60).ToString();
  170. }
  171. if ((ti % 3600) % 60 > 9)
  172. {
  173. ss = ((ti % 3600) % 60).ToString();
  174. }
  175. else
  176. {
  177. ss = "0" + ((ti % 3600) % 60).ToString();
  178. }
  179. label10.Text = hh + ":" + mm + ":" + ss;
  180. if (ti < 0)
  181. timer2.Stop();
  182. if (ti < 0)
  183. MessageBox.Show("Рабочий день закончен \n Сходите отдохните, Вы весь день трудились в поте лица \n Желаем Вам всего наилучшего. \n Увидимся завтра. Покааа))", "Конец рабочего дня", MessageBoxButtons.OK, MessageBoxIcon.Stop);
  184. }
  185. private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
  186. {
  187. if (e.Button == System.Windows.Forms.MouseButtons.Right)
  188. {
  189. contextMenuStrip1.Show(Cursor.Position);
  190. }
  191. }
  192.  
  193. private void toolStripMenuItem2_MouseClick(object sender, MouseEventArgs e)
  194. {
  195. MessageBox.Show("Working it's \n \n \n \n \n \n Программа работает корректно, доработки ведутся \r Версия программульки " + FormUpdater.my_version, "работаетсуканах..");
  196. }
  197. private void Form1_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
  198. {
  199. this.WindowState = FormWindowState.Minimized;
  200. this.ShowInTaskbar = false;
  201. }
  202. private void Form1_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e)
  203. {
  204. this.WindowState = FormWindowState.Minimized;
  205. this.ShowInTaskbar = false;
  206. }
  207.  
  208. }
  209. }
Объясните почему так происходит?

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

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

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


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

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

7   голосов , оценка 3.571 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы