Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 映射网络驱动器(WebDAV)不会';不能使用Windows XP_Delphi_Winapi_Windows Networking - Fatal编程技术网

Delphi 映射网络驱动器(WebDAV)不会';不能使用Windows XP

Delphi 映射网络驱动器(WebDAV)不会';不能使用Windows XP,delphi,winapi,windows-networking,Delphi,Winapi,Windows Networking,我在使用API方法WNetAddConnection2在Windows XP下映射网络驱动器(WebDAV)时遇到问题。在Windows7下,它就像一个魔咒。我的代码: function ConnectDrive(Drive: string; Folder: string; Username: string; Password: string; RestoreAtLogon: Boolean): HRESULT; var NetResource: TNetResource; dwFla

我在使用API方法WNetAddConnection2在Windows XP下映射网络驱动器(WebDAV)时遇到问题。在Windows7下,它就像一个魔咒。我的代码:

function ConnectDrive(Drive: string; Folder: string;
Username: string; Password: string; RestoreAtLogon: Boolean): HRESULT;

var
  NetResource: TNetResource;
  dwFlags: DWORD;
begin
  with NetResource do
  begin
    dwType := RESOURCETYPE_DISK;
    lpLocalName := PChar(Drive);
    lpRemoteName := PChar(Folder);
    lpProvider := nil;
  end;

  if (RestoreAtLogon) then
    dwFlags := CONNECT_UPDATE_PROFILE
  else
    dwFlags := 0;

  Result := WNetAddConnection2(NetResource, PChar(Password),
    PChar(Username), dwFlags);
end;
每次我尝试连接Windows时,Windows都会告诉我:“找不到网络名”或“找不到网络路径”

正如我之前所说,在Windows7下没有问题

如果我使用像Netdrive这样的商业工具,这个程序在XP、Vista或Windows7下安装驱动器是没有问题的

有人有主意吗


提前感谢

您的问题可能有无数的原因……但您可以尝试:

  • 最重要的事情:完全修补您的windows安装(windows Update-最新SP和更新)。您可以与一个可以修复的bug进行斗争()
  • 确保您能够解析webdav服务器的名称(是否使用netbios(wins)、dns、主机文件?)
  • 指定FQDN
  • 指定IP地址
  • 尝试使用
    http://servername
    httpS(如果支持)
    而不是UNC(
    \\servername
  • 尝试使用netuse命令查看映射()是否成功
  • 检查IIS级别()的身份验证配置
  • 检查以下工作区域:
  • 使用网络嗅探器捕获和分析故障期间的网络流量(WireShark、网络监视器等)

希望这有帮助

我在Windows XP(家庭版和专业版)计算机上测试了您的代码,它映射了网络驱动器(函数返回0)。你能举一个如何调用函数的例子吗?我这样调用函数:hr:=ConnectDrive(“M:”,“,”testuser1”,“password”,false);请改为使用
'\\myserver\WebDAV'
进行尝试(如果路径是本地的),不幸的是,这没有帮助,因为路径不是本地的,它只是作为服务器的占位符。您是通过IP进行尝试的吗?有一个类似的奇怪问题,必须通过IP来解决。