1

我正在尝试获取在用户(非管理员)会话上运行的所有进程的列表。在使用非管理员用户在 Windows 2008 SP2 中进行相同测试时,我发现下面的代码除了在管理员用户中运行的进程之外,还获取了属于该用户的所有进程。

有没有办法获取仅在该用户(非管理员)上运行的进程列表?

请在下面找到代码片段:

DWORD procID = 0;
FILE *fp;

PROCESSENTRY32 processInfo;
processInfo.dwSize = sizeof(processInfo);


HANDLE processesSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
if ( processesSnapshot == INVALID_HANDLE_VALUE )
{
    return;
}

fp = _tfopen(_T("C:\\Process_List.txt") , _T("a+") );

if (fp == NULL) {
   MessageBox(_T("Can't open File"));
   return;
}

Process32First(processesSnapshot, &processInfo);


_ftprintf(fp, _T("\n Process: %s :: Process ID: %d"), processInfo.szExeFile, processInfo.th32ProcessID);
procID =  processInfo.th32ProcessID;

if (procID == 0)
{
    while ( Process32Next(processesSnapshot, &processInfo) )
    {
        _ftprintf(fp, _T("\n Process: %s :: Process ID: %d"), processInfo.szExeFile, processInfo.th32ProcessID);
    }
}

fclose(fp);
CloseHandle(processesSnapshot);

提前致谢。

问候,

拉杰什

4

0 回答 0