就是每次在打开进程"a.exe"之前,系统都先检查一下该进程是否存在,如果存在,就先杀死或关闭该进程,然后再打开.不然我的窗体每调用一次就会出现一次.
我的打开进程的代码是: System.Diagnostics.Process.Start("a.exe");
杀死进程的代码是:
Process[] eprocesses = Process.GetProcessesByName("a.exe");
try
{
for (int i = 0; i < eprocesses.Length; i++)
eprocesses[i].Kill();//终止进程
}
catch
{
}
为什么没作用呢,进程还一直存在.
谢谢.
14 个解决方案
#1
System.Diagnostics.Process[] process = System.Diagnostics.Process.GetProcesses();
for (int i = 0; i < process.Length; i++)
{
if (process[i].ProcessName == "a.exe")
process[i].Kill();
}
#2
mark
#3
Process[] eprocesses = Process.GetProcessesByName("[color=#FF0000]a[/color"); //不用a.exe
#4
进程名是不带后缀名的
#5
杀死再启动是一种办法
另一种是让那个程序自己判断,如果已经启动,则激活已经启动的窗口。
#6
谢谢大家
楼上,怎么激活呢
楼上,怎么激活呢
#7
激活也需要检查进程吧,除非写一个专门的服务,否则系统怎么会白白帮你检测到底你有没有已经执行了程序。
#8
正确
#9
谢谢.
我的启动进程的代码是:
System.Diagnostics.Process.Start("D:\\My Documents\\Visual Studio 2005\\Projects\\A\\A\\bin\\Release\\A.exe");
那杀死应该怎么杀呢,只写个"A"进程马那瓜子,还是("D:\\My Documents\\Visual Studio 2005\\Projects\\A\\A\\bin\\Release\\A.exe")这个名字呢
我的启动进程的代码是:
System.Diagnostics.Process.Start("D:\\My Documents\\Visual Studio 2005\\Projects\\A\\A\\bin\\Release\\A.exe");
那杀死应该怎么杀呢,只写个"A"进程马那瓜子,还是("D:\\My Documents\\Visual Studio 2005\\Projects\\A\\A\\bin\\Release\\A.exe")这个名字呢
#10
谢谢大家的建议,现在进程杀死了(进程名是不带后缀实现,呵呵),已经实现了目标,但是还有一个小问题,就是我的程序每次启动进程的时候,都会最小化托盘的.
现在进程虽然杀死了,但是每调用一次程序,那个小图标(是通过一个NotifyIcon图标)仍会出现在计算机右下角一次,只有鼠标点了一下以后,它才消失.
这个怎么让它随着进程被杀死自动消失啊
现在进程虽然杀死了,但是每调用一次程序,那个小图标(是通过一个NotifyIcon图标)仍会出现在计算机右下角一次,只有鼠标点了一下以后,它才消失.
这个怎么让它随着进程被杀死自动消失啊
#11
Kill 方法将异步执行。在调用 Kill 方法后,请调用 WaitForExit 方法等待进程退出,或者检查 HasExited 属性以确定进程是否已经退出。
#12
怎么让最小化托盘的图标随着进程被杀死自动消失啊
#13
谢谢大家的帮助,非常感谢。
#14
激活可以使用API,得先找到主窗口句柄
#1
System.Diagnostics.Process[] process = System.Diagnostics.Process.GetProcesses();
for (int i = 0; i < process.Length; i++)
{
if (process[i].ProcessName == "a.exe")
process[i].Kill();
}
#2
mark
#3
Process[] eprocesses = Process.GetProcessesByName("[color=#FF0000]a[/color"); //不用a.exe
#4
进程名是不带后缀名的
#5
杀死再启动是一种办法
另一种是让那个程序自己判断,如果已经启动,则激活已经启动的窗口。
#6
谢谢大家
楼上,怎么激活呢
楼上,怎么激活呢
#7
激活也需要检查进程吧,除非写一个专门的服务,否则系统怎么会白白帮你检测到底你有没有已经执行了程序。
#8
正确
#9
谢谢.
我的启动进程的代码是:
System.Diagnostics.Process.Start("D:\\My Documents\\Visual Studio 2005\\Projects\\A\\A\\bin\\Release\\A.exe");
那杀死应该怎么杀呢,只写个"A"进程马那瓜子,还是("D:\\My Documents\\Visual Studio 2005\\Projects\\A\\A\\bin\\Release\\A.exe")这个名字呢
我的启动进程的代码是:
System.Diagnostics.Process.Start("D:\\My Documents\\Visual Studio 2005\\Projects\\A\\A\\bin\\Release\\A.exe");
那杀死应该怎么杀呢,只写个"A"进程马那瓜子,还是("D:\\My Documents\\Visual Studio 2005\\Projects\\A\\A\\bin\\Release\\A.exe")这个名字呢
#10
谢谢大家的建议,现在进程杀死了(进程名是不带后缀实现,呵呵),已经实现了目标,但是还有一个小问题,就是我的程序每次启动进程的时候,都会最小化托盘的.
现在进程虽然杀死了,但是每调用一次程序,那个小图标(是通过一个NotifyIcon图标)仍会出现在计算机右下角一次,只有鼠标点了一下以后,它才消失.
这个怎么让它随着进程被杀死自动消失啊
现在进程虽然杀死了,但是每调用一次程序,那个小图标(是通过一个NotifyIcon图标)仍会出现在计算机右下角一次,只有鼠标点了一下以后,它才消失.
这个怎么让它随着进程被杀死自动消失啊
#11
Kill 方法将异步执行。在调用 Kill 方法后,请调用 WaitForExit 方法等待进程退出,或者检查 HasExited 属性以确定进程是否已经退出。
#12
怎么让最小化托盘的图标随着进程被杀死自动消失啊
#13
谢谢大家的帮助,非常感谢。
#14
激活可以使用API,得先找到主窗口句柄