我想写一个程序,自动把我指定的一个目录共享。大家有何高招,尽管使出来吧

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      S1, S2: string;
    begin
      if EditDir.Text = '' then
        begin      Application.MessageBox('请先选择一个目录!', '黑洞', MB_ICONINFORMATION + MB_OK);
          BtSelect.Click;
          Exit;
        end;
      if EditSharename.Text = '' then
        begin
          Application.MessageBox('请先输入共享名称!', '黑洞', MB_ICONINFORMATION + MB_OK);
          EditSharename.SetFocus;
          Exit;
        end;  S1 := UpperCase(EditDir.Text);
      S2 := UpperCase(EditSharename.Text);
      DeleteShare(nil, Pchar(S2));
      sleep(500);
      if CheckBox1.Checked then
        ShareResource(nil, pchar(S1), Pchar(S2), Pchar(EditInfo.Text), STYPE_DISKTREE, SHI50F_FULL { or SHI50F_SYSTEM}, '', '')
      else
        ShareResource(nil, pchar(S1), Pchar(S2), Pchar(EditInfo.Text), STYPE_DISKTREE, SHI50F_RDONLY or SHI50F_SYSTEM{ or SHI50F_SYSTEM}, '', '')
    end;
      

  2.   

    NET_API_STATUS NetShareAdd(
      LPWSTR servername,
      DWORD level,
      LPBYTE buf,
      LPDWORD parm_err
    );#define UNICODE
    #include <windows.h>
    #include <stdio.h>
    #include <lm.h>void wmain( int argc, TCHAR *argv[ ])
    {
       NET_API_STATUS res;
       SHARE_INFO_2 p;
       DWORD parm_err = 0;   if(argc<2)
          printf("Usage: NetShareAdd server\n");
       else
       {
          //
          // Fill in the SHARE_INFO_2 structure.
          //
          p.shi2_netname = TEXT("TESTSHARE");    
          p.shi2_type = STYPE_DISKTREE; // disk drive
          p.shi2_re = TEXT("TESTSHARE to test NetShareAdd");
          p.shi2_permissions = 0;    
          p.shi2_max_uses = 4;
          p.shi2_current_uses = 0;    
          p.shi2_path = TEXT("C:\\");
          p.shi2_passwd = NULL; // no password
          //
          // Call the NetShareAdd function,
          //  specifying level 2.
          //
          res=NetShareAdd(argv[1], 2, (LPBYTE) &p, &parm_err);
          //
          // If the call succeeds, inform the user.
          //
          if(res==0)
             printf("Share created.\n");
          
          // Otherwise, print an error,
          //  and identify the parameter in error.
          //
          else
             printf("Error: %u\tparmerr=%u\n", res, parm_err);
       }
       return;
    }如果还不明白,可以参考MSDN!!!
      

  3.   

    你看一下《delphi 5 开发人员指南》
      

  4.   

    ShareResource
    DeleteShare
    这些哪里有啊