Para obtener carpetas especiales de usuario a través de la API
Las uses ShlObj,shfolder son para la función ShGetSpecialFolderPath
y para las constantes CSIDL (ver ayuda delphi)
ej.- CSIDL_COMMON_APPDATA es para mostrar la ruta o crear
C:\Documents and Settings\All Users\Datos de programa
Código Delphi
[-]unit Unit8;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ShlObj,shfolder ;
type
TForm8 = class(TForm)
Edit1: TEdit;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
public
end;
var
Form8: TForm8;
implementation
{$R *.dfm}
function CarpetasEspeciales(csidl:cardinal) : string;
var
path: array [0..MAX_PATH] of char;
begin
ShGetSpecialFolderPath(0,@path[0],csidl,false) ;
Result := path;
end;
procedure TForm8.FormCreate(Sender: TObject);
var i: cardinal;
begin
Edit1.Text:= CarpetasEspeciales(CSIDL_COMMON_APPDATA);
for i := 0 to $ff do
memo1.Lines.Add(Inttostr(i)+' : '+CarpetasEspeciales(i));
end;
end.