首页
社区
课程
招聘
[旧帖] 如何在WIN7下面获取进程对应的用户名? 0.00雪花
发表于: 2011-6-2 11:45 5508

[旧帖] 如何在WIN7下面获取进程对应的用户名? 0.00雪花

2011-6-2 11:45
5508
RT。。。。我目前在XP下面可以获取进程用户名,但是编译的程序在WIN7下面只能获取用户名是主机的进程。
比如SYSTEM,LOCAL SERVICE都获取不到。原因不太清楚。请大牛指教下。
下面是代码。
#include <windows.h>
#include <iostream>
using namespace std;

#include "WtsApi32.h"
#pragma comment(lib,"WtsApi32.lib")

int main()
{
        SID_NAME_USE snu;
        TCHAR szUsername[MAX_PATH];
        TCHAR szDomainname[MAX_PATH];
        DWORD dwUsernameSize;
        DWORD dwDomainnameSize;
        WTS_PROCESS_INFO* pProcInfo;
        WTS_PROCESS_INFO* tmpProcInfo;
        DWORD dwProcInfoSize;

        //  返回特定服务上的活动进程
        int flag = 0;
        if (WTSEnumerateProcesses(WTS_CURRENT_SERVER_HANDLE, 0, 1, &pProcInfo, &dwProcInfoSize))
        {
                tmpProcInfo = pProcInfo;
                for (DWORD i = 0; i < dwProcInfoSize; ++i)
                {
                        dwUsernameSize = sizeof(szUsername);
                        dwDomainnameSize = sizeof(szDomainname);
                        if (LookupAccountSid(NULL, tmpProcInfo->pUserSid,
                                szUsername, &dwUsernameSize, szDomainname,
                                &dwDomainnameSize, &snu))
                        {
                                wcout << flag << L":        " << tmpProcInfo->ProcessId << L"        " << szUsername << endl;
                        }
                        ++tmpProcInfo;
                        ++flag;
                }

               
                WTSFreeMemory(pProcInfo);
        }

        system("pause");
        return 0;
}

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 793
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
应该是权限的问题吧
用管理员的身份运行看看呗
2011-6-2 16:15
0
游客
登录 | 注册 方可回帖
返回
//