07-控制台程序实现关闭进程

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Diagnostics;

namespace KillProcess
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入进程名:");
            string processName = Console.ReadLine();
            int killValue = 0;
            killValue = KillProc(processName);
            //CloseProcess.KillProc(processName, ref killValue);
            switch (killValue)
            {
                case 0:
                    Console.WriteLine("进程 {0} 关闭成功", processName);
                    break;
                case 1:
                    Console.WriteLine("当前没有正在运行的进程!");
                    break;
                case 2:
                    Console.WriteLine("结束进程 {0} 出错!", processName);
                    break;
                default:
                    break;
            }
            Console.ReadKey();
        }

        /// <summary>
        /// 关闭指定进程的方法
        /// </summary>
        /// <param name="processName">进程名</param>
        /// <returns></returns>
        private static int KillProc(string processName)
        {
            int killValue = 0;
            try
            {
                Process[] ps = Process.GetProcesses();
                if (ps == null)
                {
                    killValue = 1;
                    return killValue;
                }
                foreach (Process item in ps)
                {
                    if (item.ProcessName.ToLower()==processName.ToLower())
                    {
                        item.Kill();
                    }
                }
            }
            catch //出现异常,表明 kill 进程失败
            {
                killValue = 2;
            }

            return killValue;
        }
    }
}
时间: 2024-11-08 21:32:44

07-控制台程序实现关闭进程的相关文章

C++ Win32控制台应用程序捕捉关闭事件

C++ Win32控制台应用程序捕捉关闭事件 #include #include bool ctrlhandler( DWORD fdwctrltype ) { switch( fdwctrltype ) { // handle the ctrl-c signal. case CTRL_C_EVENT: printf( "ctrl-c event\n\n" ); return( true ); // ctrl-close: confirm that the user wants to

截获控制台程序关闭事件(SetConsoleCtrlHandler)

最近控制台程序中需要捕获控制台关闭事件,在用户关闭的时候进行某些操作,找了一大圈发现了一个方法,通过调用WIN32 API SetConsoleCtrlHandler方法来实现,具体代码如下: 1 using System; 2 using System.Windows.Forms; 3 using System.Diagnostics; 4 using System.Runtime.InteropServices; 5 6 namespace ConsoleColsed 7 { 8 publi

C#控制台程序中处理2个关闭事件的代码实例

应用场景 我们开发的控制台应用,在运行阶段很有可能被用户Ctrl+C终止或是被用户直接关闭.如果我们不希望用户通过Ctrl+C终止我们的程序,就需要对Ctrl+C或关闭事件作处理. 处理方法 在.net平台下Console类有个CancelKeyPress事件可以处理Ctrl+C,不过对于直接关闭控制台应用,这种处理就无能为力了. 不过Windows API中有个SetConsoleCtrlHandler函数可以处理这两种关闭事件. C#处理代码如下: 代码如下: static class Pr

控制台程序如何在调试时手工关闭

控制台程序程序跑完后会自动关闭,有时我们想看看整个的输出时,需要取消其自动关闭窗口的行为.可以如下调整IDE的配置 菜单:调试->选项 原文地址:https://www.cnblogs.com/kevin-Y/p/10341239.html

重定向子进程控制台程序的输入输出

重定向子进程控制台程序的输入输出 重定向所做的工作都在父进程,但需要子进程遵守下面的规则: 子进程程序在输出代码后,等待输入之前需要调用fflush(stdout)函数,这样把输出的内容放入缓冲区,父进程才能及时的读到输出数据. 不遵守以上规则就没办法实现有效的交互了,cmd.exe是遵守这个规则的典范,大部分控制台程序都不遵守这个规则.今天我试图给Google的V8 Javascript 的Shell搞一个GUI,方便我输入Javascript程序,就遇到了v8_shell不遵守这个的问题.好

调用控制台程序的方法以及注意事项

我们常常用遇到调用第三方库,但是该库文件没有做好内存管理,会发生内存泄露的情况. 这个时候我们可以在控制台中调用该库,然后在代码中调用控制台程序,以此控制台的来管理内存. public class ConsoleMethod { private static int _time = 10 * 60 * 1000; public static string InvokeConsole(string parameter, string programName, string programAddre

Createprocess控制台程序输出重定向

在Windows编程中,并非每一个应用程序都需要一个图形用户界面(GUI),很多情况下,我们可以编写一个控制台应用程序,这样程序更小,加载更快,传输时间也短,同时也丝毫不牺牲程序应有的功能.这种程序特别适合那些在后台运行的程序,比如压缩.杀毒.上传下载等等.如果我们的确需要在GUI执行这些程序,以完成某些比如类似于磁盘格式化的功能,我们可以在GUI程序中创建一个新的进程,调用这些已有的控制台应用程序,帮助完成这些功能.然而令人失望的是,我们每次加载这些控制台应用程序时,图形程序总会在加载的过程中

C、C++控制台程序、Windows API程序、MFC程序理解与比较

在编程语言中,函数是一个很重要的概念,其身影无处不在.在面向过程的编程方式中,函数更是程序的基本构建模块,在面向对象的编程方式中,函数演变为类或对象的成员(当然也可以使用与类无关的函数).函数由函数头和函数体组成.函数头包括域属性(如external.static或类域).返回值类型.函数名.及参数.域属性包括其在多文件编程中的可见范围,是否是属于某一个类的成员?返回值类型是指函数返回的值的具体数据类型(可以理解为函数输出的一部分).函数名是函数保存在内存代码区的首地址,用于函数的调用及函数指针

在CMD命令行下关闭进程的命令

转载: [重要]在CMD命令行下关闭进程的命令━━━━━━━━━━━━━━━━━━━━━━━━━━ 方法一: 在"运行"中输入:ntsd -c q -pn 程序名字(在MS-Dos中的作用是一样的) 方法二: ntsd使用以下参数杀死进程.c:\>ntsd -c q -p PID 只要你能提供进程的PID,那么你就可以干掉进程. 法二: tskill命令 这个命令与tasklist命令是相对应的吧! tasklist命令是显示有哪些进程正在运行! tskill命令是关闭运行中的进