方法一:
使用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中查看进程,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)