用delphi如何读取注册表的reg_sz键值
比如我要读取卡巴的启动键值然后赋值给变量S1,然后在用winexec启动卡巴
也就是说读取他的启动路径然后winexec运行

解决方案 »

  1.   

    它们都让俺向你推荐使用Registry对象。
      

  2.   

    var
      s:tregistry;
    begin
      s:=tregistry.create();
      s.rootkey:=''; /设置根键
      s.openkey('');//打开要操作的主键
      s.readstring('');//读取该键值下的值
      s.free;
    end;
      

  3.   

    uses中加入Registry,然后直接定义TRegistry的对象就行,自带的几个函数一看就明白,大概就是open,create了
      

  4.   

    program Project2;{$APPTYPE CONSOLE}uses
      SysUtils,
      Registry,
      windows;
    procedure so;var s:Tregistry;begin
    s:=tregistry.create;
    s.rootkey:=HKEY_LOCAL_MACHINE;
    s.openkey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',true);
    s.readstring('AVP');
    s.free;
    end;begin
    so;
    WinExec('"s"',SW_HIDE );
    end.这是我写的代码为什么不能启动卡巴呢?键值绝对是有的,各位大虾帮忙看看,小弟刚学delphi希望你们能给出代码,谢谢拉
      

  5.   

    WinExec('"C:\Program Files\Kaspersky Lab\Kaspersky Anti-Virus 7.0\avp.exe"',SW_HIDE );
    如果我这样直接写卡巴的路径就可以启动的,我现在就是想怎么把注册表的AVP键值读取出来然后传递给一个变量 直接替代绝对路径,谢谢各位了
      

  6.   

    回复四楼:启动不了的原因在于:winexec原型为:UINT WINAPI WinExec(
      __in  LPCSTR lpCmdLine,
      __in  UINT uCmdShow
    );WinExec('"s"',SW_HIDE   );这样的话,winexec将会认为"s".exe是一个程序. 事实上,这是个非法的文件名,所以不可能执行喽。