:= LoadLibrary(''''SVRAPI.DLL''''); if FLibHandle = 0 then Exit; @NetShareDel := GetProcAddress(FLibHandle, ''''NetShareDel''''); if not Assigned(NetShareDel) then begin FreeLibrary(FLibHandle); Exit; end; FillChar(Name9x, SizeOf(Name9x), #0); move(ShareName[1], Name9x[0], Length(ShareName)); NetShareDel(nil, @Name9x, 0); end; FreeLibrary(FLibHandle); end;
procedure AddShare(ShareName, ShareDir: string); const STYPE_DISKTREE = 0; ACCESS_ALL = 258; SHI50F_FULL = 258; var FLibHandle: THandle; Share9x: TShareInfo50; ShareNT: TShareInfo2; TmpDirNT, TmpNameNT: PWChar; OS: Boolean; TmpLength: Integer; begin if not IsNT(OS) then Exit;
if OS then begin FLibHandle := LoadLibrary(''''NETAPI32.DLL''''); if FLibHandle = 0 then Exit; @NetShareAddNT := GetProcAddress(FLibHandle, ''''NetShareAdd''''); if not Assigned(NetShareAddNT) then begin FreeLibrary(FLibHandle); Exit; end; TmpLength := SizeOF(WideChar) * 256;
GetMem(TmpNameNT, TmpLength); StringToWideChar(ShareName, TmpNameNT, TmpLength); ShareNT.shi2_netname := TmpNameNT;
ShareNT.shi2_type := STYPE_DISKTREE; ShareNT.shi2_remark := ''''''''; ShareNT.shi2_permissions := ACCESS_ALL; ShareNT.shi2_max_uses := DWORD(-1); ShareNT.shi2_current_uses := 0;
GetMem(TmpDirNT, TmpLength); StringToWideChar(ShareDir, TmpDirNT, TmpLength); ShareNT.shi2_path := TmpDirNT;
ShareNT.shi2_passwd := '''''''';
NetShareAddNT(nil, 2, @ShareNT, nil); FreeMem(TmpNameNT); FreeMem(TmpDirNT); end else begin FLibHandle := LoadLibrary(''''SVRAPI.DLL''''); if FLibHandle = 0 then Exit; @NetShareAdd := GetProcAddress(FLibHandle, ''''NetShareAdd''''); if not Assigned(NetShareAdd) then begin FreeLibrary(FLibHandle); Exit; end; FillChar(Share9x.shi50_netname, SizeOf(Share9x.shi50_netname), #0); move(ShareName[1], Share9x.shi50_netname[0], Length(ShareName)); Share9x.shi50_type := STYPE_DISKTREE; Share9x.shi50_flags := SHI50F_FULL; FillChar(Share9x.shi50_remark, SizeOf(Share9x.shi50_remark), #0); FillChar(Share9x.shi50_path, SizeOf(Share9x.shi50_path), #0); Share9x.shi50_path := PAnsiChar(ShareDir); FillChar(Share9x.shi50_rw_password, SizeOf(Share9x.shi50_rw_password), #0); FillChar(Share9x.shi50_ro_password, SizeOf(Share9x.shi50_ro_password), #0); NetShareAdd(nil, 50, @Share9x, SizeOf(Share9x)); end; FreeLibrary(FLibHandle); end;
procedure GetSessions(List: TStrings); var OS: Boolean; FLibHandle: THandle; SessionInfo50: array[0..512] of TSessionInfo50; SessionInfo502: PSessionInfo502Array; TotalEntries, EntriesReadNT: DWORD; EntriesRead, TotalAvial: Word; i: integer; begin List.Clear; if not IsNT(OS) then Exit; if OS then begin FLibHandle := LoadLibrary(''''NETAPI32.DLL''''); if FLibHandle = 0 then Exit; @NetSessionEnumNT := GetProcAddress(FLibHandle, ''''NetSessionEnum''''); if not Assigned(NetSessionEnumNT) then begin FreeLibrary(FLibHandle); Exit; end; SessionInfo502 := nil; if NetSessionEnumNT(nil, nil, nil, 502, @SessionInfo502, DWORD(-1), @entriesreadNT, @totalentries, nil) = 0 then for i := 0 to EntriesReadNT - 1 do List.AddObject(string(SessionInfo502^[i].sesi502_cname), TSessionInfo502Obj.Create(SessionInfo502^[i])); end else begin FLibHandle := LoadLibrary(''''SVRAPI.DLL''''); if FLibHandle = 0 then Exit; @NetSessionEnum := GetProcAddress(FLibHandle, ''''NetSessionEnum''''); if not Assigned(NetSessionEnum) then begin FreeLibrary(FLibHandle); Exit; end; if NetSessionEnum(nil, 50, @SessionInfo50, SizeOf(SessionInfo50), @EntriesRead, @TotalAvial) = 0 then for i := 0 to EntriesRead - 1 do List.AddObject(string(SessionInfo50[i].Sesi50_cname), TSessionInfo50Obj.Create(SessionInfo50[i])); end; FreeLibrary(FLibHandle); end;
procedure CloseSession(SessionName: string); var OS: Boolean; FLibHandle: THandle; CNameNT: PWideChar; CName9x: PAnsiChar; Key: SmallInt; begin if not IsNT(OS) then Exit; if OS then begin FLibHandle := LoadLibrary(''''NETAPI32.DLL''''); if FLibHandle = 0 then Exit; @NetSessionDelNT := GetProcAddress(FLibHandle, ''''NetSessionDel''''); if not Assigned(NetSessionDelNT) then begin FreeLibrary(FLibHandle); Exit; end; CNameNT := PWChar(WideString(''''\\'''' + SessionName)); NetSessionDelNT(nil, CNameNT, nil); end else begin FLibHandle := LoadLibrary(''''SVRAPI.DLL''''); if FLibHandle = 0 then Exit; @NetSessionDel := GetProcAddress(FLibHandle, ''''NetSessionDel''''); if not Assigned(NetSessionDel) then begin FreeLibrary(FLibHandle); Exit; end; CName9x := PAnsiChar(SessionName); // key := SessionCloseKey[i]; // NetSessionDel(nil,CName9x,Key); end; FreeLibrary(FLibHandle); end;
procedure GetFiles(FilesList: TStrings); var OS: Boolean; FLibHandle: THandle; FileInfoNT: PFileInfo3Array; FileInfo9x: array[0..512] of TFileInfo50; TotalEntries, EntriesReadNT: DWORD; EntriesRead, TotalAvial: Word; i: integer; begin if not IsNT(OS) then Exit; FilesList.Clear; if OS then begin FLibHandle := LoadLibrary(''''NETAPI32.DLL''''); if FLibHandle = 0 then Exit; @NetFileEnumNT := GetProcAddress(FLibHandle, ''''NetFileEnum''''); if not Assigned(NetFileEnumNT) then begin FreeLibrary(FLibHandle); Exit; end; FileInfoNT := nil; if NetFileEnumNT(nil, nil, nil, 3, @FileInfoNT, DWORD(-1), @entriesreadNT, @totalentries, nil) = 0 then for i := 0 to EntriesReadNT - 1 do FilesList.AddObject(string(IntToStr(FileInfoNT^[i].fi3_id)), TFileInfo3Obj.Create(FileInfoNT^[i])); end else begin FLibHandle := LoadLibrary(''''SVRAPI.DLL''''); if FLibHandle = 0 then Exit; @NetFileEnum := GetProcAddress(FLibHandle, ''''NetFileEnum''''); if not Assigned(NetFileEnum) then begin FreeLibrary(FLibHandle); Exit; end; if NetFileEnum(nil, nil, 50, @FileInfo9x, SizeOf(FileInfo9x), @EntriesRead, @TotalAvial) = 0 then for i := 0 to EntriesRead - 1 do FilesList.AddObject(IntToStr(FileInfo9x[i].fi50_id), TFileInfo50Obj.Create(FileInfo9x[i])); end; FreeLibrary(FLibHandle); end;
procedure CloseFile(FileIndex: string); var OS: Boolean; FLibHandle: THandle; begin if not IsNT(OS) then Exit; if OS then begin //Êî?äëÿ NT FLibHandle := LoadLibrary(''''NETAPI32.DLL''''); if FLibHandle = 0 then Exit; @NetFileClose := GetProcAddress(FLibHandle, ''''NetFileClose''''); if not Assigned(NetFileClose) then begin FreeLibrary(FLibHan ÉÏÒ»Ò³ [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... ÏÂÒ»Ò³ >> ûÓÐÏà¹Ø½Ì³Ì
|