private void menuItem1_Click(object sender, System.EventArgs e)
{
OpenFileDialog ofDlg = new OpenFileDialog();
ofDlg.Filter = "All Executables(*.exe)|*.exe";
if(ofDlg.ShowDialog() == DialogResult.OK)
{
try
{
Process newProcess = Process.Start(ofDlg.FileName);
if(newProcess != null)
{
newProcess.WaitForExit();
newProcess.Exited += new EventHandler(OnProcessExited);
}
ListAllProcesses();
}
catch(ArgumentException excep)
{
MessageBox.Show(excep.Message,"参数错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
} private void menuItem2_Click(object sender, System.EventArgs e)
{
if(listView1.SelectedItems.Count > 0)
{
int pid = Int32.Parse(listView1.SelectedItems[0].SubItems[1].Text);
Process selectedProcess = Process.GetProcessById(pid);
selectedProcess.WaitForExit();
//selectedProcess.Close(); selectedProcess.Exited += new EventHandler(OnProcessExited);
if(!selectedProcess.HasExited)
{
if(!selectedProcess.CloseMainWindow())
{
if(MessageBox.Show("不能关闭应用程序窗口,要继续终止进程么?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.OK)
{
try
{
selectedProcess.Kill();
} //selectedProcess.WaitForExit();
//selectedProcess.Close();
catch(Exception excep)
{
MessageBox.Show(excep.Message,"不能结束进程",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
}
}
else
{
MessageBox.Show("选中的进程已经退出!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
ListAllProcesses();
}
}
else
{
MessageBox.Show("请选中一个进程!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
{
OpenFileDialog ofDlg = new OpenFileDialog();
ofDlg.Filter = "All Executables(*.exe)|*.exe";
if(ofDlg.ShowDialog() == DialogResult.OK)
{
try
{
Process newProcess = Process.Start(ofDlg.FileName);
if(newProcess != null)
{
newProcess.WaitForExit();
newProcess.Exited += new EventHandler(OnProcessExited);
}
ListAllProcesses();
}
catch(ArgumentException excep)
{
MessageBox.Show(excep.Message,"参数错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
} private void menuItem2_Click(object sender, System.EventArgs e)
{
if(listView1.SelectedItems.Count > 0)
{
int pid = Int32.Parse(listView1.SelectedItems[0].SubItems[1].Text);
Process selectedProcess = Process.GetProcessById(pid);
selectedProcess.WaitForExit();
//selectedProcess.Close(); selectedProcess.Exited += new EventHandler(OnProcessExited);
if(!selectedProcess.HasExited)
{
if(!selectedProcess.CloseMainWindow())
{
if(MessageBox.Show("不能关闭应用程序窗口,要继续终止进程么?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.OK)
{
try
{
selectedProcess.Kill();
} //selectedProcess.WaitForExit();
//selectedProcess.Close();
catch(Exception excep)
{
MessageBox.Show(excep.Message,"不能结束进程",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
}
}
else
{
MessageBox.Show("选中的进程已经退出!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
ListAllProcesses();
}
}
else
{
MessageBox.Show("请选中一个进程!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
解决方案 »
- 除了控件为什么我从来没看到别人代码用事件编程的?事件这东西设计是不是合理?
- C# 访问IIs服务器的问题。
- 请高手出招相救!
- C#.net WEB2005开发代码中获取dropdownlist在网页中的位置坐标。
- Remoting中,Client是否必须对MarshalByRefObject所在的程序集进行引用?
- 怎么生成对比曲线图?
- Unity3d中调用C++写的Kinect手势的dll,打包运行报错!
- 哪里可以下载到C# primer
- 在webform中怎样截取或响应按键事件?非用javascript吗?
- winform下的printDocument如何实现打印文件?
- Response.redirect(); 问题
- 連接數據庫出錯,各位大哥幫看看到底是為什麼啊
这个会停在这儿,直到该进程结束,再继续执行.
for (int i = 0; i < ps.Length; i++)
{
this.textBox1.Text += ps[i].ProcessName + "\r\n";
if (ps[i].ProcessName.ToUpper() == "EXCEL")
{
ps[i].Kill();
}
}