在c#中操作输出字符串

时间:2012-03-23 14:40:24

标签: c#

我有一个任务杀手程序,其中包含当前正在运行的进程的列表框。选择项目后,单击按钮会运行代码以终止所选任务。一切正常,但我需要帮助的是操作我的表单上的字符串输出,显示最后一个任务被杀死的内容。例如,如果我打开计算器并终止该任务,我的字符串输出是:“System.Diagnostics.Process(calc)”。如果只是说“计算”,我更愿意。所以我需要能够剥离“System.Diagnostics.Process()”

    public bool KillProcess(ListBox PList, TextBox Killed)
    {
        bool Kill = true;
        string x = "";
        Killed.Text = "";


        if (PList.SelectedItem != null)
        {

            foreach (Process p in Process.GetProcesses(Environment.MachineName))
            {
                x = PList.SelectedItem.ToString();

                if (p.ProcessName.Equals(x))
                {

                    try
                    {
                        p.Kill();

     //*************** Here is where I have the process killed placed into a textbox
                    //Which I would like to not say "System.Diagnostics.Process..."

                        Killed.Text = p.ToString();
                    }
                    catch
                    {
                        MessageBox.Show(p.ProcessName.ToString() + " cannot be killed. ", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        Kill = false;
                    }
                }


            }
        }
        else 
        {
            MessageBox.Show("Please select a process to be killed.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
            Kill = false;
        }

        return Kill;
    }

2 个答案:

答案 0 :(得分:6)

而不是

Killed.Text = p.ToString();

Killed.Text = p.ProcessName;

另外,作为单独的注释,您无需在其他地方说p.ProcessName.ToString(),因为p.ProcessName已经是字符串。

答案 1 :(得分:3)

您只需使用p.ProcessName

您还可以访问p.StartInfo进入ProcessStartInfo,这也会为您提供有关流程的更多信息(例如文件名) - 此可以有用