VC判断指定程序是否运行,杀掉指定进程
来源:互联网 发布:云计算的四种部署模式 编辑:程序博客网 时间:2024/05/17 09:20
#include <TlHelp32.h>
/*
名称: IsRunning
描述: 判断某进程是否存在
参数:
lpszProcessFileName[in]:Pointer to a null-terminated string specifying the name of the executable file for the process
返回:
If the process exists, the return value is an open handle to the specified process.
If the process doesn't exist, the return value is NULL.
约束: 无
其他: 无
*/
HANDLE IsRunning(LPCTSTR lpszProcessFileName, LPPROCESSENTRY32 pe);
HANDLE IsRunning(LPCTSTR lpszProcessFileName, LPPROCESSENTRY32 pe)
{
BOOL bLoop = TRUE;
HANDLE h = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
bLoop = Process32First(h, pe);
while (bLoop)
{
bLoop = Process32Next(h, pe);
TCHAR* ptszExefile = pe->szExeFile;
if (lstrcmp(ptszExefile,lpszProcessFileName) == 0)
{
return OpenProcess(PROCESS_TERMINATE, FALSE, pe->th32ProcessID);
}
}
return NULL;
}
/*
名称: IsProcessRun
描述: 判断某进程是否存在
参数:
lpszName[in]:Pointer to a null-terminated string specifying the name of the executable file for the process
返回:
If the process exists, the return value is an open handle to the specified process.
If the process doesn't exist, the return value is NULL.
约束: 无
其他: 无
*/
BOOL IsProcessRun(LPCTSTR lpszName);
BOOL IsProcessRun(LPCTSTR lpszName)
{
BOOL bLoop = FALSE;
PROCESSENTRY32 pe;
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
if (hProcessSnap == INVALID_HANDLE_VALUE)
{
return FALSE;
}
pe.dwSize = sizeof(PROCESSENTRY32);
bLoop = Process32First(hProcessSnap, &pe);
if (!bLoop)
{
CloseHandle(hProcessSnap);
return FALSE;
}
while (bLoop)
{
bLoop = Process32Next(hProcessSnap, &pe);
if (lstrcmp(pe.szExeFile, lpszName) == 0)
{
CloseHandle(hProcessSnap);
return TRUE;
}
}
CloseHandle(hProcessSnap);
return FALSE;
}
/*
名称:KillProcess
描述:结束调所有名称为lpszProcessName的进程
参数:
lpszProcessName[in]:进程名称
返回:
指定的所有进程已结束,返回TRUE;否则返回FALSE
约束:无
其他:无
*/
BOOL KillProcess(LPCTSTR lpszProcessName);
BOOL KillProcess(LPCTSTR lpszProcessName)
{
BOOL bLoop = FALSE;
BOOL bRes = TRUE;
PROCESSENTRY32 pe;
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
if (hProcessSnap == INVALID_HANDLE_VALUE)
{
return FALSE;
}
pe.dwSize = sizeof(PROCESSENTRY32);
bLoop = Process32First(hProcessSnap, &pe);
if (!bLoop)
{
CloseHandle(hProcessSnap);
return FALSE;
}
while (bLoop)
{
bLoop = Process32Next(hProcessSnap, &pe);
if (lstrcmp(pe.szExeFile, lpszProcessName) == 0)
{
HANDLE hPec = OpenProcess(PROCESS_TERMINATE, FALSE, pe.th32ProcessID);
if (hPec)
{
if (!TerminateProcess(hPec, 0))
{
bRes = FALSE;
}
}
}
}
CloseHandle(hProcessSnap);
return bRes;
}
/*
名称: IsRunning
描述: 判断某进程是否存在
参数:
lpszProcessFileName[in]:Pointer to a null-terminated string specifying the name of the executable file for the process
返回:
If the process exists, the return value is an open handle to the specified process.
If the process doesn't exist, the return value is NULL.
约束: 无
其他: 无
*/
HANDLE IsRunning(LPCTSTR lpszProcessFileName, LPPROCESSENTRY32 pe);
HANDLE IsRunning(LPCTSTR lpszProcessFileName, LPPROCESSENTRY32 pe)
{
BOOL bLoop = TRUE;
HANDLE h = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
bLoop = Process32First(h, pe);
while (bLoop)
{
bLoop = Process32Next(h, pe);
TCHAR* ptszExefile = pe->szExeFile;
if (lstrcmp(ptszExefile,lpszProcessFileName) == 0)
{
return OpenProcess(PROCESS_TERMINATE, FALSE, pe->th32ProcessID);
}
}
return NULL;
}
/*
名称: IsProcessRun
描述: 判断某进程是否存在
参数:
lpszName[in]:Pointer to a null-terminated string specifying the name of the executable file for the process
返回:
If the process exists, the return value is an open handle to the specified process.
If the process doesn't exist, the return value is NULL.
约束: 无
其他: 无
*/
BOOL IsProcessRun(LPCTSTR lpszName);
BOOL IsProcessRun(LPCTSTR lpszName)
{
BOOL bLoop = FALSE;
PROCESSENTRY32 pe;
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
if (hProcessSnap == INVALID_HANDLE_VALUE)
{
return FALSE;
}
pe.dwSize = sizeof(PROCESSENTRY32);
bLoop = Process32First(hProcessSnap, &pe);
if (!bLoop)
{
CloseHandle(hProcessSnap);
return FALSE;
}
while (bLoop)
{
bLoop = Process32Next(hProcessSnap, &pe);
if (lstrcmp(pe.szExeFile, lpszName) == 0)
{
CloseHandle(hProcessSnap);
return TRUE;
}
}
CloseHandle(hProcessSnap);
return FALSE;
}
/*
名称:KillProcess
描述:结束调所有名称为lpszProcessName的进程
参数:
lpszProcessName[in]:进程名称
返回:
指定的所有进程已结束,返回TRUE;否则返回FALSE
约束:无
其他:无
*/
BOOL KillProcess(LPCTSTR lpszProcessName);
BOOL KillProcess(LPCTSTR lpszProcessName)
{
BOOL bLoop = FALSE;
BOOL bRes = TRUE;
PROCESSENTRY32 pe;
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
if (hProcessSnap == INVALID_HANDLE_VALUE)
{
return FALSE;
}
pe.dwSize = sizeof(PROCESSENTRY32);
bLoop = Process32First(hProcessSnap, &pe);
if (!bLoop)
{
CloseHandle(hProcessSnap);
return FALSE;
}
while (bLoop)
{
bLoop = Process32Next(hProcessSnap, &pe);
if (lstrcmp(pe.szExeFile, lpszProcessName) == 0)
{
HANDLE hPec = OpenProcess(PROCESS_TERMINATE, FALSE, pe.th32ProcessID);
if (hPec)
{
if (!TerminateProcess(hPec, 0))
{
bRes = FALSE;
}
}
}
}
CloseHandle(hProcessSnap);
return bRes;
}
0 0
- VC判断指定程序是否运行,杀掉指定进程
- VC 判断指定进程是否已经启动
- VC判断指定进程是否存在IsExistProcess
- VC判断指定进程是否存在IsExistProcess
- vc判断指定进程或程序名是否存在和进程为64或者32位
- 判断指定的进程或程序是否存在方法小结(vc等)
- 杀掉指定进程
- VC从系统进程中查找并杀掉指定进程
- 判断指定的进程或程序是否存在方法
- 判断指定的进程或程序是否存在方法
- 判断指定的进程或程序是否存在方法
- 根据指定端口杀掉进程
- 判断是否有指定的进程名
- appRunning() 判断指定应用是否正在运行
- 检测指定进程是否在运行
- 如何杀掉指定进程的进程号
- 获取指定程序是否在运行
- 小TIPS:杀掉指定名称的进程
- Unity3d NGUI的使用(七)(UIPopup List&使用UIPopup本地化项目)
- selenium技巧——通过js来控制滚动条
- hiberante 注解映射问题
- linux下的expect的简单用法及举例
- Unity3d NGUI的使用(八)(NGUI 2DUI与3DObjects共存)
- VC判断指定程序是否运行,杀掉指定进程
- 怎样找回误删除的文件
- iOS math.h 常用数学函数
- Unity3d NGUI的使用(九)(UIScrollView制作滑动列表)
- 未知高度多行文本垂直居中
- jsonArray 的遍历
- Unity3d NGUI的使用(十)(UIPlay Animation制作隐藏显示菜单)
- 毕业10年感悟
- grep 命令