如何显示Windows安全对话框

时间:2017-07-17 10:16:43

标签: delphi windows-7-x64 delphi-2007

我有一个应用程序,有时访问本地网络中的文件共享。 在这种情况下,路径存储在fEBookPath中。 如果用户输入登录名和密码,那么一切都好之前。但如果不是,FindFirst不会返回0.在这种情况下,我想显示Windows资源管理器显示的相同安全对话框。 喜欢这个

enter image description here

我的简化代码

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

1 个答案:

答案 0 :(得分:3)

此代码应该做我想要的

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;