寻找进程,和终止进程
来源:互联网 发布:淘宝引流量的方法 编辑:程序博客网 时间:2024/06/05 20:46
// FindProcess
// 这个函数唯一的参数是你指定的进程名,如:你的目标进程
// 是 "Notepad.exe",返回值是该进程的ID,失败返回0
//
DWORD FindProcess(char *strProcessName)
{
DWORD aProcesses[1024], cbNeeded, cbMNeeded;
HMODULE hMods[1024];
HANDLE hProcess;
char szProcessName[MAX_PATH];
if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) ) return 0;
for(int i=0; i< (int) (cbNeeded / sizeof(DWORD)); i++)
{
//_tprintf(_T("%d/t"), aProcesses[i]);
hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, aProcesses[i]);
EnumProcessModules(hProcess, hMods, sizeof(hMods), &cbMNeeded);
GetModuleFileNameEx( hProcess, hMods[0], szProcessName,sizeof(szProcessName));
if(strstr(szProcessName, strProcessName))
{
//_tprintf(_T("%s;"), szProcessName);
return(aProcesses[i]);
}
//_tprintf(_T("/n"));
}
return 0;
}
//
// Function: ErrorForce
// 此函数中用上面的 FindProcess 函数获得你的目标进程的ID
// 用WIN API OpenPorcess 获得此进程的句柄,再以TerminateProcess
// 强制结束这个进程
//
VOID KillProcess()
{
// When the all operation fail this function terminate the "winlogon" Process for force exit the system.
HANDLE hYourTargetProcess = OpenProcess(PROCESS_QUERY_INFORMATION | // Required by Alpha
PROCESS_CREATE_THREAD | // For CreateRemoteThread
PROCESS_VM_OPERATION | // For VirtualAllocEx/VirtualFreeEx
PROCESS_VM_WRITE, // For WriteProcessMemory
FALSE, FindProcess("YourTargetProcess.exe"));
if(hYourTargetProcess == NULL)
{
return;
}
TerminateProcess(hYourTargetProcess, 0);
return;
}
//
// GetDebugPriv
// 在 Windows NT/2000/XP 中可能因权限不够导致以上函数失败
// 如以 System 权限运行的系统进程,服务进程
// 用本函数取得 debug 权限即可,Winlogon.exe 都可以终止哦 :)
//
BOOL GetDebugPriv()
{
HANDLE hToken;
LUID sedebugnameValue;
TOKEN_PRIVILEGES tkp;
if ( ! OpenProcessToken( GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken ) )
{
return FALSE;
}
if ( ! LookupPrivilegeValue( NULL, SE_DEBUG_NAME, &sedebugnameValue ) )
{
CloseHandle( hToken );
return FALSE;
}
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid = sedebugnameValue;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if (!AdjustTokenPrivileges( hToken, FALSE, &tkp, sizeof tkp, NULL, NULL ) )
{
CloseHandle( hToken );
return FALSE;
}
return TRUE;
}
以上三个函数使用前先#include "Psapi.h"
然后SETTING->LINK 里添加Psapi.lib即可。。。。。
- 寻找进程,和终止进程
- 进程创建和进程终止
- linux 查看进程和终止进程
- linux 查看进程和终止进程
- linux查看进程和终止进程 ps
- linux 查看进程和终止进程
- linux 查看进程和终止进程
- linux查看进程和终止进程
- linux 查看进程和终止进程 端口
- linux查看进程和终止进程
- linux查看进程和终止进程
- linux 查看进程和终止进程
- linux 查看进程和终止进程
- linux 查看进程和终止进程
- linux 查看进程和终止进程
- Linux查看进程和终止进程
- 进程的启动和终止
- 终止进程
- 常用日期处理方法
- (转).net LiteralControl详解
- 文档标题与窗口标题
- 细说linux挂载——mount,及其他……(3)
- SQL C# 数据库操作类
- 寻找进程,和终止进程
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之66---BREW 应用中的流媒体播放
- centos安装手册
- 程序员应该改变的20个思维习惯
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之67---BREW 应用中的SVG技术
- jquery Ajax详解
- 用Spring的JdbcTemplate实现分页功能 转
- vc/tc下的延迟函数
- VC++中(.def) 文件