0

我试图在 system32 文件夹下创建目录,但没有异常显示或错误

注意我以管理员身份运行它

//1
  if not TDirectory.Exists('C:\Windows\System32\oobe\info') then
  TDirectory.CreateDirectory('C:\Windows\System32\oobe\info');
//2
  if not DirectoryExists('C:\Windows\System32\oobe\info') then
  CreateDir('C:\Windows\System32\oobe\info');
//3
  try
    ForceDirectories('C:\Windows\System32\oobe\info');
  except
   ShowMessage('cant create it');
  end;
4

1 回答 1

2

您在 64 位 Windows 上有一个 32 位进程。因此,您受文件系统重定向器的约束。这将重定向system32SysWOW6432 系统目录。你会在那里找到你的目录。

您有以下选择:

  1. 使用sysnative别名访问 64 位系统目录。
  2. 在 64 位进程中运行代码。
  3. 禁用文件系统重定向。

这里的最后一个选项充满危险,不推荐。

该文档提供了详细信息:http: //msdn.microsoft.com/en-us/library/windows/desktop/aa384187.aspx

当然,写入 32 位系统目录可能正是您想要做的事情,而您还没有意识到这一点。

最后,如果不指出系统属于系统,不应该被应用程序修改,那将是我的疏忽。

于 2014-11-11T10:52:35.830 回答