C#如何实现使用一个winfrom程序来控制另一个程序的开始和结束?

2024-12-15 22:32:32
推荐回答(2个)
回答1:

需要用到Process类
这里我用QQ播放器给楼主举个例子
button1为打开QQ播放器
button2为关闭QQ播放器

private void button1_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start(@"E:\Tencent\QQPlayer\QQPlayer.exe");
}
如果直接填写文件名字,那么就表示与该EXE程序同一根目录下

private void button2_Click(object sender, EventArgs e)
{
System.Diagnostics.Process[] ps = System.Diagnostics.Process.GetProcesses();//获取所有进程
foreach (System.Diagnostics.Process p in ps)
{
if (p.ProcessName == "QQPlayer")//如果是QQ播放器
{
p.Kill();
}
}
}
要具体知道某个进程的进程名字是什么,我的方法是在button2点击时间下,if那里设置断点,通过ps这个数组,一个一个查的。当然可能还有更简便的方法。

如果楼主是想实现完全自定义的任意程序的开始/结束
那么配合listbox使用就可以了
方法就是遍历后,将可用文件放置listbox
后面操作就同上了

回答2:

private void button1_Click(object sender, EventArgs e)
{//循环所有的进程,关闭你要关的
foreach (Process may in Process.GetProcessesByName("Thunder")) //这里是进程的名称
{
may.Kill();//关闭方法
}
}

private void button2_Click(object sender, EventArgs e)
{
//打开你要打开的程序 filename是exe文件的地址
Process p = new Process();
p.StartInfo.FileName = @"C:\Program Files\Thunder Network\Thunder\Program\Thunder.exe";
p.Start();//开始打开
}