none
修改进程权限 RRS feed

  • 问题

  • 	DWORD aProcesses[1024],cbNeeded,cProcess;
    	unsigned int unPid = 0;
    	BOOL bAdjust = FALSE;
    	HANDLE hToken;
    	TOKEN_PRIVILEGES tkp;
    	OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken);
    	LookupPrivilegeValue(NULL,SE_SECURITY_NAME,&tkp.Privileges[0].Luid);
    	tkp.PrivilegeCount = 1;
    	tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    	bAdjust = AdjustTokenPrivileges(hToken,FALSE,&tkp,sizeof(tkp),0,0);
    
    	if(!EnumProcesses(aProcesses,sizeof(aProcesses),&cbNeeded))
    	 return 0;
    
    	cProcess = cbNeeded/sizeof(DWORD);
    
    	CString sTemp = _T("");
    	for (unPid = 0; unPid < cProcess; unPid++)
    	{
    	 TCHAR szProcessName[MAX_PATH] = TEXT("<unKnown>");
    
    		///// 获取进程句柄 /////
    	HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,ALSE, aProcesses[unPid]);
          if(NULL != hProcess){
    	HMODULE hModule;
    	DWORD cbNeededIn;
    	if(EnumProcessModules(hProcess,&hModule,sizeof(hModule),&cbNeededIn)){
    	GetModuleBaseName(hProcess,hModule,szProcessName,sizeof(szProcessName)/sizeof(TCHAR));
    	sTemp += szProcessName;
    	sTemp.AppendFormat(_T("\r\n"));
    	f(!_tccmp(szProcessName,name)){  // name 为cstring类型
    	  return aProcesses[unPid];
    	}
    	}
            }
    	CloseHandle(hProcess);
    	}
    	AfxMessageBox(sTemp);
    执行上面的代码,在AfxMessageBox的时候输出的信息中还是有很多的系统进程没能输出出来,不知道是什么原因,请您指点。
    2010年12月29日 7:55

答案

  • 有错误返回么,如果有用GetLastError看看是什么错误

    我记得很早以前我也遇到过类似问题,好好看看MSDN关于这几个API的用法,可能是参数不对 

     


    0xBAADF00D
    2010年12月29日 14:20
    版主

全部回复

  • 有错误返回么,如果有用GetLastError看看是什么错误

    我记得很早以前我也遇到过类似问题,好好看看MSDN关于这几个API的用法,可能是参数不对 

     


    0xBAADF00D
    2010年12月29日 14:20
    版主
  • 有错误返回么,如果有用GetLastError看看是什么错误

    我记得很早以前我也遇到过类似问题,好好看看MSDN关于这几个API的用法,可能是参数不对 

     


    0xBAADF00D
    哦。我觉得也应该是参数的问题。
    2010年12月30日 1:36
  • 你是什么系统?

    你的程序有管理员权限么

    2010年12月30日 1:45
  • 您好,

         飘零雪,欢迎您再微软中文论坛发帖,请问您的问题解决了吗?

    如果解决了,请把有用的回复标记为答案。

     

    谢谢,

    Lucy


    Lucy Liu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年1月5日 9:49
    版主