使用System.Diagnostic.Process.Start("FileName")启动Kill进程

Ped*_*C88 9 .net c# vb.net

我正在尝试创建一个将在特定时间执行操作的应用程序(非常类似于Windows任务计划程序).我目前正在使用Process.Start()来启动任务所需的文件(或exe).

我通过调用文件(.mp3)启动进程,并且该进程启动WMP(因为它是默认应用程序).到现在为止还挺好.现在我要杀死那个过程.我知道在这种情况下,Process.Start(string,string)返回任何内容(C#中为null)是正常的行为.

所以我问我在通过Process.Start(字符串,字符串)调用它时如何关闭WMP?

编辑:

请注意,我没有直接使用Process.Start()打开WMP,这是我运行该过程的行:

VB:Me._procs.Add(Process.Start(Me._procInfo))

C#:this._procs.Add(Process.Start(this._procInfo))

_procInfo是ProcessStartInfo实例._procInfo.FileName是"C:\ route\myFile.mp3".这就是WMP开放的原因.在任何情况下,除了返回布尔值的instance-one之外的所有Start()方法都不返回任何内容(C#中为null),因为WMP不是直接创建的进程(请注意WMP运行并且歌确实发挥).

Ste*_*end 19

Process.Start(string,string)返回一个Process资源,您可以使用它来进一步控制新进程.

Process newProcess = Process.Start("param1", "param2");
if (newProcess != null && !newProcess.HasExited)
  newProcess.Kill();
Run Code Online (Sandbox Code Playgroud)

如果您使用Process.Start(string)或任何其他静态Process.Start重载,相同的结构.

Process.Start()是一个成员函数,它将new或reused Process与由此Process标识的组件相关联.此方法的行为取决于所标识的过程的属性this.


Ste*_*per 8

不要这样做.

目前尚不清楚您的计划的目的是"始终使用Windows Media Player启动"还是"使用已注册的MP3播放器启动",这可能是iTunes.

如果您需要WMP,请使用Process.Start以及Windows Media Player的完整路径.

如果您需要注册的MP3播放器,可以使用此处显示的代码找到正确的exe .再次,使用此exe路径启动进程,将MP3作为参数传递.


Kam*_*yar 5

两种方式:

1-

Process customProc = Process.Start("ExecutablePath", "Argument(s)");  
customProc.Kill()
Run Code Online (Sandbox Code Playgroud)

2-

Dim pProcess() As Process = System.Diagnostics.Process.GetProcessesByName("ProcessName")  
For Each p As Process In pProcess
p.Kill()
Next
Run Code Online (Sandbox Code Playgroud)