首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SHGetPathFromIDList (Delphi) -误报问题

SHGetPathFromIDList (Delphi) -误报问题
EN

Stack Overflow用户
提问于 2018-07-04 04:11:47
回答 1查看 292关注 0票数 1

我使用的是卡巴斯基互联网安全2018。但是当我用这些代码编译我的Delphi应用程序时,我的反病毒应用程序将删除编译后的exe:

代码语言:javascript
复制
function BrowseForFolder(var dpFolder: String; dpTitle: String): Boolean;
var
  dpBrowseInfo: TBrowseInfo;
  dpDisplayName: array[0..255] of Char;
  dpItemIDList: PItemIDList;
begin
  FillChar(dpBrowseInfo, sizeof(dpBrowseInfo), #0);
  with dpBrowseInfo do begin
    hwndOwner := Application.Handle;
    pszDisplayName := @dpDisplayName[0];
    lpszTitle := PChar(dpTitle);
    dpItemIDList := SHBrowseForFolder(dpBrowseInfo);
    ulFlags := BIF_RETURNONLYFSDIRS and BIF_VALIDATE;
  end;
if Assigned(dpItemIDList) then begin
  if SHGetPathFromIDList(dpItemIDList, dpDisplayName) then begin
    dpFolder := dpDisplayName;
    Result := True;
  end else begin
    Result := False;
  end;
end;
end;

除了将我的应用添加到白名单之外,我还应该怎么做才能弹出“浏览文件夹”菜单?

EN

回答 1

Stack Overflow用户

发布于 2018-07-04 05:43:48

我尝试过每种类型的“浏览文件夹”对话框,我意识到我的杀毒软件只支持Vcl.FileCtrl.TSelectDirExtOpt (而且它讨厌其他FileCtrl对话框)。

所以,我自己修复了我的问题,如下所示:

代码语言:javascript
复制
procedure TForm1.gözatDüğmesiClick(Sender: TObject);
  begin
    if not (menü4CB = '1') then begin
      if not (SelectDirectory('Kurulum programının yedekleneceği klasörü seçin', 
        GetSpecialFolderPathFromCSIDL($0011), adres, [sdNewFolder, sdNewUI], nil) = False) then begin
           adresÇubuğu.Text := adres;
      end else begin
      end;
    end;
end;

无论如何,感谢Remy Lebeau关心我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51162212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档