windows API 封装

来源:互联网 发布:android aop 编程 编辑:程序博客网 时间:2024/05/21 18:47

void list_all_the_process()//打印进程快照
{
HANDLE hProcessSnap = CreateToolhelp32Snapshot(
TH32CS_SNAPPROCESS,//创建进程快照
0);//当前进程
if(hProcessSnap != INVALID_HANDLE_VALUE)
{
PROCESSENTRY32 processEntry = {sizeof(processEntry)};
BOOL bRet = Process32First(hProcessSnap,&processEntry);
while(bRet)
{ printf("ProcessID:%d %s\n",processEntry.th32ProcessID,processEntry.szExeFile);
bRet = Process32Next(hProcessSnap,&processEntry);
}
}
CloseHandle(hProcessSnap);
}
void get_process_privilege()//提取权限
{
HANDLE  hToken;
if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken))
{
return;
}
TOKEN_PRIVILEGES tkp;
LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME/*此处为要提取权限的名称,可以去查找,这只是开关机的权限*/,&tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;


AdjustTokenPrivileges(hToken,FALSE,/*激活所有权限*/&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);
if(GetLastError()!= ERROR_SUCCESS)
{
return;
}
printf("提取系统权限成功!");


}
0 0
原创粉丝点击