
HANDLE GetProcessHandle(int nID)
{
return OpenProcess(PROCESS_ALL_ACCESS, FALSE, nID);
}
HANDLE GetProcessHandle(LPCTSTR pName)
{
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (INVALID_HANDLE_VALUE == hSnapshot) {
return NULL;
}
PROCESSENTRY32 pe = { sizeof(pe) };
BOOL fOk;
for (fOk = Process32First(hSnapshot, &pe); fOk; fOk = Process32Next(hSnapshot, &pe)) {
if (!_tcscmp(peszExeFile, pName)) {
CloseHandle(hSnapshot);
return GetProcessHandle(peth32ProcessID);
}
}
return NULL;
}
关闭进程
int killpro(CString a)//CString a里面就是进程名字。
{
PROCESSENTRY32 pe32;
pe32dwSize =sizeof(pe32);
HANDLE hpro=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hpro==INVALID_HANDLE_VALUE)
{
return 0;
}
BOOL nowrun=Process32First(hpro,&pe32);
while(nowrun)
{
if(pe32szExeFile ==a)
{
DWORD proid=pe32th32ProcessID;
HANDLE hprocess=::OpenProcess(PROCESS_ALL_ACCESS,FALSE,proid);
if(hprocess!=NULL)
{
::TerminateProcess(hprocess,0);
::CloseHandle(hprocess);
}
}
nowrun=::Process32Next(hpro,&pe32);
}
}
非常高兴为您解答!
如果是10个进程,K=10,如果是最高的三个,K=3
说明:ps -aux中(a指代all——所有的进程,u指代userid——执行该进程的用户id,x指代显示所有程序,不以终端机来区分)
ps -aux的输出格式如下:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 00 00 19352 1308 Ss Jul29 0:00 /sbin/init
root 2 00 00 0 0 S Jul29 0:00 [kthreadd]
root 3 00 00 0 0 S Jul29 0:11 [migration/0]
sort -k4nr中(k代表从第几个位置开始,后面的数字4即是其开始位置,结束位置如果没有,则默认到最后;n指代numberic sort,根据其数值排序;r指代reverse,这里是指反向比较结果,输出时默认从小到大,反向后从大到小。)。本例中,可以看到%MEM在第4个位置,根据%MEM的数值进行由大到小的排序。
head -K(K指代行数,即输出前几位的结果)
|为管道符号,将查询出的结果导到下面的命令中进行下一步的 *** 作。
方法2:top (然后按下M,注意大写)
二、可以使用下面命令查使用CPU最多的K个进程
方法1:
ps -aux | sort -k3nr | head -K
方法2:top (然后按下P,注意大写)
用命令的方式也是很方便将结果存到变量里呀,用一个复制或者重定向就行了。
c代码:
#include <pthreadh>
#include <stdioh>
void print_xs (void unused)
{
while (1)
fputc (‘x’, stderr);
return NULL;
}
/ The main program /
int main ()
{
int i=0;
while(1){
pthread_t thread_id;
if( NULL != pthread_create (&thread_id, NULL, &print_xs, NULL)){
break;
}
i++;
}
printf("创建线程个数:%d\n",i);
return 0;
}
一般常用的命令就是ps -def 排列顺序是UDI PID 或 ps -aux 排列顺序是USER PID 以上两个命令可以使用| grep(过滤)配置使用 top命令是一个动态显示所有进程的命令
不管是js,还是falsh,flex都是在浏览器端运行的代码,肯定访问本地电脑的权限受安全限制,所以不赞成通过这个方案来解决。
可以通过js调用服务端程序比如java servlet来得到,servlet获取服务端的进程信息相比比较简单了,java可以直接调用bat或shell来得到返回的信息:
windows下可以调用tasklist得到所有的进程信息
以上就是关于C++ 如何获得当前电脑里运行的所有进程ID并关闭指定的进程全部的内容,包括:C++ 如何获得当前电脑里运行的所有进程ID并关闭指定的进程、Linux 如何查看当前占用CPU或内存最多的K个进程、Linux下 c/c++ 如何获取当前的进程信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)