Windows 7中Delphi复制文件到systemdir问题

标签 delphi uac

我可以使用copyfile();在 Windows XP 上将文件复制到 c:/windows/system32 的函数,但后来我在 Windows 7 上使用该函数,但无法复制它:o 文件不会出现在那里....

我在写入和读取寄存器时遇到了同样的问题,但通过声明 WOW key $0100 修复了它......

我认为问题出在 uac 但不确定..有人能给我解释一下吗:D?

最佳答案

这确实是因为UAC。它被称为File/FolderRegistry虚拟化。它是针对尚未遵守新 UAC 规则的旧应用程序(例如,除非您是管理员,否则不要在系统文件夹中写入)而完成的。

通过创建 list 文件,您可以关闭此虚拟化。请参阅here 。这可以是一个单独的文件,也可以嵌入到 exe 中。较新的 Delphi 版本已经生成包含此类 list 的可执行文件,并将 requestsExecutionLevel 设置为 asInvoker。这通常不允许在这些位置写入,除非用户专门以管理员身份运行您的程序。将其设置为 requireAdministrator 确实允许在这些位置进行写入,但也意味着用户必须确认他们想要以管理员身份运行您的程序。

关于Windows 7中Delphi复制文件到systemdir问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6491703/

相关文章:

delphi - JPEG-LS/LOCO-I 压缩库

delphi - 如何禁用整个项目的断言?

delphi - 当应用程序不处理 DPI 的运行时更改时,如何重置应用程序强加的兼容模式?

uac - 为NSIS安装程序设置UAC“发布者”字段

delphi - 正在寻找 Delphi 7 代码来检测程序是否以管理员权限启动?

c# - 如何以编程方式将 UAC 的 consent.exe 带到前台?

delphi - 爬虫url队列还是hash列表?

delphi - 如何在其所有者表单之上显示模态表单(其所有者是否设置为 fsStayOnTop),就像 TOpenDialog 一样

c++ - 在不调用 uac 的情况下启动服务

c - 无法在 Windows 7 上创建高程 COM 对象