天天看点

C# 启动和结束进程

启动进程:

private void startprocess()

{

try

if (!checkprocessexists())

process p = new process();

p.startinfo.filename = system.io.path.combine(application.startuppath, "datatool.exe");

p.startinfo.arguments = "datatool.exe";

p.startinfo.useshellexecute = true;

p.start();

p.waitforinputidle(10000);

}

catch (exception ex)

messagebox.show(ex.source + " " + ex.message);

private bool checkprocessexists()

process[] processes = process.getprocessesbyname("datatool");

foreach (process p in processes)

if (system.io.path.combine(application.startuppath, "datatool.exe") == p.mainmodule.filename)

return true;

return false;

结束进程:

private void killprocessexists()

process[] processes = process.getprocessesbyname("appstart");

if (system.io.path.combine(application.startuppath, "appstart.exe") == p.mainmodule.filename)

p.kill();

p.close();

有时再写的客户端软件中,使用到比如quartz.net 等定时作业调度组件时,

往往会出现自己的应用程序已经关闭了,但是进程还未结束,这时,需要在关闭窗口时的formclosed事件里加上下面的代码:

private void mainform_formclosed(object sender, formclosedeventargs e)

process current = process.getcurrentprocess();

process[] processes = process.getprocessesbyname(current.processname);

foreach (process process in processes)

if (process.id == current.id)

process.kill();

找到当前的应用程序进程,并结束他,就可以了。

上一篇: 表格列转行
下一篇: ajaxs