社区
网络通信/分布式开发
帖子详情
如何获取远程计算机的用户列表?
littlebird82
2003-04-25 04:51:55
如题。
...全文
81
3
打赏
收藏
如何获取远程计算机的用户列表?
如题。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hjb8000
2003-04-28
打赏
举报
回复
c++buider的:
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
AnsiString gethostip(AnsiString &host)
{
WSADATA wsaData;
AnsiString IP;
char temp[255];
strcpy(temp,host.c_str());
int pos=0;
while(temp[pos++]=='\\');
pos--;
// temp+=i-1;
WSAStartup(MAKEWORD(2,0),&wsaData);
if(host.IsEmpty())
{
char hostname[128];
if(gethostname(hostname,128)!=0)
return AnsiString("");
host=hostname;
}
try
{
struct hostent *hp=gethostbyname(temp+pos);//host.c_str());
if(hp == NULL)
{
IP="";
}
else
{
IP=inet_ntoa(*(struct in_addr*)hp-> h_addr_list[0]);
}
}
catch(...)
{
IP="";
}
WSACleanup();
return IP;
}
//---------------------------------------------------------------------------
bool EnumNetResource(LPNETRESOURCE lpNR,DWORD dwScope,DWORD dwType)
{
HANDLE hEnum = 0;
DWORD dwResult = WNetOpenEnum(
dwScope, // scope of enumeration
dwType, // resource types to list
0, // enumerate all resources
lpNR, // pointer to resource structure (NULL at first time)
&hEnum // handle to resource
);
if(dwResult != NO_ERROR) return false;
bool bRet=true;
DWORD dwEntries = 0xFFFFFFFF; // enumerate all possible entries
NETRESOURCE NR[1024];
DWORD dwBuffer=1024*sizeof(NETRESOURCE);
while(1)
{
dwResult = WNetEnumResource(hEnum, // resource-handle
&dwEntries,
(LPVOID)NR,
&dwBuffer
);
if(dwResult == ERROR_NO_MORE_ITEMS)
{
break;
}
else
{
if(dwResult != NO_ERROR)
{
bRet=false;
break;
}
}
for(DWORD i=0;i<dwEntries;i++)
{
//ShowMessage("OK");
if(NR[i].dwDisplayType==RESOURCEDISPLAYTYPE_SERVER)
{
char *p=NR[i].lpRemoteName;
while(*p=='\\') p++;
if(*p)
{
AnsiString IP = gethostip(p);
// TListItem *Item1;
// Item1 = Form1->ListView1->Items->Add();
// Item1->Caption = p;
// Item1->SubItems->Add(IP);
Form1->ListBox1->Items->Add(IP+"==="+p);
}
}
else
{
if((NR[i].dwUsage& RESOURCEUSAGE_CONTAINER)==RESOURCEUSAGE_CONTAINER)
{
bRet=EnumNetResource(&NR[i],dwScope,dwType);
if(bRet==false) break;
}
}
}
if(bRet==false) break;
}
WNetCloseEnum(hEnum) ;
return bRet;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ListView1->Clear();
Screen->Cursor=crHourGlass;
EnumNetResource(NULL,RESOURCE_GLOBALNET,RESOURCETYPE_ANY);
Screen->Cursor=crDefault;
}
//---------------------------------------------------------------------------
littlebird82
2003-04-28
打赏
举报
回复
每人回答吗?
littlebird82
2003-04-27
打赏
举报
回复
没有人回答吗?
taskmgr.exe下载
- **tasklist**:同样是一个命令行工具,用于列出运行在本地或
远程
计算机
上的所有进程,包括它们的PID(进程ID)、会话ID、会话名称、
用户
名、内存使用量以及进程是否为系统关键进程等信息。这对于
远程
管理和排查...
Visual C#中用WMI
获取
远程
计算机
信息
如果不使用WMI,想要
获取
远程
计算机
的系统数据,最常用的方法就是在
远程
计算机
上运行一个客户端程序,本地机通过和这个客户端程序来
获取
远程
计算机
的系统数据。这种实现方法无论是程序设计还是后面的程序分发都是...
远程
查看
计算机
用户
,查询
远程
或本地
计算机
的登录账户
用下面这个函数能
获取
远程
或本地电脑的当前登录
用户
,同时附加了它的
计算机
名,所以当你查询多台电脑时将知道结果从哪里来。function Get-LoggedOnUser{param([String[]]$ComputerName = $env:COMPUTERNAME)$...
如何
获取
远程
计算机
的时间
作者: Edengundam(马涛)获得本地
计算机
时间很容易, 使用cmdlet: Get-Date即可.PS C:> Get-Date2007年9月25日 10:44:12但是, 如果您想获得
远程
计算上的时间恐怕就没有这么容易了. 幸亏PowerShell无缝集成了WMI, ...
网络通信/分布式开发
1,594
社区成员
32,958
社区内容
发帖
与我相关
我的任务
网络通信/分布式开发
Delphi 网络通信/分布式开发
复制链接
扫一扫
分享
社区描述
Delphi 网络通信/分布式开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章