我正在尝试创建一个将在特定时间执行操作的应用程序(非常类似于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.
两种方式:
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)
| 归档时间: |
|
| 查看次数: |
21668 次 |
| 最近记录: |