请问为什么编程获取的部分进程的路径信息没有,而其他大部分都有啊??? 我用了相关的函数获取进程,但结果里有小部分的程序进程的路径信息没有,请问如何解决啊,我看那几个进程好像不是应用程序进程。可能是函数权限不够啊,请指教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你采用什么API实现的,又是什么进程没有路经? HANDLE WINAPI CreateToolhelp32Snapshot(DWORD dwFlags,DWORD th32ProcessID); OpenProcess();GetModuleFileNameEx();GetModuleFilePathEx();这些都在msdn中找的。比如:alg.ex lsass.exe smss.exe它们的路径都获得不了,而普通应用程序都可获得 权限提升没?这些系统进程要提升到Debug权限才可以的.而且提升到Debug权限,你必须运行在管理员权限下.(值得一说的是smss不是win32程序).列举模块前先调用一下:EnableDebugPrivilege(TRUE)代码如下..BOOL EnableDebugPrivilege(BOOL bEnable) {// 附给本进程特权,以便访问系统进程BOOL bOk = FALSE; HANDLE hToken;// 打开一个进程的访问令牌if(::OpenProcessToken(::GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)) {// 取得特权名称为“SetDebugPrivilege”的LUIDLUID uID;::LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &uID);// 调整特权级别TOKEN_PRIVILEGES tp;tp.PrivilegeCount = 1;tp.Privileges[0].Luid = uID;tp.Privileges[0].Attributes = bEnable ? SE_PRIVILEGE_ENABLED : 0;::AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(tp), NULL, NULL);bOk = (::GetLastError() == ERROR_SUCCESS);// 关闭访问令牌句柄::CloseHandle(hToken);}return bOk;} 关于Hook DrawText 如何打印在对话框上面的所有控件---解决了立马送分 MFC类CBrush,CPen,CFont,CBitmap释放系统资源的问题 调用COM的接口函数出现问题 问一个关于LSP的问题 求一个派生CWnd的菜单类 常规DLL编码规范问题 关于FTP的问题 哪位大牛帮下忙,数学问题! VC写文件时碰到的一个经典有趣的现象 CListCtrl最多能显示多少列,为什么超过一定列数,标题显示不出来啊????? 做播放器插件如何做.
这些都在msdn中找的。比如:alg.ex
lsass.exe
smss.exe
它们的路径都获得不了,而普通应用程序都可获得
列举模块前先调用一下:EnableDebugPrivilege(TRUE)
代码如下..
BOOL EnableDebugPrivilege(BOOL bEnable)
{
// 附给本进程特权,以便访问系统进程
BOOL bOk = FALSE;
HANDLE hToken;// 打开一个进程的访问令牌
if(::OpenProcessToken(::GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken))
{
// 取得特权名称为“SetDebugPrivilege”的LUID
LUID uID;
::LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &uID);// 调整特权级别
TOKEN_PRIVILEGES tp;
tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = uID;
tp.Privileges[0].Attributes = bEnable ? SE_PRIVILEGE_ENABLED : 0;
::AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(tp), NULL, NULL);
bOk = (::GetLastError() == ERROR_SUCCESS);// 关闭访问令牌句柄
::CloseHandle(hToken);
}
return bOk;
}