var
reg: TRegistry;
begin
reg := TRegistry.Create;
reg.RootKey:=HKEY_CLASSES_ROOT;
reg.OpenKey('*\shell\xxxx\command', true);
reg.WriteString('', '"' + application.ExeName + '" "%1"');
reg.CloseKey;
reg.OpenKey('*\shell\diary', false);
reg.WriteString('', '操作(&C)');
reg.CloseKey;
reg.Free;
showmessage('DONE!');
end;运行时说:failed to set data for "
是 reg.WriteString('', '"' + application.ExeName + '" "%1"');
的问题,但我看不出那儿错了

解决方案 »

  1.   

    reg.OpenKey('*\shell\xxxx\command', true);
    改为
    if reg.OpenKey('*\shell\xxxx\command', true) thenreg.OpenKey('*\shell\diary', false) 
     该为
    if reg.OpenKey('*\shell\diary', false) then通过
      

  2.   

    不是那儿的问题,是 reg.WriteString('', '"' + application.ExeName + '" "%1"');
    的问题,但我看不出那儿错了
      

  3.   

    reg.OpenKey('*\shell\diary', false) 
     该为
    if reg.OpenKey('*\shell\diary', false) then你该过来还是错了吗?我不把你的代码那去运行,错误和你说的一样,但是改掉之后就是好的,没错
      

  4.   

    reg.OpenKey('*\shell\diary', false);
    改为
    reg.OpenKey('*\shell\diary', true);
      

  5.   

    谢谢zfmich() ,按你说的改过后就可以了!!这样的话 wjohenw(天奇) 说的也对!