C#打开和关闭外部exe程序。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#打开和关闭外部exe程序。相关的知识,希望对你有一定的参考价值。

假设有一个按钮 按下的时候它可以判断进程中是否已经运行了这个程序,如果运行了则关闭程序,如果没有运行则运行这个程序(有点类似那种软键盘按钮,点一下可以打开,再点一下可以关闭),假设程序名为a.exe
麻烦给出botton click中的详细代码 谢谢。

参考技术A 这个是打开外部程序的函数
/// <summary>
/// 启动其他程序
/// </summary>
/// <param name="FileName">需要启动的外部程序名称</param>
public static bool OpenPress(string FileName, string Arguments)

Process pro = new Process();
if (System.IO.File.Exists(FileName))

pro.StartInfo.FileName = FileName;
pro.StartInfo.Arguments = Arguments;
pro.Start();
return true;

return false;

//这个是判断,关闭
//获得任务管理器中的所有进程
Process[] p = Process.GetProcesses();
foreach (Process p1 in p)

try

string processName = p1.ProcessName.ToLower().Trim();
//判断是否包含阻碍更新的进程
if (processName == "a" )

p1.Kill();


catch
参考技术B 用Process类
Process[] myprocess=Process.GetProcessesByName("a");
if(myprocess.length>0)

myprocess[0]. CloseMainWindow();
myprocess[0].Close();

else

Process.Start("a.exe");
本回答被提问者采纳

Qt QProcess启动和关闭外部程序

    //适用于关闭后台进程的方法
QString c = "taskkill /im notepad.exe /f"; int pInt = QProcess::execute(c); //关闭后台notepad.exe进程,阻塞式运行,一直占用cpu,成功返回0,失败返回1 qDebug()<<"pInt:"<<pInt;

一、启动外部程序的两种方式:
(1)一体式:void QProcess::start(const QString & program, const QStringList & arguments, OpenMode mode = ReadWrite)
        外部程序启动后。将随主程序的退出而退出。
(2)分离式:void QProcess::startDetached(const QString & program, const QStringList & arguments, const QString & workingDirectory = QString(), qint64 * pid = 0)
        外部程序启动后,当主程序退出时并不退出。而是继续执行。

//1-不带空格。能够启动
process->start("F:/AppInst/115/115com/115com.exe");
//2-带空格,无法启动
process->start("C:/Program Files/HaoZip/HaoZip.exe");
//3-带空格,使用带參模式。能够启动
process->start("C:/Program Files/HaoZip/HaoZip.exe", QStringList("C:/Program Files/HaoZip/HaoZip.exe"));

 






以上是关于C#打开和关闭外部exe程序。的主要内容,如果未能解决你的问题,请参考以下文章

c#中如何启用外部exe程序?

我希望它在单独打开 exe 文件时关闭

C# WINFORM 怎么内嵌外部的exe程序

MFC下如何关闭外部程序,例如关闭一个以notepad.exe D:\\text.txt打开的进程

C# VS2010 Express:程序在IDE中运行,但不是exe,为啥? [关闭]

在我的 C# 应用程序中使用外部 .exe [重复]