procedure TForm1.Button1Click(Sender: TObject);
var   
      dirname:pchar;   
      FreeAvailable,TotalSpace:TLargeInteger;   
      TotalFree:   PLargeInteger;   
  begin
      dirname:=pchar(edit1.text);
      getmem(totalfree,100);   
  try   
      if   GetDiskFreeSpaceEx(dirname,FreeAvailable,TotalSpace,totalfree)<>false   then
            edit2.text:=inttostr(FreeAvailable);
  finally
      freemem(totalfree);   
  end;   
  end;end.
以上这段代码,在普通程序用使用,可以很正常的获取到网络映射盘的大小,但是如果使用到服务程序中却返回了false,请教个位大虾,应该怎么解决这个问题,谢谢

解决方案 »

  1.   

    你这个服务是不是随系统启动的时候,网络映射盘 还没有连接上 所以就返回失败了!
      

  2.   

    不是的哦,这个网络映射盘,已经映射好了,,但是无论怎么样就是无法获取到网络映射盘的大小,但是使用应用程序就可以获得,
      

  3.   

    身份问题,你用超级用户就没有问题,
      

  4.   

    服务的运行帐号,需要能对远程目录的访问权
    桌面运行,使用的是当前用户的帐号,能看到网络映射盘,说明当前用户已经有访问权,所以,程序也可以访问