如何通过PID向CMD进程发送关闭命令

时间:2017-05-22 08:02:56

标签: c# cmd process command-line-interface pid

此过程由selenium

启动

所以我无法控制它是如何开始的

但是,CMD进程有X按钮

我可以通过PID以编程方式调用该X按钮吗?

enter image description here

C#4.6.2 Windows 8.1

我能够杀死该过程但是它没有像X按钮点击那样产生相同的效果

3 个答案:

答案 0 :(得分:3)

这是使用系统命令taskkill的代码的一部分:

//starts a command
public static int RunCommandAndWait(string command, string args)
{
    int result = -1;

    Process p = new Process();
    p.StartInfo.Arguments = args;
    p.StartInfo.CreateNoWindow = true;
    p.StartInfo.FileName = command;
    p.StartInfo.UseShellExecute = true;

    if (p.Start())
    {
        p.WaitForExit();
        result = p.ExitCode;
    }

    p.Dispose();
    return result;
}

//kills a process using its pid and above method
public static void KillProcessTree(int processId)
{
    RunCommandAndWait("taskkill", String.Format("/pid {0} /f /t", processId));
    try
    {
        Process p = Process.GetProcessById(processId);
        if (p != null)
            KillProcessTree(processId); //this sometimes may be needed
    }catch(Exception)
    {

    }
}

答案 1 :(得分:0)

您需要在窗口中找到windowsend message

SendMessage(mbWnd, WM_CLOSE, IntPtr.Zero, IntPtr.Zero);

已经描述过here

答案 2 :(得分:0)

这应该可以解决问题:

"spring:session:sessions:71f06a1d-b169-4bb9-a4c8-013bb82742ee"