求教C#如何获取自身进程ID

问题描述

最近想做个单实例的程序,一旦发现同名进程就干掉,但是貌似没有办法区别自身,就想用PID区分,但是查了半天没看到相关资料,就想到这里请教各路大神给个指导。原始代码很简单,就是使用GetProcessByName拉取当前进程列表,遍历后结束同名进程,但是这种方法无法区分自身,不可行。

解决方案

解决方案二:
Process.GetCurrentProcess().Id
解决方案三:
单实例的程序不是这么实现的……http://www.2cto.com/kf/201212/173920.html方法二、三,你参考下;时间关系,不多说了。
解决方案四:
引用2楼mikecheers的回复:

单实例的程序不是这么实现的……http://www.2cto.com/kf/201212/173920.html方法二、三,你参考下;时间关系,不多说了。

嘛……不是打算做严格的单实例,本身程序是一个管理不怎么严的组织形式,严格单实例容易卡死上级程序,我又不想给前级程序负责,就打算做个易失性的东西。
解决方案五:
引用1楼Forty2的回复:

Process.GetCurrentProcess().Id

好的,谢谢了
解决方案六:
你可以做一个“守护进程”,不要在其它进程里随便乱杀进程。
解决方案七:
如果是进程内部来判断是否有重复,那么进程只是判断”是否进程数量>1“,然后就把自己退出了。怎么能随便杀别的进程呢?只有守护进程才应该干这个事情。你把不同进程的职责给安排错了!
解决方案八:
既然是单实例,网上例子多多,楼主这是创新吧,只是剑走偏锋了.

时间: 2024-10-06 04:35:18

求教C#如何获取自身进程ID的相关文章

WIN32程序获取父进程ID的方法_C 语言

学过windows程序设计的人都知道,windows中的进程是可以有父子关系的,拥有父子关系的进程,一旦父进程结束,子进程有会随之退出.但是如果进程之间没有父子关系,我们如何让子进程在父进程退出是也同时跟着退出呢?方法有很多,本文介绍其中的一种利用父进程ID的方案,实现的原理很简单:先获取父进程的ID,然后通过ID来获取父进程Handle,通过监视父进程的Handle来决定子进程是否退出.所以,这里的关键就是如何获取父进程的ID. 为了获取父进程ID,这里需要用到一个微软未公开的API: NTS

Shell脚本中获取进程ID的方法

 这篇文章主要介绍了Shell脚本中获取进程ID的方法,我想要知道运行中脚本子shell的进程id,我该如何在shell脚本中得到PID,阅读本文即可找到你想要答案,需要的朋友可以参考下     提问: 我想要知道运行中脚本子shell的进程id.我该如何在shell脚本中得到PID. 当我在执行shell脚本时,它会启动一个叫子shell的进程.作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为"批处理进程"). 在某些情况下,你也许想要知道运行中

已知进程id句柄,如何获取图标

问题描述 已知进程id句柄,如何获取图标,求解答 解决方案 解决方案二:是做一个进程列表,想获取图标解决方案三:staticIconGetIconByProcessId(intprocessId){varp=Process.GetProcessById(processId);returnp==null?null:Icon.ExtractAssociatedIcon(p.MainModule.FileName);}解决方案四:publicstaticIcongetIcon(ProcesstempP

Shell脚本中获取进程ID的方法_linux shell

提问: 我想要知道运行中脚本子shell的进程id.我该如何在shell脚本中得到PID. 当我在执行shell脚本时,它会启动一个叫子shell的进程.作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为"批处理进程"). 在某些情况下,你也许想要知道运行中的子shell的PID.这个PID信息可以在不同的情况下使用.比如,你可以使用shell脚本的PID在/tmp下创建一个唯一的临时文件.有时侯脚本需要检测所有运行的进程,它可以从进程列表中排除自身

如何获取其它进程中窗口的窗口过程

开发环境: Windows XP + VC6+Platform SDK 或者 VS.NET 2003+ 测试环境: Windows XP 曾经以为获取一个窗口的窗口过程很简单,不就是GetWindowLong一下吗,看spyxx获取的多么顺利.后来才发现原来不是这么简单.获取本进程内窗口的窗口过程确实很简单,直接调用GetWindowLong(hWnd,GWL_WNDPROC)就可以了(注意,根据窗口是否是Unicode的,你要判断是调用GetWindowLongA,还是GetWindowLon

如何获取某个进程的主窗口以及创建进程的程序名

在编写工具程序以及系统管理程序的时候.常常需要获取某个进程的主窗口以及创建此进程的程序名.获取主窗口的目的是向窗口发送各种消息.获取启动进程的程序名可以控制对进程的操作.但是有些进程往往有多个主窗口.你要的是哪一个主窗口呢?如果你用过Outlook程序,你就会发现它有多个主窗口,一个窗口列出收件箱和其它文件夹.如果你打开e-mail,便会有另外一个窗口显示信息.它们都是没有父窗口(或者说宿主窗口)的主窗口.运行一下Spy程序,你甚至会发现它们的窗口类名都相同:rctrl_renwnd32.资源管

Linux进程ID号--Linux进程的管理与调度(三)

进程ID概述 进程ID类型 要想了解内核如何来组织和管理进程ID,先要知道进程ID的类型: 内核中进程ID的类型用pid_type来描述,它被定义在include/linux/pid.h中 enum pid_type { PIDTYPE_PID, PIDTYPE_PGID, PIDTYPE_SID, PIDTYPE_MAX }; 1 2 3 4 5 6 7 1 2 3 4 5 6 7 PID 内核唯一区分每个进程的标识 pid是 Linux 中在其命名空间中唯一标识进程而分配给它的一个号码,称做

详解C#获取特定进程CPU和内存使用率_C#教程

首先是获取特定进程对象,可以使用Process.GetProcesses()方法来获取系统中运行的所有进程,或者使用Process.GetCurrentProcess()方法来获取当前程序所对应的进程对象.当有了进程对象后,可以通过进程对象名称来创建PerformanceCounter类型对象,通过设定PerformanceCounter构造函数的参数实现获取特定进程的CPU和内存使用情况. 具体实例代码如下: 首先是获取本机中所有进程对象,分别输出某一时刻各个进程的内存使用情况: using

PowerShell获取当前进程PID的小技巧_PowerShell

本文介绍如何在PowerShell中获取当前PowerShell进程的PID,然后用它来做一些有趣的事情. 有没有试过在powershell命令行窗口中输入"$pid"?试试看. 复制代码 代码如下: PS C:\Users\zhanghong> $pid 4404 对于PID,我们貌似不陌生.是的,它就是一个进程的进程ID.那这里的"$pid"是谁的进程ID呢?是当前powershell这个命令行窗口的powershell进程的进程ID.注意,小编在先打开一