Bonjour

J'ai besoin de pouvoir partager un répertoire au travers d'un logiciel Delphi.

J'ai trouvé ce code qui fonctionne très bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
 
  _SHARE_INFO_2 = record
     shi2_netname: LPWSTR;
     shi2_type: DWORD;
     shi2_remark: LPWSTR;
     shi2_permissions: DWORD;
     shi2_max_uses: DWORD;
     shi2_current_uses: DWORD;
     shi2_path: LPWSTR;
     shi2_passwd: LPWSTR;
  end;
  PSHARE_INFO_2= ^_SHARE_INFO_2;
 
  TForm1 = class(TForm)
    Button1: TButton;
 
    procedure Button1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;
 
var
  Form1: TForm1;
  Share: PSHARE_INFO_2;
  ParamErr: lpdword;
  Rep : longint;
 
const
 STYPE_DISKTREE = 0;
 STYPE_PRINTQ = 1;
 STYPE_DEVICE = 2;
 STYPE_IPC = 3;
 STYPE_DFS = 100;
 STYPE_SPECIAL = $80000000;
 
 ACCESS_NONE = 0;
 ACCESS_READ  = 1;
 ACCESS_WRITE = 2;
 ACCESS_CREATE = 4;
 ACCESS_EXEC = 8;
 ACCESS_DELETE = 16;
 ACCESS_ATRIB = 32;
 ACCESS_PERM = 64;
 ACCESS_ALL = (ACCESS_READ+ACCESS_WRITE+ACCESS_CREATE+ACCESS_EXEC+ACCESS_DELETE+ACCESS_ATRIB+ACCESS_PERM);
 
implementation
 
function NetShareAdd(servername: LPWSTR;
    level: DWORD;
    buf: pSHARE_INFO_2;
    parm_err: LPDWORD):LongWord; stdcall; external 'netapi32.dll';
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  new(share);
  Share^.shi2_netname := 'TESTSHARE'; //nom de partage du dossier
  Share^.shi2_type := STYPE_DISKTREE; // disk drive
  Share^.shi2_remark := 'TESTSHARE to test NetShareAdd'; // zone commentaire
  Share^.shi2_permissions := ACCESS_ALL; //definition des droits
  Share^.shi2_max_uses := 4;  // nb max de users simultane
  Share^.shi2_current_uses := 0;
  Share^.shi2_path := 'D:\icones';   //ici le chemin du dossier a partager
  Share^.shi2_passwd := Nil; // nil si pas password
 
  rep := NetShareAdd(nil, 2, SHARE, ParamErr);
  if rep = 0 then
    messagedlg('OK Dossier partagé',mtInformation,[mbOK], 0)
  else
    messagedlg(inttostr(rep) + ' - ' +SysErrorMessage(rep),mtWarning, [mbOK], 0);
  dispose(share);
end;
 
end.
Cependant, je n'arrive pas à trouver l'utilisation de SvrApi.dll (permettant le partage sous Win9x).
Sur le site MSDN, ils expliques les différences dans les paramètres, mais je suis incapable de les convertir en Delphi.

D'autre part, si je crée les partages il faut que je puisse les supprimer ... mais même problème avec NetShareDel

Si quelqu'un sait ou je peux me procurer un fichier d'aide, un tuto ou quoi que ce soit à ce sujet, je suis prenneur..

merci

PS: J'ai trouvé aussi une version C# qui est complète mais ... en C#