访问带有引号的注册表项

Accessing the registry key having Quotation Mark

我想从 Delphi XE2

打开 XXX'XX 格式的注册表项
Rootpath := '\SOFTWARE\XXXX XXXX\XXXXX''XXX\XXX';
Reg.OpenKey(Rootpath, FALSE);

因为 Delphi 的转义字符是 '' 我无法打开注册表。

正在寻求您的帮助。提前致谢。

在字符串中使用 '' 转义单引号效果非常好。结果字符串包含单个字符。这就是逃避它的全部意义所在。要让自己相信这一点,请尝试将这样的字符串写入控制台,或将其显示在消息框中。

{$APPTYPE CONSOLE}
begin
  Writeln('XXX''XXX');
end.

这个程序输出:

XXX'XXX

实际情况是您的问题出在别处。可能的原因包括:

  • 你弄错了路径,或者
  • 您没有考虑注册表重定向,或者
  • 您的用户没有足够的权限使用您请求的权限打开密钥。