📄 workpcall.pas
字号:
unit workpcall;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TnetResourceArr = ^TNetResource;
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
function Getusers(groupname:string;var List:TStringlist):boolean;
var
NetResource : TNetResource;
Buf : Pointer;
Count, BufSize, Res : DWORD;
lphEnum : THandle;
temp : tNetResourceArr;
lnd:integer;
begin
result:=false;
list.Clear;
fillchar(netresource,sizeof(netresource),0);
netresource.lpRemoteName:=@groupname[1];
netresource.dwDisplayType:=resourceusage_container;
netresource.dwScope:=resourcetype_disk;
res:=wnetopenenum(resource_globalnet,resourcetype_disk,resourceusage_container,@netresource,lphenum);
if res<> no_error then exit;
while true do
begin
count:=$FFFFFF;
bufsize:=8192;
getmem(buf,bufsize);
res:=wnetenumresource(lphenum,count,pointer(buf),bufsize);
if res=error_no_more_items then break;
if (res<> no_error) then exit;
temp:=tnetresourcearr(buf);
for lnd:=0 to count-1 do
begin
list.Add(temp^.lpRemoteName);
inc(temp);
end;
end;
res:=wnetcloseEnum(lphenum);
if res<> no_error then exit;
result:=true;
freemem(buf);
end;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
list:tstringlist;
i:integer;
begin
try
list:=Tstringlist.create;
if getusers(edit1.Text,list)then
if list.count=0 then
begin
memo1.Lines.Add(edit1.Text+'none');
end
else
memo1.Lines.Add(edit1.Text+'total') ;
for i:=0 to list.count-1 do
begin
memo1.Lines.Add(list.strings[i]);
end;
finally
list:=tstringlist.create;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -