从C# (Windows Services)跟踪和停止cmd中运行的应用程序,可以通过以下步骤实现:
下面是一个示例代码:
using System;
using System.Diagnostics;
namespace WindowsServiceExample
{
public class MyService
{
private Process cmdProcess;
public void Start()
{
cmdProcess = new Process();
cmdProcess.StartInfo.FileName = "cmd.exe";
cmdProcess.StartInfo.Arguments = "/C <your_application_path> <your_application_arguments>";
cmdProcess.StartInfo.UseShellExecute = false;
cmdProcess.StartInfo.RedirectStandardOutput = true;
cmdProcess.OutputDataReceived += CmdOutputDataReceived;
cmdProcess.EnableRaisingEvents = true;
cmdProcess.Exited += CmdExited;
cmdProcess.Start();
cmdProcess.BeginOutputReadLine();
}
private void CmdOutputDataReceived(object sender, DataReceivedEventArgs e)
{
// 处理cmd命令的输出结果
if (!string.IsNullOrEmpty(e.Data))
{
Console.WriteLine(e.Data);
}
}
private void CmdExited(object sender, EventArgs e)
{
// 处理应用程序退出事件
// 可以在这里进行一些清理操作
}
public void Stop()
{
if (cmdProcess != null && !cmdProcess.HasExited)
{
cmdProcess.Kill();
cmdProcess.Dispose();
}
}
}
}
在上述示例代码中,<your_application_path>
是要执行的应用程序的路径,<your_application_arguments>
是应用程序的参数。你可以根据实际情况修改这两个值。
这个示例代码演示了如何通过C#的Windows服务程序来跟踪和停止cmd中运行的应用程序。你可以根据自己的需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云