
HANDLE hSnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0 );
PROCESSENTRY32 procentry=sizeof(PROCESSENTRY32);
BOOL bFlag=Process32First( hSnapShot, &procentry ) ;
while( bFlag )
{
if(stricmp(procentryszExeFile, "你的程序名 ")==0)
processid=procentryth32ProcessID; //找到
bFlag=Process32Next(hSnapShot,&procentry);
}
注意一个程序可能有几个实例同时运行,所以可能同时找到几个ID。
在Android中取得当前进程名
说明:上面代码关键的两个地方解释,也就是取得当前进程名
androidosProcessmyPid()) //获取PID,目前获取自己的也只有该API
ActivityManagerRunningAppProcessInfo类
说明: 封装了正在运行的进程信息
常用字段:
int pid 进程ID
int uid 进程所在的用户ID
String processName 进程名,默认是包名或者由Android:process=””属性指定
String [ ] pkgList 运行在该进程下的所有应用程序包名
package test;
import javaioBufferedReader;
import javaioFile;
import javaioFileWriter;
import javaioIOException;
import javaioInputStream;
import javaioInputStreamReader;
import javaioPrintWriter;
public class GetPid {
private static final String PNAME = "QQ";
public static void main(String[] args)
throws IOException {
Systemoutprintln("包含关键字 "+PNAME+" 的进程有:");
Systemoutprintln();
String path = SystemgetProperty("userdir");
final File createFileName = new File(path + "\\mytempscriptvbe");
if(createFileNameexists()createFileNamedelete():createFileNamecreateNewFile()){}
final PrintWriter pw = new PrintWriter(new FileWriter(createFileName,
true), true);
pwprintln("for each ps in getobject(\"winmgmts:\\\\\\root\\cimv2:win32_process\")instances_");
pwprintln("wscriptecho pshandle&vbtab&psname");
pwprintln("next");
pwclose();
final InputStream ii = RuntimegetRuntime()exec(
"cscript " + path + "\\mytempscriptvbe")getInputStream();
final InputStreamReader ir = new InputStreamReader(ii);
final BufferedReader br = new BufferedReader(ir);
String str = null;
String[] ss = null;
while ((str = brreadLine()) != null) {
if (strindexOf(PNAME)>0&&strendsWith("exe")) {
ss = strsplit("\\s");
for(int i=0;i<sslength;i+=2){
Systemoutprintln("");
Systemoutprintln("进程名:"+ss[i+1]+"\n进程ID:"+ss[i]);
}
}
}
Systemoutprintln("");
irclose();
iiclose();
brclose();
}
}
运行结果如下
包含关键字 QQ 的进程有:
进程名:QQexe
进程ID:3956
第一步,进入 *** 作系统桌面;
第二步,右键任务栏,点选启动任务管理器;
第三步,d出任务管理器窗口;
第四步,->选择列;
第五步,d出选择进程页列的窗口;
第六步,点选图示会话ID的复选框,点击确定;
第七步,回到刚才的任务管理器,可以看到会话ID的一列数据。
用法:开个cmdexe窗口,输入:ntsd -c q -p PID
把最后那个PID,改成你要终止的进程的ID。如果你不知道进程的ID,任务管理器->进程选项卡->查看->选择列->勾上"PID(进程标识符)",然后就能看见了。
答2:xp下还有两个好东东tasklist和tskill。tasklist能列出所有的进程,和相应的信息。tskill能查杀进程,语法很简单:tskill 程序名!!
比如杀死进程 QQ
taskkill /f /fi "IMAGENAME eq QQexe"
1、用taskill命令
①taskkill /im
进程名称
示例:用taskkill /im
VStartexe命令关闭音速启动,VStartexe就是音速启动的进程名称,下面看 *** 作,执行了三次,成功关闭了音速启动,再看下面的方法
②taskkill /pid[进程码]
-t(结束该进程)
-f(强制结束该进程以及所有子进程)
注:有两种方法查进程的PID码:
①在命令行下用 tasklist 命令查出进程的PID号码,就是这些
以上就是关于c++中怎样根据进程名得到进程pid全部的内容,包括:c++中怎样根据进程名得到进程pid、如何获取当前应用app所在的进程id和进程名称、java 获取指定的进程id等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)