Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-01-2022
Avatar de darkbits
darkbits darkbits is offline
Miembro
 
Registrado: may 2006
Posts: 280
Poder: 18
darkbits Va por buen camino
Question ¿Cómo puedo guardar el archivo directamente en el escritorio?

hago revivir este hilo
como puedo guardar el archivo directamente en el escritorio? cual sera la direccion que tendria que colocar

Código Delphi [-]
frxPDFExport1.filename:='C:\respaldo\archivo1.PDF';

gracias
__________________
Gracias por su coloración club delphi

darkbits ;)
Responder Con Cita
  #2  
Antiguo 13-01-2022
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Pensaría que con System.Sysutils.GetEnvironmentVariable puedes obtener la ruta del escritorio.

Cita:
Empezado por darkbits Ver Mensaje
Código Delphi [-]

// http://docwiki.embarcadero.com/Libra...onmentVariable
// https://en.wikipedia.org/wiki/Environment_variable
//'APPDATA'; //C:\Users\%UserName%\AppData\Roaming
//'LOCALAPPDATA'; //C:\Users\%UserName%\AppData\Local
//'USERPROFILE'; //C:\Users\%UserName%\

lPath := IncludeTrailingPathDelimiter(GetEnvironmentVariable('USERPROFILE')) + 'Desktop';

frxPDFExport1.filename:= lPath '\archivo1.PDF';
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #3  
Antiguo 27-08-2022
Avatar de darkbits
darkbits darkbits is offline
Miembro
 
Registrado: may 2006
Posts: 280
Poder: 18
darkbits Va por buen camino
Si me funciona, cuando escritorio esta en la unidad C, C:\Users\COMPUTER\Desktop pero cuando cambio de direccion escritorio por seguridad llevo a unidad D y en otras PC esta en E ejm. D:\Users\RAFAEL\Desktop NO me funciona siempre tiene que buscar la unidad C, y me tira un error.

como puedo solucionar ese detalle que siempre apunte a escritorio sin que este buscando en que unidad esta?

agradezco su ayuda




Cita:
Empezado por movorack Ver Mensaje
Pensaría que con System.Sysutils.GetEnvironmentVariable puedes obtener la ruta del escritorio.
__________________
Gracias por su coloración club delphi

darkbits ;)
Responder Con Cita
  #4  
Antiguo 27-08-2022
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y cómo creas un usuario en D: o en otra unidad? que yo recuerde pregunta el nombre del nuevo usuario pero no la unidad donde se alojará.
Responder Con Cita
  #5  
Antiguo 27-08-2022
Avatar de darkbits
darkbits darkbits is offline
Miembro
 
Registrado: may 2006
Posts: 280
Poder: 18
darkbits Va por buen camino
vas a C:\Users\COMPU CLICK derecho ESCRITORIO y PROPIEDADES Y ahi le dices cambiar de ubicación y lo llevo a D o E
y termina D:\Users\Compu\Desktop y en delphi siempre busca c:\Users\Compu\Desktop

yo lo que necesito es que busque DESKTOP que estoy utilizando... sin importar en que unidad este almacenada .../../Compu\Desktop

mil disculpas si no me explique bien.


Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Y cómo creas un usuario en D: o en otra unidad? que yo recuerde pregunta el nombre del nuevo usuario pero no la unidad donde se alojará.
__________________
Gracias por su coloración club delphi

darkbits ;)
Responder Con Cita
  #6  
Antiguo 27-08-2022
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
¡Hola, darkbits!

En el registro de windows, las rutas de Desktop, Pesonal, Favorites, etc. Se almacenan en "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"

Aunque, la primera entrada de registro dice esto

"!Do not use this registry key Use the SHGetFolderPath or SHGetKnownFolderPath function instead"

Yo también muevo las ubicaciones de mis documentos, descargas y escritorio a otra unidad. Por lo tanto en esta llave tengo:

Código:
 
Personal=D:\Users\movorack\Documents
Desktop=D:\Users\movorack\Escritorio
My Pictures=D:\Users\movorack\Imágenes
Volviendo a la recomendación de Microsoft. En la VCL, la función SHGetFolderPath se encuentra en la unidad Winapi.SHFolder y con el código a continuación me muestra la ruta de mi escritorio.

Código Delphi [-]
unit Unit1;

interface

uses
  .. SHFolder;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    function GetSpecialFolder(CSIDL: Integer; ForceFolder: Boolean = False): string;
    function getDesktopFolder: string;
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin  
  ShowMessage(getDesktopFolder); //Resultado: D:\Users\movorack\Escritorio
end;

function TForm1.getDesktopFolder: string;
  const
    CSIDL_DESKTOP = $0000;
begin
  Result := GetSpecialFolder(CSIDL_DESKTOP);
end;

function TForm1.GetSpecialFolder(CSIDL: Integer; ForceFolder: Boolean): string;
CONST
  SHGFP_TYPE_CURRENT = 0;
VAR
  i: Integer;
begin
  SetLength(Result, Max_Path);
  if ForceFolder then
    ShGetFolderPath(0, CSIDL OR CSIDL_FLAG_CREATE, 0, 0, PChar(Result))
  else
    ShGetFolderPath(0, CSIDL, 0, 0, PChar(Result));

  i := Pos(#0, Result);
  if i > 0 then
    SetLength(Result, pred(i));

  Result := IncludeTrailingPathDelimiter(Result);
end;

end.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #7  
Antiguo 27-08-2022
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Aporto mi granito de arena:


Código Delphi [-]
uses
  ... ShlObj



function GetDesktopFolder: string;
var
  Folder: array [0..MAX_PATH] of CHAR;
begin
  SHGetSpecialFolderPath(0, @Folder[0], CSIDL_DESKTOPDIRECTORY, false);
  Result:= Folder;
end;




Saludos.
Responder Con Cita
  #8  
Antiguo 27-08-2022
Avatar de darkbits
darkbits darkbits is offline
Miembro
 
Registrado: may 2006
Posts: 280
Poder: 18
darkbits Va por buen camino
los dos últimos ejemplos que me enviaron FUNCIONAN de primera,
mil gracias por su ayuda.
__________________
Gracias por su coloración club delphi

darkbits ;)
Responder Con Cita
  #9  
Antiguo 28-08-2022
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Otro granito de arena con las constantes para los valores CSIDL_*.

Código Delphi [-]
// Constantes utilizadas por GetSpecialFolderPath;
const
  CSIDL_FLAG_CREATE = $8000;
  { Version 5.0. Combine this CSIDL with any of the following CSIDLs
   to force the creation of the associated folder. }

  CSIDL_ADMINTOOLS = $0030;
  { Version 5.0. The file system directory that is used to store
   administrative tools for an individual user. The Microsoft Management
   Console (MMC) will save customized consoles to this directory, and it
   will roam with the user. }

  CSIDL_ALTSTARTUP = $001d;
  { The file system directory that corresponds to the user's nonlocalized
   Startup program group. }

  CSIDL_APPDATA = $001a;
  { Version 4.71. The file system directory that serves as a common
   repository for application-specific data. A typical path is C:\Documents
   and Settings\username\Application Data. This CSIDL is supported by the
   redistributable Shfolder.dll for systems that do not have the Microsoft
   Internet Explorer 4.0 integrated Shell installed. }

  CSIDL_BITBUCKET = $000a;
  { The virtual folder containing the objects in the user's Recycle Bin. }

  CSIDL_CDBURN_AREA = $003b;
  { Version 6.0. The file system directory acting as a staging area for files
   waiting to be written to CD. A typical path is C:\Documents and Settings\
   username\Local Settings\Application Data\Microsoft\CD Burning. }

  CSIDL_COMMON_ADMINTOOLS = $002f;
  { Version 5.0. The file system directory containing administrative tools
   for all users of the computer. }

  CSIDL_COMMON_ALTSTARTUP = $001e;
  { The file system directory that corresponds to the nonlocalized Startup
   program group for all users. Valid only for Microsoft Windows NT systems. }

  CSIDL_COMMON_APPDATA = $0023;
  { Version 5.0. The file system directory containing application data for
   all users. A typical path is C:\Documents and Settings\All Users\
   Application Data. }

  CSIDL_COMMON_DESKTOPDIRECTORY = $0019;
  { The file system directory that contains files and folders that appear on
   the desktop for all users. A typical path is C:\Documents and Settings\All
   Users\Desktop. Valid only for Windows NT systems. }

  CSIDL_COMMON_DOCUMENTS = $002e;
  { The file system directory that contains documents that are common to all
   users. A typical paths is C:\Documents and Settings\All Users\Documents.
   Valid for Windows NT systems and Microsoft Windows 95 and Windows 98
   systems with Shfolder.dll installed. }

  CSIDL_COMMON_FAVORITES = $001f;
  { The file system directory that serves as a common repository for favorite
   items common to all users. Valid only for Windows NT systems. }

  CSIDL_COMMON_MUSIC = $0035;
  { Version 6.0. The file system directory that serves as a repository for
   music files common to all users. A typical path is C:\Documents and
   Settings\All Users\Documents\My Music. }

  CSIDL_COMMON_PICTURES = $0036;
  { Version 6.0. The file system directory that serves as a repository for
   image files common to all users. A typical path is C:\Documents and
   Settings\All Users\Documents\My Pictures. }

  CSIDL_COMMON_PROGRAMS = $0017;
  { The file system directory that contains the directories for the common
   program groups that appear on the Start menu for all users. A typical
   path is C:\Documents and Settings\All Users\Start Menu\Programs. Valid
   only for Windows NT systems. }

  CSIDL_COMMON_STARTMENU = $0016;
  { The file system directory that contains the programs and folders that
   appear on the Start menu for all users. A typical path is C:\Documents
   and Settings\All Users\Start Menu. Valid only for Windows NT systems. }

  CSIDL_COMMON_STARTUP = $0018;
  { The file system directory that contains the programs that appear in the
   Startup folder for all users. A typical path is C:\Documents and Settings\
   All Users\Start Menu\Programs\Startup. Valid only for Windows NT systems. }

  CSIDL_COMMON_TEMPLATES = $002d;
  { The file system directory that contains the templates that are available
   to all users. A typical path is C:\Documents and Settings\All Users\
   Templates. Valid only for Windows NT systems. }

  CSIDL_COMMON_VIDEO = $0037;
  { Version 6.0. The file system directory that serves as a repository for
   video files common to all users. A typical path is C:\Documents and
   Settings\All Users\Documents\My Videos. }

  CSIDL_COMPUTERSNEARME = $003d;
  { The folder representing other machines in your workgroup. }

  CSIDL_CONNECTIONS = $0031;
  { The virtual folder representing Network Connections, containing network
   and dial-up connections. }

  CSIDL_CONTROLS = $0003;
  { The virtual folder containing icons for the Control Panel applications. }

  CSIDL_COOKIES = $0021;
  { The file system directory that serves as a common repository for
   Internet cookies. A typical path is C:\Documents and Settings\
   username\Cookies. }

  CSIDL_DESKTOP = $0000;
  { The virtual folder representing the Windows desktop, the root
   of the namespace. }

  CSIDL_DESKTOPDIRECTORY = $0010;
  { The file system directory used to physically store file objects on the
   desktop (not to be confused with the desktop folder itself). A typical
   path is C:\Documents and Settings\username\Desktop. }

  CSIDL_DRIVES = $0011;
  { The virtual folder representing My Computer, containing everything on
   the local computer: storage devices, printers, and Control Panel. The
   folder may also contain mapped network drives. }

  CSIDL_FAVORITES = $0006;
  { The file system directory that serves as a common repository for the
   user's favorite items. A typical path is C:\Documents and Settings\
   username\Favorites. }

  CSIDL_FLAG_DONT_UNEXPAND = $2000;
  { Combine with another CSIDL constant to ensure expanding of
   environment variables. }

  CSIDL_FLAG_DONT_VERIFY = $4000;
  { Combine with another CSIDL constant, except for  CSIDL_FLAG_CREATE,
   to return an unverified folder path—with no attempt to create or
   initialize the folder. }

  CSIDL_FONTS = $0014;
  { A virtual folder containing fonts. A typical path is C:\Windows\Fonts. }

  CSIDL_HISTORY = $0022;
  { The file system directory that serves as a common repository for Internet
  history items. }

  CSIDL_INTERNET = $0001;
  { A viritual folder for Internet Explorer (icon on desktop). }

  CSIDL_INTERNET_CACHE = $0020;
  { Version 4.72. The file system directory that serves as a common
   repository for temporary Internet files. A typical path is C:\Documents
   and Settings\username\Local Settings\Temporary Internet Files. }

  CSIDL_LOCAL_APPDATA = $001c;
  { Version 5.0. The file system directory that serves as a data repository
   for local (nonroaming) applications. A typical path is C:\Documents and
   Settings\username\Local Settings\Application Data. }

  CSIDL_MYDOCUMENTS = $000c;
  { Version 6.0. The virtual folder representing the My
   Documents desktop item. }

  CSIDL_MYMUSIC = $000d;
  { The file system directory that serves as a common repository for
   music files. A typical path is C:\Documents and Settings\User\My
   Documents\My Music. }

  CSIDL_MYPICTURES = $0027;
  { Version 5.0. The file system directory that serves as a common
   repository for image files. A typical path is C:\Documents and
   Settings\username\My Documents\My Pictures. }

  CSIDL_MYVIDEO = $000e;
  { Version 6.0. The file system directory that serves as a common
   repository for video files. A typical path is C:\Documents and
   Settings\username\My Documents\My Videos. }

  CSIDL_NETHOOD = $0013;
  { A file system directory containing the link objects that may exist
   in the My Network Places virtual folder. It is not the same as
   CSIDL_NETWORK, which represents the network namespace root. A typical
   path is C:\Documents and Settings\username\NetHood. }

  CSIDL_NETWORK = $0012;
  { A virtual folder representing Network Neighborhood, the root of the
   network namespace hierarchy. }

  CSIDL_PERSONAL = $0005;
  { Version 6.0. The virtual folder representing the My Documents desktop
   item. This is equivalent to  CSIDL_MYDOCUMENTS.
   Previous to Version 6.0. The file system directory used to physically
   store a user's common repository of documents. A typical path is
   C:\Documents and Settings\username\My Documents. This should be
   distinguished from the virtual My Documents folder in the namespace.
   To access that virtual folder, use SHGetFolderLocation, which returns
   the ITEMIDLIST for the virtual location, or refer to the technique
   described in Managing the File System. }

  CSIDL_PHOTOALBUMS = $0045;
  { Windows Vista. The virtual folder used to store photo albums,
   typically username\My Pictures\Photo Albums. }

  CSIDL_PLAYLISTS = $003f;
  { Windows Vista. The virtual folder used to store play albums,
   typically username\My Music\Playlists. }

  CSIDL_PRINTERS = $0004;
  { The virtual folder containing installed printers. }

  CSIDL_PRINTHOOD = $001b;
  { The file system directory that contains the link objects that can
   exist in the Printers virtual folder. A typical path is C:\Documents
   and Settings\username\PrintHood. }

  CSIDL_PROFILE = $0028;
  { Version 5.0. The user's profile folder. A typical path is C:\Documents
   and Settings\username. Applications should not create files or folders
   at this level; they should put their data under the locations referred
   to by  CSIDL_APPDATA or  CSIDL_LOCAL_APPDATA. }

  CSIDL_PROGRAM_FILES = $0026;
  { Version 5.0. The Program Files folder. A typical path is
   C:\Program Files. }

  CSIDL_PROGRAM_FILES_COMMON = $002b;
  { Version 5.0. A folder for components that are shared across
   applications. A typical path is C:\Program Files\Common. Valid
   only for Windows NT, Windows 2000, and Windows XP systems. Not
   valid for Windows Millennium Edition (Windows Me). }

  CSIDL_PROGRAMS = $0002;
  { The file system directory that contains the user's program groups
   (which are themselves file system directories). A typical path is
   C:\Documents and Settings\username\Start Menu\Programs. }

  CSIDL_RECENT = $0008;
  { The file system directory that contains shortcuts to the user's most
   recently used documents. A typical path is C:\Documents and Settings\
   username\My Recent Documents. To create a shortcut in this folder, use
   SHAddToRecentDocs. In addition to creating the shortcut, this function
   updates the Shell's list of recent documents and adds the shortcut to
   the My Recent Documents submenu of the Start menu. }

  CSIDL_RESOURCES = $0038;
  { Windows Vista. The file system directory that contains resource data.
   A typical path is C:\Windows\Resources. }

  CSIDL_SAMPLE_MUSIC = $0040;
  { Windows Vista. The file system directory that contains sample music.
   A typical path is C:\Documents and Settings\username\My Documents\
   My Music\Sample Music. }

  CSIDL_SAMPLE_PLAYLISTS = $0041;
  { Windows Vista. The file system directory that contains sample playlists.
   A typical path is C:\Documents and Settings\username\My Documents\My
   Music\Sample Playlists. }

  CSIDL_SAMPLE_PICTURES = $0042;
  { Windows Vista. The file system directory that contains sample pictures.
   A typical path is C:\Documents and Settings\username\My Documents\My
   Pictures\Sample Pictures. }

  CSIDL_SAMPLE_VIDEOS = $0043;
  { Windows Vista. The file system directory that contains sample videos.
   A typical path is C:\Documents and Settings\username\My Documents\My
   Videos\Sample Videos. }

  CSIDL_SENDTO = $0009;
  { The file system directory that contains Send To menu items. A typical
   path is C:\Documents and Settings\username\SendTo. }

  CSIDL_STARTMENU = $000b;
  { The file system directory containing Start menu items. A typical path
   is C:\Documents and Settings\username\Start Menu. }

  CSIDL_STARTUP = $0007;
  { The file system directory that corresponds to the user's Startup
   program group. The system starts these programs whenever any user
   logs onto Windows NT or starts Windows 95. A typical path is
   C:\Documents and Settings\username\Start Menu\Programs\Startup. }

  CSIDL_SYSTEM = $0025;
  { Version 5.0. The Windows System folder. A typical path is
   C:\Windows\System32. }

  CSIDL_TEMPLATES = $0015;
  { The file system directory that serves as a common repository for
   document templates. A typical path is C:\Documents and
   Settings\username\Templates. }

  CSIDL_WINDOWS = $0024;
{ Version 5.0. The Windows directory or SYSROOT. This corresponds to
   the %windir% or %SYSTEMROOT% environment variables. A typical
   path is C:\Windows. }

function GetSpecialFolderPath(Folder: integer; CanCreate: boolean): string;
var
  FilePath : array [0..MAX_PATH] of char;
begin
  /// Gets path of special system folders
  /// Call this routine as follows:
  /// GetSpecialFolderPath (CSIDL_PERSONAL, false)
  /// returns folder as result
  /// Ejemplo: CSIDL_PERSONAL = 05 = Mis Documentos

  SHGetSpecialFolderPath(0, @FilePath[0], FOLDER, CanCreate);
  Result := FilePath;
end;
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
Guardar y Leer fotos directamente a una base de datos sin antes guardar como archivo rmeckbell Desarrollo en Delphi para Android 6 26-06-2017 18:24:20
Como puedo conectar 3 o 4 monitores a mi laptop para expandir el escritorio? flystar Varios 5 22-04-2010 10:40:09
Api Windows (Como puedo cambiar la foto de mi escritorio si de verdad no quiero) Caral API de Windows 17 19-09-2007 14:53:48
No puedo abrir archivo directamente Manuel Internet 1 29-05-2007 16:03:45


La franja horaria es GMT +2. Ahora son las 15:38:28.


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