C#实现强制关闭当前程序进程

 /// <summary>
    /// 运行DOS命令
    /// DOS关闭进程命令(ntsd -c q -p PID )PID为进程的ID
    /// </summary>
    /// <param name="command"></param>
    /// <returns></returns>
    public static string RunCmd(string command)
    {
      //實例一個Process類,啟動一個獨立進程
      System.Diagnostics.Process p = new System.Diagnostics.Process();  

      //Process類有一個StartInfo屬性,這個是ProcessStartInfo類,包括了一些屬性和方法,下面我們用到了他的幾個屬性:  

      p.StartInfo.FileName = "cmd.exe";      //設定程序名
      p.StartInfo.Arguments = "/c " + command;  //設定程式執行參數
      p.StartInfo.UseShellExecute = false;    //關閉Shell的使用
      p.StartInfo.RedirectStandardInput = true;  //重定向標準輸入
      p.StartInfo.RedirectStandardOutput = true; //重定向標準輸出
      p.StartInfo.RedirectStandardError = true;  //重定向錯誤輸出
      p.StartInfo.CreateNoWindow = true;     //設置不顯示窗口  

      p.Start();  //啟動  

      //p.StandardInput.WriteLine(command);    //也可以用這種方式輸入要執行的命令
      //p.StandardInput.WriteLine("exit");    //不過要記得加上Exit要不然下一行程式執行的時候會當機  

      return p.StandardOutput.ReadToEnd();    //從輸出流取得命令執行結果  

    }  

在Program.cs加上如下

.static class Program
  {
    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main()
    {
      Application.EnableVisualStyles();
      Application.SetCompatibleTextRenderingDefault(false);
      Application.Run(new MainForm());
      //强制关闭进程
      string exeName = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
      string[] exeArray = exeName.Split('\\');  

      FunctionClass.RunCmd("taskkill /im " + exeArray[exeArray.Length-1] + " /f ");
    }
  }
(0)

相关推荐

  • C#程序提示“正由另一进程使用,因此该进程无法访问该文件”的解决办法

    问题描述: 图片加载后显示,然后进行删除操作时提示"--正由另一进程使用,因此该进程无法访问该文件.--" 解决办法: 原代码: 复制代码 代码如下: iml.Images.Add(Image.FromFile(potopath + "\\" + fi.Name)); 改为: 复制代码 代码如下: Image img = Image.FromFile(potopath + "\\" + fi.Name);  iml.Images.Add(img)

  • C#关闭指定名字进程的方法

    本文实例讲述了C#关闭指定名字进程的方法.分享给大家供大家参考.具体实现方法如下: public static void stopNamedProcess(string name) { foreach (Process p in System.Diagnostics.Process.GetProcessesByName(name)) { try { p.Kill(); p.WaitForExit(); } catch (Exception exp) { Console.WriteLine(exp

  • C#启动进程的几种常用方法

    本文实例讲述了C#启动进程的几种常用方法.分享给大家供大家参考.具体如下: 1.启动子进程,不等待子进程结束 private void simpleRun_Click(object sender, System.EventArgs e) { System.Diagnostics.Process.Start(@"C:\listfiles.bat"); } 2.启动子进程,等待子进程结束,并获得输出 private void runSyncAndGetResults_Click(objec

  • C#中进程的挂起与恢复

    1. 源起: 仍然是模块化编程所引发的需求.产品经理难伺候,女产品经理更甚之~:p 纯属戏谑,技术方案与产品经理无关,芋头莫怪! VCU10项目重构,要求各功能模块以独立进程方式实现,比如:音视频转换模块,若以独立进程方式实现,如何控制其暂停.继续等功能呢? 线程可以Suspend.Resume,c#内置的Process没有此类方法,咋整? 山穷水尽疑无路,柳暗花明又一村.情到浓时清转薄,此情可待成追忆! 前篇描述了进程间数据传递方法,此篇亦以示例演示其间控制与数据交互方法.  2.未公开的AP

  • C#获取进程或线程相关信息的方法

    本文实例讲述了C#获取进程或线程相关信息的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; namespace ConsoleApp { class ProcessDo { /// <summary> /// 获取进程相关信息 /// </summary> pub

  • C#实现读取被进程占用的文件实现方法

    本文实例讲述了C#实现读取被进程占用的文件实现方法.分享给大家供大家参考.具体实现方法如下: 文件"D:\Log\Cargoabc\logfilecargoabc.txt"正由另一进程使用,因此该进程无法访问该文件 logfilecargoabc.txt是一个日志文件,不定时都可能由另外的程序对它进行日志记录写入操作 今需要对日志文件读取出来,显示在日志查询里,需要用到了IO流 [1] 复制代码 代码如下: FileStream fs = File.OpenRead(url); Str

  • C#获取任务栏显示进程的方法

    本文实例讲述了C#获取任务栏显示进程的方法.分享给大家供大家参考.具体实现方法如下: private static void getWindowsInfo() { try { Process[] MyProcesses = Process.GetProcesses(); string[] Minfo = new string[6]; foreach (Process MyProcess in MyProcesses) { if (MyProcess.MainWindowTitle.Length

  • C#使用SendMessage实现进程间通信的方法

    本文实例讲述了C#使用SendMessage实现进程间通信的方法.分享给大家供大家参考.具体分析如下: 为了深入理解消息机制,先来做一个测试项目 在新建项目的Form1的代码中,加入方法: protected override void DefWndProc(ref Message m) { if (m.Msg == 0x200) { MessageBox.Show("捕捉到消息"); } else { } base.DefWndProc(ref m); } 此方法重写了窗体的消息截获

  • C#遍历系统进程的方法

    本文实例讲述了C#遍历系统进程的方法.分享给大家供大家参考.具体实现方法如下: 建立一个listBox将进程名称遍历进去 this.listBox1.Items.Clear(); Process[] MyProcesses=Process.GetProcesses(); foreach(Process MyProcess in MyProcesses) { this.listBox1.Items.Add(MyProcess.ProcessName); } this.listBox1.Select

  • C#实现强制关闭当前程序进程

    /// <summary> /// 运行DOS命令 /// DOS关闭进程命令(ntsd -c q -p PID )PID为进程的ID /// </summary> /// <param name="command"></param> /// <returns></returns> public static string RunCmd(string command) { //實例一個Process類,啟動一個獨立

  • C#实现关闭其他程序窗口或进程代码分享

    在进行winform开发过程中有时候会需要关闭其他程序或者关闭进程,以前写过一篇相关介绍的文章,今天有同事问起来,于是在次翻出来和大家分享一下. 下面介绍我所知的两种方法,应该对大家有帮助,如果有朋友知道其他的方法,谢谢共享一下. 方法1 ProcName 需要关闭的进程名称 private bool closeProc(string ProcName) { bool result = false; System.Collections.ArrayList procList = new Syst

  • 使用Supervisor守护ASP.NET Core应用程序进程

    目录 一.前言 二.Supervisor 1.安装Python包管理工具 2.安装Supervisor 3.配置Supervisor应用守护 4.配置Supervisor开机启动 三.总结 一.前言 在上一篇文章中,我们讲解了如何在Linux服务器上面部署ASP.NET Core应用程序,并且使用Nginx作为反向代理.我们在Linux服务器上面,是通过ASP.NET Core自宿主的方式运行应用程序.采用自宿主的方式启动ASP.NET Core应用程序,目前主要有以下几个问题: ASP.NET

  • 解决time_wait强制关闭socket

    解决time_wait 今天我在测试代码的时候,边开边看电影,服务端的CPU消耗和内存使用让我挺满意的 可是过了一会,在统计达到了一定连接后,后来连接很多无法登陆.象上公交车,拥 挤不堪无法上车,用netstat -an查看了下连接状态,time_wait状态的端口非常多 原因就在此了,消耗完系统的端口数,服务端将就无法接收新连接,找到问题就来说明 time_wait,这个东西默认存活时间为2分钟,够长的,这点很要命,更多的大家百度下 对付这个问题,我写了一个函数,强制关闭socket,代码环境

  • Android通过反射实现强制停止应用程序的方法

    本文实例讲述了Android通过反射实现强制停止应用程序的方法.分享给大家供大家参考,具体如下: private ActivityManager manager; private List<RunningAppProcessInfo> runningProcesses; private String packName; private PackageManager pManager; @Override public void onReceive(Context context, Intent

  • C#实现启动,关闭与查找进程的方法

    本文实例讲述了C#实现启动,关闭与查找进程的方法.分享给大家供大家参考,具体如下: 运行效果截图如下: 查找/列出进程很容易,但干掉进程得借助系统命令ntsd.exe,详细用法见下面的代码 : using System; using System.Diagnostics; using System.Windows.Forms; namespace ProcessDemo { public partial class Form1 : Form { public Form1() { Initiali

  • java代码关闭tomcat程序及出现问题解析

    1.通过java代码实现tomcat的关闭 2.tomcatStop.java package test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class tomcatStop { public static void main(String[] args) { // TODO Auto-generated method stub S

  • 在python中实现强制关闭线程的示例

    如下所示: import threading import time import inspect import ctypes def _async_raise(tid, exctype): """raises the exception, performs cleanup if needed""" tid = ctypes.c_long(tid) if not inspect.isclass(exctype): exctype = type(e

  • Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)

    selenium操作chrome浏览器需要有ChromeDriver驱动来协助.webdriver中关浏览器关闭有两个方法,一个叫quit,一个叫close. /** * Close the current window, quitting the browser if it's the last window currently open. */ void close(); /** * Quits this driver, closing every associated window. */

随机推荐