<body> <form id="form1" runat="server"> <table align="center" bgcolor="#CDF2FC"> <tr> <td class="style2" colspan="2" style="text-align: center"> 使用ASP.NET结束进程</td> </tr> <tr> <td align="right" class="style4"> 选择进程:</td> <td class="style3"> <asp:DropDownList ID="procname" runat="server" Height="19px" Width="160px"> </asp:DropDownList> <asp:Button ID="btnShow" runat="server" onclick="btnShow_Click" Text="刷新进程" /> </td> </tr> <tr> <td class="style4"> <asp:Button ID="btnKill" runat="server" onclick="btnKill_Click" Text="结束进程" /> </td> <td class="style3"> <asp:Label ID="msg" runat="server"></asp:Label> </td> </tr> </table> </form> </body> </html>
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Collections; using System.Diagnostics;
public partial class FinishApplication : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { btnKill.Attributes.Add("onclick", "javascript:return confirm('真的要结束这个进程吗?');"); } // protected void btnShow_Click(object sender, EventArgs e) { //创建临时数组存放系统进程 ArrayList procList = new ArrayList(); string tempName = ""; int begpos; int endpos; //获取每个进程 foreach (Process thisProc in System.Diagnostics.Process.GetProcesses()) { tempName = thisProc.ToString(); begpos = tempName.IndexOf("(") + 1; endpos = tempName.IndexOf(")"); tempName = tempName.Substring(begpos, endpos - begpos); procList.Add(tempName); } procname.DataSource = procList; procname.DataBind(); }
//结束选中的进程 protected void btnKill_Click(object sender, EventArgs e) { KillProcess(procname.SelectedItem.Text); msg.Text = "进程" + procname.SelectedItem.Text + "已结束"; }
//结束进程函数 private void KillProcess(string processName) { Process myproc = new Process(); //得到所有打开的进程 try { foreach (Process thisproc in Process.GetProcessesByName(processName)) { if (!thisproc.CloseMainWindow()) { thisproc.Kill(); } } } catch (Exception Exc) { msg.Text += "结束" + procname.SelectedItem.Text + "失败!"; } } } |