(Co-Admin)
Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
Delphi 11 Alexandria
|
Re: Programm an fremden PC beenden
7. Jul 2004, 13:52
Moin Micha,
mal ein kleines Beispiel für NetFileEnum, für dass Du noch ein Memo und einen Button brauchst.
Delphi-Quellcode:
const
MAX_PREFERRED_LENGTH = DWORD(-1);
NERR_Success = 0;
type
PFILE_INFO_3 = ^FILE_INFO_3;
FILE_INFO_3 =
packed record
fi3_id : DWord;
fi3_permissions : DWord;
fi3_num_locks : DWord;
fi3_pathname : PWChar;
fi3_username : PWChar;
end;
NET_API_STATUS = DWORD;
function NetFileEnum(
const servername : PWChar;
const basepath : PWChar;
const username : PWChar;
const level : DWord;
const bufptr : Pointer;
const prefmaxlen : DWord;
const entriesread : PDWord;
const totalentries : PDWord;
const resume_handle : PDWord
) : NET_API_STATUS; stdcall; external 'netapi32.dll';
function NetApiBufferFree(
const Buffer : Pointer
) : NET_API_STATUS; stdcall; external 'netapi32.dll';
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
pfi3 : PFILE_INFO_3;
pfi3Work : PFILE_INFO_3;
dwRead : DWORD;
dwTotal : DWORD;
i : integer;
dwResult : DWORD;
begin
dwResult := NetFileEnum('\\<SERVERNAME>',nil,nil,3,@pfi3,MAX_PREFERRED_LENGTH,@dwRead,@dwTotal,nil);
if dwResult = NERR_SUCCESS then begin
try
Memo1.Lines.Clear;
pfi3Work := pfi3;
for i := 1 to dwRead do begin
Memo1.Lines.Add(pfi3Work.fi3_Username + ' - '+pfi3Work.fi3_pathname);
inc(pfi3Work);
end;
finally
NetApiBufferFree(pfi3);
end;
end else begin
ShowMessage(SysErrorMessage(dwResult));
end;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
|
|
Zitat
|