扫描系统的所有进程

 #include <stdio.h>
#include <windows.h>
#include <tlhelp32.h> int scan()
{
HANDLE hprocessShap = NULL;
PROCESSENTRY32 pe32 = {};
hprocessShap = CreateToolhelp32Snapshot(TH32CS_SNAPALL, ); if(hprocessShap == INVALID_HANDLE_VALUE)
{
printf("\nCreateToolhelp32Snapshot() failed:%d", GetLastError());
return ;
} pe32.dwSize = sizeof(PROCESSENTRY32); if(Process32First(hprocessShap, &pe32))
{
do
{
wprintf(pe32.szExeFile);
printf("\n");
}
while (Process32Next(hprocessShap, &pe32));
}
else
{
printf("\nProcess32First() failed:%d", GetLastError());
}
CloseHandle(hprocessShap);
return ;
} int main(int argc, char *argv)
{
scan();
return ;
}

获取某进程的PID

有时候在对系统某个进程进行操作时,我们需要获取程序的PID作为参数。其中一个方法当然是在任务管理器的详细信息里寻找,另外一个方法就是通过代码获取到进程的PID直接利用

 int getpid(wchar_t *name)
{
HANDLE hprocessShap = NULL;
//存放快照进程信息的结构体
PROCESSENTRY32 pe32 = {};
//对系统的进程建立一个快照进行扫描
hprocessShap = CreateToolhelp32Snapshot(TH32CS_SNAPALL, );
if(hprocessShap == INVALID_HANDLE_VALUE)
{
printf("\nCreateToolhelp32Snapshot() failed:%d", GetLastError());
return ;
}
//设置结构体的大小
pe32.dwSize = sizeof(PROCESSENTRY32);
//Process32First获得第一个进程的句柄
if(Process32First(hprocessShap, &pe32))
{
//匹配输入的进程名
do
{
if(!wcscmp(name, pe32.szExeFile))
{
return (int)pe32.th32ProcessID;
}
}
while (Process32Next(hprocessShap, &pe32));
}
else
{
printf("\nProcess32First() failed:%d", GetLastError());
}
CloseHandle(hprocessShap);
return ;
}

扫描系统进程和获取某进程的PID的更多相关文章

  1. 获取当前进程的pid

    获取当前进程的pid import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; ...

  2. 在Shell脚本中获取指定进程的PID

    注意这条命令用反引号(Tab上面的那个键)括起来,作用类似于${ } processId = ` ps -ef | grep fms.jar | grep -v grep | awk '{print ...

  3. nodejs的process模块如何获取其他进程的pid

    var cmd=process.platform=='win32'?'tasklist':'ps aux'; var exec = require('child_process').exec; var ...

  4. Linux中的程序和进程,PID和PPID

    环境:Vmware Workstation:CentOS-6.4-x86_64 程序和进程: 1.程序:程序是静止的,程序就是磁盘上的一个文件. 2.进程:进程是一个正在执行的程序的实例. 3.进程是 ...

  5. python 使用标准库根据进程名获取进程的pid

    有时候需要获取进程的pid,但又无法使用第三方库的时候. 方法适用linux平台. 方法1 使用subprocess 的check_output函数执行pidof命令 from subprocess ...

  6. 【linux】linux下准确查询正在tomcat下运行的java进程。准确获取正在运行的java进程的PID

    准确获取定位到tomcat下正在运行的java进程的PID命令: ps -ef|grep java | grep catalina | awk '{print $2}' 准确定位到tomcat下正在运 ...

  7. linux获取精准进程PID之pgrep命令

    pgrep 是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行.在服务器的配置和管理中,这个工具常被应用,简单明了. 用法: #pgrep [选项] [程序名] pgrep [-flvx ...

  8. linux -- 进程的查看、进程id的获取、进程的杀死

    进程查看 ps ax : 显示当前系统进程的列表 ps aux : 显示当前系统进程详细列表以及进程用户 ps ax|less : 如果输出过长,可能添加管道命令 less查看具体进程, 如:ps a ...

  9. windows下使用C#获取特定进程网络流量

    最近老板接了一个中船重工的项目,需要做一个有关海军软件系统的组件评估项目,项目中有一个子项目需要获取特定进程的各种系统参数,项目使用.NET平台.在获取特定进程各种系统参数时,其它诸如进程ID,进程名 ...

随机推荐

  1. React进阶之高阶组件

    前言 本文代码浅显易懂,思想深入实用.此属于react进阶用法,如果你还不了解react,建议从文档开始看起. 我们都知道高阶函数是什么, 高阶组件其实是差不多的用法,只不过传入的参数变成了react ...

  2. Android的Databinding-资源绑定

    databinding还能对布局的资源文件进行绑定. <data class="ResourceBinding"> <variable name="la ...

  3. 对指针和引用的理解(c++)

    1.指针 typedef说明一种新类型名,来代替已有类型名. a.案例:typedef char* String_t和#define String_d char *这两句在使用上的区别? 1)前者声明 ...

  4. NLP第9章 NLP 中用到的机器学习算法——基于统计学(文本分类和文本聚类)

  5. self.location.href

    self.location.href;//当前页面打开URL页面 window.location.href;//当前页面打开URL页面 this.location.href;//当前页面打开URL页面 ...

  6. Visual Studio 2017 扩展

    Visual Studio 2017 扩展 Visual Studio 2017 15.4.4 : 目前是最新的版本号,所有的工具&插件都支持这个版本号.所以请对号入座. ReSharper  ...

  7. ubuntu16.04 npm安装

    $ sudo apt-get install python-software-properties $ curl -sL https://deb.nodesource.com/setup_6.x | ...

  8. SQL DML 数据操纵语句

    前言 DML(Data Manipulation Language)语句:数据操纵语句,用于添加.删除.更新和查询数据库记录,并检查数据完整性.常用的语句关键字主要包括 insert.delete.u ...

  9. Renascence架构介绍——文件夹

    这一系列文章是为个人项目作一个介绍.有兴趣的朋友能够关注一下. https://github.com/jxt1234/Renascence 先写个文件夹.以后按文件夹更新 1.自己主动编程体系设想 2 ...

  10. go 资料

    channel 底层原理 https://www.youtube.com/watch?v=KBZlN0izeiY go concurrency https://www.youtube.com/watc ...