提问人:John Titor 提问时间:11/17/2023 更新时间:11/17/2023 访问量:32
在inno setup中安装之前,请运行powershell脚本或将安装目录列入白名单
Run powershell script or whitelist installation directory before installing in inno setup
问:
我正在使用inno设置,用户可以选择安装软件.exe的目录。
但目前在安装进行到一半时,Windows Defender会删除/隔离exe文件,因为它认为它是病毒。 我目前的解决方法是创建一个文件夹,在 defender 中将文件夹列入白名单,然后运行安装程序并手动安装到该文件夹。
有没有办法在Inno Setup中自动执行此过程,在用户选择安装目录后,它会在安装前将该文件夹列入白名单?
我看到一些人运行 Powershell 脚本,但是在 Inno 安装程序创建文件夹之后和安装 .exe 之前,我该如何运行此脚本?
答:
1赞
Martin Prikryl
11/17/2023
#1
假设使用 Dirs
部分条目创建目录,请使用 AfterInstall
参数优化自定义代码以执行 PowerShell:
[Dirs]
Name: "{app}\data"; AfterInstall: AfterDirectoryCreated
[Code]
procedure AfterDirectoryCreated;
var
ResultCode: Integer;
begin
if Exec('powershell', Params, '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then
begin
Log('PowerShell executed successfully');
end
else
begin
Log('PowerShell failed to execute');
end;
end;
尽管更改用户防病毒设置是不可接受的安全漏洞。修复您的应用程序,使其不被检测为病毒。
评论
0赞
John Titor
11/17/2023
是的,我使用 Dirs 部分,但是有没有办法在 Dirs 部分之后但在 AfterInstall 之前运行脚本?防病毒软件会在安装过程中删除 exe,因此在运行 AfterInstall 时,exe 已被删除。
0赞
Martin Prikryl
11/17/2023
你有没有尝试过我的建议?在创建目录之后,在发生任何其他事情之前(即甚至在部署任何文件之前),立即发生。AfterInstall
评论