Ver Mensaje Individual
  #1  
Antiguo 30-05-2008
alquimista alquimista is offline
Miembro
 
Registrado: ene 2008
Posts: 203
Reputación: 17
alquimista Va por buen camino
Obtener carpetas especiales de usuario (Ej.- C:\Documents and Settings\All Users\Datos de programa

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
    { Private declarations }
  public
    { Public declarations }
  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(*true crea la carpeta *)) ;
   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.
Responder Con Cita