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

在进行winform开发过程中有时候会需要关闭其他程序或者关闭进程,以前写过一篇相关介绍的文章,今天有同事问起来,于是在次翻出来和大家分享一下。

下面介绍我所知的两种方法,应该对大家有帮助,如果有朋友知道其他的方法,谢谢共享一下。

方法1
ProcName 需要关闭的进程名称

private bool closeProc(string ProcName)
{
 bool result = false;
 System.Collections.ArrayList procList = new System.Collections.ArrayList();
 string tempName = "";

 foreach (System.Diagnostics.Process thisProc in System.Diagnostics.Process.GetProcesses())
 {
  tempName = thisProc.ProcessName;
  procList.Add(tempName);
  if (tempName == ProcName)
  {
   if (!thisProc.CloseMainWindow())
        thisProc.Kill(); //当发送关闭窗口命令无效时强行结束进程
    result = true;
  }
  }
  return result;
}

上面程序里定义了一个ArrayList,当不知道所要关闭的进程的具体名称的时候,可以将ArrayList 中的值放到一个listbox或其他的控件里面用来选择进程进行结束。

方法2

在类体中的最上方声明:

[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern int SendMessage(int hWnd, int msg, int wParam, int lparam);

 //SendMessage(hwnd1,WM_CLOSE,0,0);
 //hwnd1是你用findwindow函数返回的句柄值
 //wm_close定义在winuser.h里面
 //0x0010是 WM_CLOSE的值
 SendMessage(hwnd1,0x0010,0,0);
(0)

相关推荐

  • C#最简单的关闭子窗体更新父窗体的实现方法

    主窗体Form1关键代码: 将子窗体最为对话框模式弹出,当窗体关闭或取消时更新主窗体 复制代码 代码如下: private void simpleButton1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Owner = this; DialogResult result=f2.ShowDialog(); if (result == DialogResult.Cancel) { this.gridControl1.

  • C#实现关闭子窗口而不释放子窗口对象的方法

    在线扫描相机的调试过程中,需要开辟调试界面来进行位置的配置.调试结束后,一种常用的方式是将调试参数保存并在下次启动时加载.另一种简单方式是直接使用该参数运行程序.因此,在后一种情况下,需要实现的功能是:即使关闭调试窗口,其窗口对象也不释放.除非其主窗口关闭,才销毁其调试窗口的对象. 1 在主窗口中实例化子窗口 在主窗口中实例化子窗口,而不是在按钮中实例化子窗口对象. Form2 f2 = new Form2(); 2 通过按钮来显示主窗口 在按钮中需要实现的是窗口的显示 private void

  • c# 实现子窗口关闭父窗口也关闭的简单实例

    其实是窗口间通讯的问题,在form1上打开form2 ,form2 关闭时关闭form1 实现方法: 在子窗口form2中声明事件: public delegate void childclose(); public event childclose closefather; 然后在它的关闭事件中触发本事件: private void Form2_Closed(object sender, System.EventArgs e) { //用事件去关闭主窗口 closefather(); } 在父

  • C#中父窗口和子窗口之间控件互操作实例

    本文实例讲述了C#中父窗口和子窗口之间控件互操作的方法.分享给大家供大家参考.具体分析如下: 很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件.相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可. 下面重点介绍前一种,目前常见的有两种方法,基本上大同小异: 第一种,在主窗体类中定义一个静态成员,来保存当前主窗体对象,例如: 复制代码 代码如下: public static yourMainWindow pCurrentWin =

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

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

  • 在VC中隐藏控制台程序窗口的实现代码

    下面就介绍一下,如何隐藏win32 console application的console窗口因为此种方法是通过设置编译器的链接开关来实现,所以让我们来看一下编译器的链接开关选项(也就是linker选项).首先我们来看一下linker的 /subsystem 选项该选项的语法形式如下: /subsystem:{console|efi_application|efi_boot_service_driver|efi_rom|efi_runtime_driver|native|posix|window

  • 使用mutex实现应用程序单实例运行代码分享

    System.Threading.Mutex :同步基元,它只向一个线程授予对共享资源的独占访问权.实现原理: 在程序启动时,请求一个互斥体,如果能获取对指定互斥的访问权,就继续运行程序,否则就退出程序.测试代码: 复制代码 代码如下: class Test     {         /// <summary>         /// 应用程序的主入口点.         /// </summary>          [STAThread]         static voi

  • 应用程序操作NorFlash示例代码分享(norflash接口使用方法)

    复制代码 代码如下: int dealwithnor(){ //    glob_t mtdbuf;    struct mtd_info_user mtd;    struct erase_info_user erase;    int blocks = 0;    int i = 0;  //用于控制擦除的块的个数    int k = 0;    int written = 0;  //已写入的字节数,只初始化一次    unsigned int size = StateOfImage.s

  • C#向无窗口的进程发送消息

    注:本文适用.net2.0+的winform程序 一个winform程序,我希望它不能多开,那么在用户启动第二个实例的时候,作为第二个实例来说,大概可以有这么几种做法: 1.弹个窗告知用户[程序已运行]之类,用户点击弹窗后,退出自身 2.什么都不做,默默退出自身 3.让已运行的第一个实例把它的窗体显示出来,完了退出自身 显然第3种做法更地道,实现该效果的核心问题其实是:如何显示指定进程的窗口? 首先想到的是调用ShowWindow.SetForegroundWindow等API,配合使用可以将被

  • ie9下关闭弹出窗口出现__flash__removeCallback未定义错误

    使用swfupload作为上传组件,artdialog作为弹出窗口,在关闭弹出窗口时,出现"__flash__removeCallback"未定义错误.而且是关了又出现.网上有些解决方案,主要就是说覆写"__flash__removeCallback"函数的定义,这个在swfupload组件中已经有了: // Fix Flashes own cleanup code so if the SWFMovie was removed from the page // it

  • js关闭当前页面(窗口)的几种方式总结

    1. 不带任何提示关闭窗口的js代码 复制代码 代码如下: <a href="javascript:window.opener=null;window.open('','_self');window.close();">关闭</a> 2.自定义提示关闭 复制代码 代码如下: <script language="javascript">// 这个脚本是 ie6和ie7 通用的脚本function custom_close(){if

  • JS关闭窗口或JS关闭页面的几种代码分享

    第一种:JS定时自动关闭窗口 复制代码 代码如下: <script language="javascript"><!--function closewin(){self.opener=null;self.close();}function clock(){i=i-1document.title="本窗口将在"+i+"秒后自动关闭!";if(i>0)setTimeout("clock();",1000);

  • JavaScript关闭当前页面(窗口)不带任何提示

    1. 不带任何提示关闭窗口的js代码 复制代码 代码如下: <a href="javascript:window.opener=null;window.open('','_self');window.close();">关闭</a> 2.关闭当前页面(IE下带提示) 复制代码 代码如下: <a href="javascript:window.opener=null;window.close();">关闭</a> 3.自

  • Android中关于百度糯米app关闭网页或窗口的方法(99%人不知)

    我们公司做了一款使用百度钱包的移动网页支付进行支付的产品,用户通过百度钱包.百度糯米扫描我们 产品的二维码,选择商品,点击支付将会自动调用百度钱包进行支付,支付成功后返回成功页面,在我们的成功页面有关闭 网页按钮,点击关闭按钮或者返回按钮将会关闭页面. 在百度钱包中使用百度轻应用的BLightApp.closeWindow() 方法可以关闭,但是在百度糯米中,按道理可以使用呀, 但是根本就不行,改成传统的window.close()也不行.当时我们在网上搜索和百度糯米的官网中,都没找到解决方法.

随机推荐