下面代码怎么改才行?关于进程列表

wingfootedtiger 2005-05-17 03:45:01
下面的代码是在一个ListView里列出所有进程,请问如何修改才能只列出当前机器User所拥有的进程?比如当前机器用户名为TTTTT,如何只列出属于TTTTT的进程而去掉其他的?
void __fastcall TForm_AppList::App_Refresh()
{
ListView_AppList->Items->Clear();
TListItem *mItem;
AnsiString ExeFile;
HANDLE snapshot;
PROCESSENTRY32 processinfo;
processinfo.dwSize = sizeof(processinfo);
snapshot =CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if (snapshot==NULL) return;
bool flag = Process32First (snapshot,&processinfo);
while (flag)
{
mItem=ListView_AppList->Items->Add();
ExeFile=AnsiString(processinfo.szExeFile);
mItem->Caption=ExeFile;
flag = Process32Next(snapshot,&processinfo);
}
}
...全文
74 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
icwin 2005-05-20
  • 打赏
  • 举报
回复
up
constantine 2005-05-17
  • 打赏
  • 举报
回复
得到进程的用户名
 http://nowcan.yeah.net
http://nowcan.chinabcb.com

这是靠查询进程令牌信息得到的。程序如下。

#include <windows.h>
#include <stdio.h>

/* */
void GetProcessAuth(long pid)
{
//获得运行进程的用户身份,此处对于8以上的进程没问题,对于8,0进程无法列出(8是Win2000下的,WinXP下为4)
SID_NAME_USE peUse;
HANDLE hp;
HANDLE hToken;
int isok;
char buf[0x400];
char buf1[100];
char buf2[100];
DWORD dwNumBytesRet;
DWORD dwNumBytesRet1;

hp=OpenProcess(0x400, 0, pid);//0x400 is PROCESS_QUERY_INFORMATION
isok=OpenProcessToken(hp, 0x20008, &hToken);//这个0x20008不知道什么,TOKEN_QUERY?
if(isok)
{
isok=GetTokenInformation(hToken, TokenUser, &buf, 0x400, &dwNumBytesRet);
if(isok)
{
dwNumBytesRet=100;
dwNumBytesRet1=100;
isok=LookupAccountSid(NULL, (DWORD *) (*(DWORD *)buf), buf1, &dwNumBytesRet, buf2, &dwNumBytesRet1, &peUse);
if(isok)
{
printf("Run Auth:%s\\%s \n", buf2, buf1);
}

CloseHandle(hToken);
}
}

CloseHandle(hp);
}

/* */
int main(int argc, char **argv)
{
long pid;
if(argc != 2)
{
printf(" - %s ProcessId\n", argv[0]);
return 0;
}

pid=strtol(argv[1], 0, 0);
GetProcessAuth(pid);
return 0;
}


提示:不知为什么,NowCan把程序贴在这里的时候总是丢失缩进信息,大家可以下载这个软件来进行重排版--Great Code

©版权所有 老侃第一站 - 联系站长
Copyright©2002 - 2003 http://nowcan.yeah.net. All Rights Reserved

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧