ServiceHelper.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Threading;
  10. namespace ServiceHelper
  11. {
  12. public enum WorkType
  13. {
  14. Install,
  15. Uninstall,
  16. Start,
  17. Stop,
  18. Restart,
  19. }
  20. public partial class ServiceHelper : Form
  21. {
  22. private const string serviceName = "Aca.Certain.MiddleService";
  23. private const string serviceInstallPath = "Aca.Certain.MiddleService.exe";
  24. private Progress progress = new Progress();
  25. public static BackgroundWorker bgWorker = new BackgroundWorker();
  26. public ServiceHelper()
  27. {
  28. InitializeComponent();
  29. bgWorker.WorkerReportsProgress = true;
  30. bgWorker.DoWork += new DoWorkEventHandler(bgWorker_DoWork);
  31. bgWorker.ProgressChanged += new ProgressChangedEventHandler(bgWorker_ProgressChanged);
  32. bgWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bgWorker_RunWorkerCompleted);
  33. }
  34. void bgWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
  35. {
  36. progress.Done();
  37. if (!string.IsNullOrEmpty((string)e.Result))
  38. {
  39. MessageBox.Show((string)e.Result, "消息", MessageBoxButtons.OK);
  40. }
  41. }
  42. void bgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
  43. {
  44. progress.UpdateProgress();
  45. }
  46. void bgWorker_DoWork(object sender, DoWorkEventArgs e)
  47. {
  48. try
  49. {
  50. progress.Reset();
  51. switch ((WorkType)e.Argument)
  52. {
  53. case WorkType.Install:
  54. {
  55. ServiceControl.Install(serviceName, serviceInstallPath);
  56. e.Result = "安装服务成功!";
  57. }
  58. break;
  59. case WorkType.Uninstall:
  60. {
  61. ServiceControl.Uninstall(serviceName, serviceInstallPath);
  62. e.Result = "卸载服务成功!";
  63. }
  64. break;
  65. case WorkType.Start:
  66. {
  67. ServiceControl.Start(serviceName);
  68. e.Result = "启动服务成功!";
  69. }
  70. break;
  71. case WorkType.Stop:
  72. {
  73. ServiceControl.Stop(serviceName);
  74. e.Result = "停止服务成功!";
  75. }
  76. break;
  77. case WorkType.Restart:
  78. {
  79. ServiceControl.Restart(serviceName);
  80. e.Result = "重启服务成功!";
  81. }
  82. break;
  83. }
  84. }
  85. catch (Exception ex)
  86. {
  87. progress.Hide();
  88. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK);
  89. }
  90. }
  91. private void InstallBtn_Click(object sender, EventArgs e)
  92. {
  93. try
  94. {
  95. bgWorker.RunWorkerAsync(WorkType.Install);
  96. progress.Text = "安装服务中……";
  97. progress.ShowDialog(this);
  98. }
  99. catch (Exception ex)
  100. {
  101. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK);
  102. }
  103. }
  104. private void UninstallBtn_Click(object sender, EventArgs e)
  105. {
  106. try
  107. {
  108. bgWorker.RunWorkerAsync(WorkType.Uninstall);
  109. progress.Text = "卸载服务中……";
  110. progress.ShowDialog(this);
  111. }
  112. catch (Exception ex)
  113. {
  114. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK);
  115. }
  116. }
  117. private void StartBtn_Click(object sender, EventArgs e)
  118. {
  119. try
  120. {
  121. bgWorker.RunWorkerAsync(WorkType.Start);
  122. progress.Text = "启动服务中……";
  123. progress.ShowDialog(this);
  124. }
  125. catch (Exception ex)
  126. {
  127. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK);
  128. }
  129. }
  130. private void StopBtn_Click(object sender, EventArgs e)
  131. {
  132. try
  133. {
  134. bgWorker.RunWorkerAsync(WorkType.Stop);
  135. progress.Text = "停止服务中……";
  136. progress.ShowDialog(this);
  137. }
  138. catch (Exception ex)
  139. {
  140. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK);
  141. }
  142. }
  143. private void RestartBtn_Click(object sender, EventArgs e)
  144. {
  145. try
  146. {
  147. bgWorker.RunWorkerAsync(WorkType.Restart);
  148. progress.Text = "重启服务中……";
  149. progress.ShowDialog(this);
  150. }
  151. catch (Exception ex)
  152. {
  153. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK);
  154. }
  155. }
  156. private void ConfigBtn_Click(object sender, EventArgs e)
  157. {
  158. try
  159. {
  160. Settings settings = new Settings();
  161. settings.ShowDialog(this);
  162. }
  163. catch (Exception ex)
  164. {
  165. MessageBox.Show(ex.Message, "获取配置失败", MessageBoxButtons.OK);
  166. }
  167. }
  168. }
  169. }