冥界3大法王 发表于 2022-11-5 10:00

求教,以下代码咋读取不到?


uses
Registry;
var
Reg2: TRegistry;
a2: string;
begin{Reg2 := TRegistry.Create;
Reg2.rootkey := HKEY_LOCAL_MACHINE;
if Reg2.openkey('SYSTEM\CurrentControlSet\Control\Session Manager\Environment', False) then
    a2 := Reg2.readstring('ANDROID_HOME');
begin
    if Reg2.KeyExists(a2) then
      ShowMessage('ANDROID_HOME键值是:' + a2)
    else
      ShowMessage('不存在ANDROID_HOME');
end}

无闻无问 发表于 2022-11-5 10:43

注册表操作怕是要管理员权限,或者进程提权吧

冥界3大法王 发表于 2022-11-5 10:58

无闻无问 发表于 2022-11-5 10:43
注册表操作怕是要管理员权限,或者进程提权吧

@无闻无问
法王姥爷的电脑向来是最高统帅的权限。

无闻无问 发表于 2022-11-5 12:16

冥界3大法王 发表于 2022-11-5 10:58
@无闻无问
法王姥爷的电脑向来是最高统帅的权限。

能进程提权吗?

lies2014 发表于 2022-11-5 12:35

本帖最后由 lies2014 于 2022-11-5 12:38 编辑

KeyExists(a2)的参数不正确,所以返回肯定不存在,这个函数是判断主键是否存在,你给的是一个键值,如果判断键名是否存在需要用ValueExists,如果判断键值是否存在直接判断a2是否为空uses
Registry;
var
Reg2: TRegistry;
a2: string;
begin
Reg2 := TRegistry.Create;
Reg2.rootkey := HKEY_LOCAL_MACHINE;
if Reg2.openkey('SYSTEM\CurrentControlSet\Control\Session Manager\Environment', False) then
    a2 := Reg2.readstring('ANDROID_HOME');
begin
    if Reg2.ValueExists('ANDROID_HOME') then
      ShowMessage('ANDROID_HOME键值是:' + a2)
    else
      ShowMessage('不存在ANDROID_HOME');
end;
end;

yingwl 发表于 2022-11-5 12:39

xiadongming 发表于 2022-11-5 17:01

页: [1]
查看完整版本: 求教,以下代码咋读取不到?