通过进程快照的方式查找指定程序

 1 BOOL FindProcessByName(LPCTSTR szFileName, PROCESSENTRY32& pe)
 2 {
 3     HANDLE hProcess;
 4     PROCESSENTRY32 lpe =
 5     {
 6         sizeof(PROCESSENTRY32)
 7     };
 8
 9     CString strFileName(szFileName);
10     strFileName.MakeLower();
11
12     hProcess = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
13     if (hProcess == INVALID_HANDLE_VALUE)
14     {
15         return FALSE;
16     }
17
18     BOOL isExist = ::Process32First(hProcess, &lpe);
19     BOOL isRuning = FALSE;
20     CString strName;
21     while(isExist)
22     {
23         strName = lpe.szExeFile;
24         strName.MakeLower();
25         if (strName == strFileName)
26         {
27             isRuning = TRUE;
28             break;
29         }
30
31         isExist = ::Process32Next(hProcess,&lpe);
32     }
33
34     if (isRuning)
35     {
36         memcpy(&pe, &lpe, sizeof(PROCESSENTRY32));
37     }
38
39     CloseHandle(hProcess);
40     return isRuning;
41 }

需要头文件 #include <TlHelp32.h>

时间: 2024-10-16 09:33:26

通过进程快照的方式查找指定程序的相关文章

开机延迟启动指定程序的VBS脚本

我有一个程序,希望它开机自动启动且最小化运行,但这个程序没有提供设置开机启动的功能.如果把它的快捷方式加入到“启动”文件夹中,对开机速度会有比较大的影响,且启动后不会自行最小化. 为达到这个目的,我想编写一小段vbs脚本,开机时运行脚本,由脚本来实现延时一段时间后以最小化窗口的方式启动指定程序的功能.查了一下资料,发现只需使用WScript.Shell.Run和WScript.Sleep即可实现. WScript.Shell是WSH提供的一个工具对象,可用来与特殊文件夹交互,如Desktop和M

c/c++编译时,指定程序运行时查找的动态链接库路径

http://blog.csdn.net/tsxw24/article/details/10220735 c/c++编译时,指定程序运行时查找的动态链接库路径 分类: c/c++ linux 2013-08-23 14:04 1117人阅读 评论(0) 收藏 举报 [plain] view plaincopy $ g++ -Wl,-rpath,/usr/local/lib/ -oevh libevent_http.cpp -levent -Wl,-rpath,  用于指定程序运行时查找动态链接库

程序员面试题目总结--数组(三)【旋转数组的最小数字、旋转数组中查找指定数、两个排序数组所有元素中间值、数组中重复次数最多的数、数组中出现次数超过一半的数】

转!http://blog.csdn.net/dabusideqiang/article/details/38271661 11.求旋转数组的最小数字 题目:输入一个排好序的数组的一个旋转,输出旋转数组的最小元素. 分析:数组的旋转:把一个数组最开始的若干个元素搬到数组的末尾.例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1.这道题最直观的解法并不难.从头到尾遍历数组一次,就能找出最小的元素,时间复杂度显然是O(N).但这个思路没有利用输入数组

根据进程ID查找运行程序目录

查看进程ID [root@hadoop03 openresty]# netstat -nltp 进入/proc目录查找相应进程ID目录并进入此目录 [root@hadoop03 usr]# cd /proc/17569/ 在进程ID目录中查找exe连接,后面就是运行进程ID对应文件的绝对路径 [root@hadoop03 17569]# ll | grep exe ? ? ? ? ? ? 原文地址:https://www.cnblogs.com/starzy/p/10661297.html

Win32进程创建、进程快照、进程终止用例

进程创建: 1 #include <windows.h> 2 #include <stdio.h> 3 4 int main() 5 { 6 // 创建打开系统自带记事本进程 7 STARTUPINFO si1 = {sizeof(si1)}; 8 PROCESS_INFORMATION pi1; 9 char * szCmdLine1 = "notepad"; 10 if(::CreateProcess(NULL, szCmdLine1, NULL, NULL

笔试算法题(09):查找指定和值的两个数 &amp; 构造BST镜像树

出题:输入一个已经升序排序的数组和一个数字:要求在数组中查找两个数,这两个数的和正好等于输入的那个数字,输出任意一对数字就可以,要求时间复杂度是O(n): 分析:对于升序排序的数组{-i-j-k-m--},只有可能是i+m=j+k(j和k可能是同一个数),所以可以从两边往中间收缩而忽视其他交叉相加的情况: 解题: 1 void FindSumFactor(int *array, int length, int sum) { 2 int left=0, right=length-1; 3 whil

Rsync以守护进程(socket)的方式传输数据

Rsync以守护进程(socket)的方式传输数据 Rsync服务部署 一.以守护进程(socket)的方式传输数据(重点) 部署环境: 分别用uname命令查看各系统相关信息 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [root@A-Server58 ~]# uname -r 2.6.18-308.el5 [root@A-Server58 ~]# uname -s Linux [root@A-Server58 ~]# uname -o GN

以守护进程(socket)的方式传输数据(重点)

以守护进程(socket)的方式传输数据(重点) 部署环境: 分别用uname命令查看各系统相关信息 [[email protected]~]# uname -r 6.18-308.el5 [[email protected]~]# uname -s Linux [[email protected]~]# uname -o GNU/Linux [[email protected]~]# uname -i x86_64 [[email protected]~]# uname -n A-Server

Linux 进程间通讯方式 pipe()函数 (转载)

转自:http://blog.csdn.net/ta893115871/article/details/7478779 Linux 进程间通讯方式有以下几种: 1->管道(pipe)和有名管道(fifo). 2->消息队列 3->共享内存 4->信号量 5->信号(signal) 6->套接字(sicket) 在这里我们看一下第一种====管道(pipe).有名管道(fifo)见其它文章. eg :我们以前学的命令 cat  file | grep  "abc