python 获取进程的pid

python 获取进程的pid,第1张

方法一:

使用subprocess 的check_output函数执行pidof命令

方法二:

使用pgrep命令,pgrep获取的结果与pidof获得的结果稍有不同pgrep的进程id稍多几个pgrep命令可以使适用subprocess的check_out函数执行

方法三:

获取当前脚本的pid进程

方法四:命令获取+kill PID

说明:

注意:linux的进程号最大是是 32768 (32 位系统)和 2 的 22 次方(400w 左右)(64 位系统)。cut -c 9-15不够,改成awk '{print $2}'

C# WinForm判断程序是否已经运行,使程序只能运行一个实例有很多方法。

第一种,通过进程判断是否启动:

[csharp] view plain copy

static class Program

{

/// <summary>

/// 应用程序的主入口点。

/// </summary>

[STAThread]

static void Main()

{

//获取当前进程的ID

int pId = ProcessGetCurrentProcess()Id;

bool isRun = false;

foreach (Process p in ProcessGetProcessesByName("CallMaster"))

{

//取得当前程序的进程,进行比较

if (CommonGetPath()ToLower() == pMainModuleFileName

以下是我用来查看某个程序是否在运行的函数。你可以参考一下

BOOL IsRunProcess(CString PrName)

{

//获取进程快照,判断要运行的程序是否结束

HANDLE hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

PROCESSENTRY32 processList;

processListdwSize=sizeof(PROCESSENTRY32);

BOOL bResult=Process32First(hSnapshot,&processList);

BOOL bReturn=FALSE;

while(bResult)

{

CString str=processListszExeFile;

if(str==PrName)

{

bReturn=TRUE;

bResult=FALSE;

}

else

{

bResult=Process32Next(hSnapshot,&processList);

}

}

return bReturn;

}

import javautil;

import javaio;

class SysProb

{

//返回当前系统变量的函数,结果放在一个Properties里边,这里只针对win2k以上的,其它系统可以自己改进

public Properties getEnv() throws Exception

{

Properties prop=new Properties();

String OS = SystemgetProperty("osname")toLowerCase();

Process p=null;

if(OSindexOf("windows")>-1)

{

p=RuntimegetRuntime()exec("cmd /c set"); //其它的 *** 作系统可以自行处理, 我这里是win2k

}

BufferedReader br=new BufferedReader(new InputStreamReader(pgetInputStream()));

String line;

while((line=brreadLine())!=null)

{

int i=lineindexOf("=");

if(i>-1)

{

String key=linesubstring(0,i);

String value=linesubstring(i+1);

propsetProperty(key,value);

}

}

return prop;

}

//具体用法

public static void main(String[] args)

{

try

{

SysProb sp=new SysProb();

Properties p=spgetEnv();

Systemoutprintln(pgetProperty("Path")); //注意大小写,如果写成path就不对了

}

catch(Exception e)

{

Systemoutprintln(e);

}

}

}

其他类型:

%COMPUTERNAME% 返回计算机的名称。

%COMSPEC% 返回命令行解释器可执行程序的准确路径。 %WINDIR% 返回 *** 作系统目录的位置。

%OS% 返回 *** 作系统的名称。Windows 2000 将 *** 作系统显示为 Windows_NT。 %PATH% 指定可执行文件的搜索路径。

%USERDOMAIN% 返回包含用户帐户的域的名称。 %USERNAME% 返回当前登录的用户的名称。

1 在工作列上按鼠标右键,选"启动任务管理器"

2 先选进程页签,再到要查看路径的进程上按鼠标右键,选"属性"

3 见下图红框标示处,即为该进程的路径

有个内核态函数,可以得到当前进程ID。名字忘了。但不一定是调用你IRP的那个进程,因为进程有可能被切换。

用户态进程在发送命令时候首先需要open设备,一般调用CreateFile传入设备名打开。然后以后就用这个句柄访问。 内核态只有借助这个句柄值就可以定位一个进程了,这个是推荐的做法。

以上就是关于python 获取进程的pid全部的内容,包括:python 获取进程的pid、C#WINFORM判断程序是否运行,且只能运行一个实例、MFC中查看进程,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/9328278.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存