在注册表里:
HKEY_LOCAL_MACHINE\software\microsoft\winows\current version
名为:CommonFilesDir

解决方案 »

  1.   

    读注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion目录下
    CommonFilesDir键值
      

  2.   

    注册表中存放着一些特殊目录的路径,但没找到公用目录,希望对你有所帮助
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
      

  3.   

    使用ExpandEnvironmentStrings函数读取系统变量
      

  4.   

    to raptor(猛禽) 
    getsystemdir 得到系统路径
    得到公用路径用??? CommonFilesDir
      

  5.   

    function tform1.getsystemdir:string;
    var
    sysdir:pchar;
    size:dword;
    begin
    size:=MAX_PATH+1;
    result:='';
    getmem(sysdir,size);
    try
    if getsystemdirectory(sysdir,size)<>0 then
    result:=sysdir;
    finally
    freemem(sysdir);
    end;
    end;
      

  6.   

    调用API函数:uses ShlObj;var
      szPath: array[0..MAX_PATH] of Char; // 结果SHGetSpecialFolderPath( Handle, szPath, CSIDL_PROGRAM_FILES_COMMON, False );CSIDL_PROGRAM_FILES_COMMON = $002b
    不过仅用在win2000以上。
      

  7.   

    var
      lpDest :PChar ;
    begin
       lpDest := StrAlloc(101) ;
       ExpandEnvironmentStrings('%CommonProgramFiles%' ,lpDest ,100) ;
       //lpDest即为公用路径
    end ;
      

  8.   

    to raptor(猛禽)  
    写注册表里得键值:系统公用路径\..\..
    怎么写,谢谢
     
      

  9.   

    uses registry;
    ...
    Function GetCommonDir : String;
    Var
      reg : TRegistry;
    Begin
      reg := TRegistry.Create;
      Try
        reg.RootKey := HKEY_LOCAL_MACHINE;
        reg.OpenKey( 'software\microsoft\windows\current version' );
        Result := reg.ReadString( 'CommonFilesDir' );
      Finally
        reg.Free;
      End;
    End;