求助:如何通过代码在远程的一个机器(我知道那个机器的用户和密码)上创建一个完全共享的文件夹,急等!
我试过使用NetShareAdd但是每次都不成功,返回的错误码是1113,请各位大虾指教

解决方案 »

  1.   

    form MSDN : NetShareAdd()#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;
    }
      

  2.   

    xujianlane(头文字C)
    你好,我使用了你说的那个NetShareAdd函数,但是每次都失败,而且返回值是1113,也不是msdn中描述的那几个,所以你能不能给出个全面一点的,那个函数的第一个参数如果是远程机器该怎么写呢?
      

  3.   

    用createprocesslogin运行net add,如果你知道用户名和密码的话
    或者再创建前更改当前token
    应该是你进程运行的身份是system,这个身份会有问题.
      

  4.   

    做个服务程序就可以了,服务程序在本地执行你的共享命令,服务程序执行NetShareAdd