C#使用Process类调用外部exe程序
程序员文章站
2022-05-14 17:30:44
在编写程序时经常会使用到调用可执行程序的情况,本文将简单介绍c#调用exe的方法。在c#中,通过process类来进行进程操作。 process类在system.diagn...
在编写程序时经常会使用到调用可执行程序的情况,本文将简单介绍c#调用exe的方法。在c#中,通过process类来进行进程操作。 process类在system.diagnostics包中。
示例一
复制代码 代码如下:
using system.diagnostics;
process p = process.start("notepad.exe");
p.waitforexit();//关键,等待外部程序退出后才能往下执行
process p = process.start("notepad.exe");
p.waitforexit();//关键,等待外部程序退出后才能往下执行
通过上述代码可以调用记事本程序,注意如果不是调用系统程序,则需要输入全路径。
示例二
当需要调用cmd程序时,使用上述调用方法会弹出令人讨厌的黑窗。如果要消除,则需要进行更详细的设置。
process类的startinfo属性包含了一些进程启动信息,其中比较重要的几个
filename 可执行程序文件名
arguments 程序参数,已字符串形式输入
createnowindow 是否不需要创建窗口
useshellexecute 是否需要系统shell调用程序
通过上述几个参数可以让讨厌的黑屏消失
复制代码 代码如下:
system.diagnostics.process exep = new system.diagnostics.process();
exep.startinfo.filename = binstr;
exep.startinfo.arguments = cmdstr;
exep.startinfo.createnowindow = true;
exep.startinfo.useshellexecute = false;
exep.start();
exep.waitforexit();//关键,等待外部程序退出后才能往下执行
exep.startinfo.filename = binstr;
exep.startinfo.arguments = cmdstr;
exep.startinfo.createnowindow = true;
exep.startinfo.useshellexecute = false;
exep.start();
exep.waitforexit();//关键,等待外部程序退出后才能往下执行
或者
复制代码 代码如下:
system.diagnostics.process exep = new system.diagnostics.process();
system.diagnostics.processstartinfo startinfo = new system.diagnostics.processstartinfo();
startinfo.filename = binstr;
startinfo.arguments = cmdstr;
startinfo.createnowindow = true;
startinfo.useshellexecute = false;
exep.start(startinfo);
exep.waitforexit();//关键,等待外部程序退出后才能往下执行
system.diagnostics.processstartinfo startinfo = new system.diagnostics.processstartinfo();
startinfo.filename = binstr;
startinfo.arguments = cmdstr;
startinfo.createnowindow = true;
startinfo.useshellexecute = false;
exep.start(startinfo);
exep.waitforexit();//关键,等待外部程序退出后才能往下执行