扫描系统的所有进程

 #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. Java身份证归属地目录树

    数据库结构: web管理界面: 目录树: 视频: 应用场景:

  2. 12、Java函数接口

    注:新版本接口中Iterable已换成Iterator    

  3. OpenNI1.5获取华硕XtionProLive深度图和彩色图并用OpenCV显示

    华硕XtionPro类似Kinect,都是体感摄像机,可捕捉深度图和彩色图. 具体參数见:http://www.asus.com.cn/Multimedia/Xtion_PRO_LIVE/specif ...

  4. Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test java.lang.IllegalStateException

    不能找到对应的带有@SpringBootConfiguration 的类,你需要将它放在包的最顶层.

  5. 设计模式之二十一:中介者模式(Mediator)

    中介者模式:定义了一个对象.用来封装一系列对象的交互.中介者模式通过使对象之间不必显式引用减少了对象之间的耦合,而且同意你独立改变它们之间的交互. 中介者模式就是将对象之间的交互封装在了一个独立的对象 ...

  6. 关于bazel使用笔记

    当我们在build一个文件时,需要另外的放置cache时,我们需要: bazel --output_user_root=/path/to/directory build //foo:bar  

  7. C#做单元测试,如何查看输出的调试信息?

  8. TensorFlow+Keras 02 深度学习的原理

    1 神经传递的原理 人类的神经元传递及其作用: 这里有几个关键概念: 树突 - 接受信息 轴突 - 输出信息 突触 - 传递信息 将其延伸到神经元中,示意图如下: 将上图整理成数学公式,则有 y = ...

  9. Unity应用架构设计(2)——使用中介者模式解耦ViewModel之间通信

    当你开发一个客户端应用程序的时候,往往一个单页会包含很多子模块,在不同的平台下,这些子模块又被叫成子View(视图),或者子Component(组件).越是复杂的页面,被切割出来的子模块就越多,子模块 ...

  10. 【转载】springboot四 全局异常处理

    http://tengj.top/2018/05/16/springboot13/ https://www.jb51.net/article/110533.htm