Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-11-2006
Egroc Egroc is offline
Registrado
 
Registrado: jun 2004
Posts: 9
Poder: 0
Egroc Va por buen camino
Conocer la carpeta del usuario

Hola. Tengo un pequeño problema al que no consigo darle respuesta. He buscado en la web y en todos los foros que he encontrado pero no veo la solución.

El problema consiste en cómo saber la ruta de la carpeta del usuario en Windows. Es decir, la ruta tipo "C:\Documents and Settings\NombreUsuario\" en borland delphi.

Creo que se puede hacer con GetEnvironmentVariable pero desconozco el nombre de la misma para obtener este resultado.

Gracias.
Responder Con Cita
  #2  
Antiguo 08-11-2006
oscarnoe oscarnoe is offline
Miembro
 
Registrado: jul 2006
Posts: 60
Poder: 18
oscarnoe Va por buen camino
La variable de entorno que buscas es USERPROFILE.

Si quieres saber las variables de entorno en tu sistema, ejecuta una linea de comandos y el comando SET a secas.

Espero que te sirva de ayuda.

Oscar Noe
Responder Con Cita
  #3  
Antiguo 08-11-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola, a ver si te sirve esto:

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ShFolder, ShlObj;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
  SHGFP_TYPE_CURRENT = 0;
var
  Buffer: array[0..MAX_PATH] of Char;begin
  SHGetFolderPath(0, CSIDL_PERSONAL, 0, SHGFP_TYPE_CURRENT, Buffer); //CSIDL_PERSONAL = es la variable que indica que carpeta queremos obtener
  Edit1.Text := Buffer;
end;

end.

Espero te sirva,

Saludos
Responder Con Cita
  #4  
Antiguo 08-11-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Bicho, me ganaste por segundos

Código Delphi [-]
const
  CSIDL_PROFILE = 40;
  SHGFP_TYPE_CURRENT = 0;

function SHGetFolderPath(hwndOwner: HWND;
  nFolder: Integer;
  hToken: THandle;
  dwFlags: DWORD;
  pszPath: LPTSTR): HRESULT; stdcall;
  external 'Shell32.dll' name 'SHGetFolderPathA';

function GetUserProfile: string;
var
  Buffer: array[0..MAX_PATH] of Char;
begin
  FillChar(Buffer, SizeOf(Buffer), 0);
  SHGetFolderPath(0, CSIDL_PROFILE, 0, SHGFP_TYPE_CURRENT, Buffer);
  Result := String(PChar(@Buffer));
end;

Responder Con Cita
  #5  
Antiguo 08-11-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Cita:
Empezado por seoane
Bicho, me ganaste por segundos
Alguna vez me tocaba, no?
La verdad es que llevaba un buen rato buscando. Creia haberlo visto en algún lado, pero no..., no estaba en ningún sitio.
Luego pensé: fácil, busca el usuario (esa función la tenemos) y luego buscas la carpeta Documents and setting + usuario, pero me dije, es un poco chapuza, algo debe haber.
Así que empecé a buscar y encontré esa función, sólo jugué un poco con las variables y a la segunda me dio lo que buscabamos.

Saludos
Responder Con Cita
  #6  
Antiguo 08-11-2006
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Vaya, me habéis ahorrado un viaje, porque una pregunta similar a esta iba a hacerla yo dentro de unos meses para un proyecto que tengo pendiente.
Responder Con Cita
  #7  
Antiguo 09-11-2006
Egroc Egroc is offline
Registrado
 
Registrado: jun 2004
Posts: 9
Poder: 0
Egroc Va por buen camino
¡Muchas gracias!, ¡es justo lo que necesitaba!!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
"Saber usuario que movio carpeta en windows" JELIRM Redes 0 28-06-2005 22:30:44
Como cambiar la Carpeta del Usuario en XP omar_e_rc Windows 1 22-06-2005 17:06:33
Conocer sql Ejecutado marrullas Firebird e Interbase 5 17-02-2005 22:11:00
Conocer si un usuario determinado tiene derecho de escritura en registro de Window Rolando Glez API de Windows 4 30-12-2004 08:43:21
Duda sobre sistema ulti-usuario y mono-usuario simon Varios 1 07-06-2004 18:35:44


La franja horaria es GMT +2. Ahora son las 10:32:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi