Delphi 如何显示Windows安全对话框

Delphi 如何显示Windows安全对话框,delphi,windows-7-x64,delphi-2007,Delphi,Windows 7 X64,Delphi 2007,我有一个应用程序,有时访问本地网络中的文件共享。 在这种情况下,路径存储在fEBookPath中。 如果用户输入了登录名和密码以后,一切都好了。但如果未找到第一个,则不返回0。在这种情况下,我希望显示与Windows资源管理器相同的安全对话框。 像这样 我的简化代码 if FindFirst(fEBookPath + '*.*', faDirectory, vSearchRecFolder) = 0 then begin // Existing code to access fEBookP

我有一个应用程序,有时访问本地网络中的文件共享。 在这种情况下,路径存储在fEBookPath中。 如果用户输入了登录名和密码以后,一切都好了。但如果未找到第一个,则不返回0。在这种情况下,我希望显示与Windows资源管理器相同的安全对话框。 像这样

我的简化代码

if FindFirst(fEBookPath + '*.*', faDirectory, vSearchRecFolder) = 0 then
begin
  // Existing code to access fEBookPath 
end
else
  // Display Windows security dialog to enter login + password

这段代码应该符合我的要求

function TLogonForm.ShowSecurity: DWORD;
var
  UNCPath,UserName,PassWord: string;
   NwR : TNetResource;
begin
  UNCPath := '\\xenapp06';
  NwR.lpLocalName:= '';
  NwR.lpProvider := '';
  NwR.dwType      :=  RESOURCETYPE_DISK;
  NwR.lpRemoteName:= PChar(UNCPath);
  Result := WNetAddConnection2(NwR,  nil, nil, CONNECT_INTERACTIVE or CONNECT_PROMPT);
end;

+CONNECT\u提示符,将提示并设置连接。您正在连接到网络资源,而不是显示对话框。结果类型为
DWORD
,您可能不想连接到打印机,而想连接到磁盘。对于那些空字符串,您只需
nil
。好的,谢谢您的建议如果您想发布解决方案,请将其作为下面的答案,而不是将其编辑到问题本身中。这是一本书。