我写了一段代码,其中用到WNetAddConnection2来映射网络驱动器,这段代码在98下没什么问题,为什么在2000与XP下均不好用,程序执行后没有什么反应,请教

解决方案 »

  1.   

    就好像有的关机和重启在98行,在2k和xp下不行一样。
    系统安全的因素。
    基于NT的系统需要有管理员的权限才能对系统进行操作。
      

  2.   

    需要设置权限
    function SetPrivilege(sPrivilegeName:string;bEnabled:boolean):boolean;
    var
      TP,TPPre:TTokenPrivileges;
      Token:THandle;
      dwLength:DWORD;
    begin
      result := false;
      OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,Token);
      try
      TP.PrivilegeCount := 1;
      if LookupPrivilegeValue(nil,PChar(sPrivilegeName),TP.Privileges[0].LUID) then
      begin
        if bEnabled then
          TP.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
        else
          TP.Privileges[0].Attributes := 0;
        dwLength := 0;
        Result := AdjustTokenPrivileges(Token,false,TP,sizeof(TPPre),TPPre,dwLength);
      end;
      finally
        CloseHandle(Token);
      end;
    end;
    调用:
        SetPrivilege('SeShutdownPrivilege',true);希望有帮助!
      

  3.   

    你试试DOS命令吧。NET SHARE ,你查查帮助就知道了。
      

  4.   

    还是不行,是不是在2K与XP中这个函数没有或才换了