我让Delphi XE2 项目在 Windows 注册表中写入一些值。我正在尝试在 Delphi 环境中运行 RegEdit。我尝试了以下代码:
procedure TMainForm.BitBtn01Click(Sender: TObject);
begin
ShellExecute(handle,'','C:\WINDOWS\regedit.exe',
'[HKEY_CLASSES_ROOT\CLSID\{00000000-0000-0000-0000-000000000001}\Subnode 01]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,\
00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,\
41,00,70,00,70,00,6c,00,69,00,63,00,61,00,74,00,69,00,6f,00,6e,00,20,00,57,\
00,69,00,7a,00,61,00,72,00,64,00,20,00,30,00,31,00,2e,00,64,00,6c,00,6c,00,\
00,00'
,nil,SW_SHOW);
end;
但它没有编译。我的要求是将子节点 01 的可扩展字符串值写入“%SystemRoot%\System32\Application Wizard 01.dll”。我的项目的活动平台是 32 位,但也添加了 64 位,我的应用程序将以管理员身份在两个平台下运行。
我认为我的问题可以通过调用Wow64DisableWow64FsRedirection Function和Wow64EnableWow64FsRedirection Function来解决。但尚不清楚何时调用它。这是我的项目的另一个细节。