FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Copiar archivo al Escritorio de Windows.
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Copiar archivo al Escritorio de Windows.
Posted: Thu Nov 18, 2010 10:20 PM

Pués eso,

necesito copiar un archivo al escritorio de Windows y no se como se hace. Alguien lo ha hecho algbuna vez?

Gracias.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: Copiar archivo al Escritorio de Windows.
Posted: Fri Nov 19, 2010 11:36 AM

FiWidi;
Abriendo el Explorador (de XP) podras ver que la ruta es:
C:\Documents and Settings\All Users\Escritorio
De esta forma lo verán todos los usuarios creados en esa PC.
Ahora si lo querés particularizar deberías indicarle para que usario
C:\Documents and Settings\mariog\Escritorio

No obstante no lo vas a poder hacer muy genérico ya que Windows Vista y 7, si mal no recuerdo,lo tratan de otra manera

Saludos

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Copiar archivo al Escritorio de Windows.
Posted: Fri Nov 19, 2010 12:09 PM
FiWidi

Intentalo asi:
Code (fw): Select all Collapse
  cUsuario:= GetEnv( "USERPROFILE" )
  If Left(cUsuario,8)="C:\Users" //Si está en Inglés
        cEscritorio:=cUsuario+"\desktop\ARCHIVO.lnk"
  Else
     cEscritorio:=cUsuario+"\escritorio\ARCHIVO.lnk"
 Endif
COPY FILE C:\ARCHIVO.LNK TO (cEscritorio)


Saludos,

Adhemar
Saludos,



Adhemar C.
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Re: Copiar archivo al Escritorio de Windows.
Posted: Fri Nov 19, 2010 10:20 PM

Gracias a ambos,

Voy a ver como me lo monto.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: Copiar archivo al Escritorio de Windows.
Posted: Sat Nov 20, 2010 09:20 AM
FiveWidi,

No lo tengo a mano, pero lo que yo hago es coger el path del escritorio de una clave del registro de windows. No lo cojo de variables de entorno ni otros sitios por la variedad de situaciones que se dan y que, creo, sólo cogiéndolo del registro no falla: Terminal Service, Versiones Windows, cambio del usuario, etc.

Saludos


FiveWiDi wrote:Gracias a ambos,

Voy a ver como me lo monto.
Posts: 111
Joined: Sat Jan 30, 2010 08:35 AM
Re: Copiar archivo al Escritorio de Windows.
Posted: Sat Nov 20, 2010 10:06 AM
FiWidi;

Hola FiWidi,

Seguro que esta funció te lo soluciona.


Code (fw): Select all Collapse
#define CSIDL_PROGRAMS                  0x0002        // Start  Menu\Programs
#define CSIDL_DESKTOPDIRECTORY          0x0010        // <user  name>\Desktop

Function Main()
Local cEscritorio

cEscritorio:= GETSPECIALFOLDER(CSIDL_DESKTOPDIRECTORY)

Alert(cEscritorio,{"Ok"})


Return cEscritorio

*---------------------------------------------------------------*
Function GETSPECIALFOLDER(nCSIDL) // Contributed By Ryszard Rylko
*---------------------------------------------------------------*
RETURN C_getspecialfolder(nCSIDL)

#pragma BEGINDUMP

#include <windows.h>
#include <shlobj.h>

#include "hbapi.h"
#include "hbapiitm.h"


HB_FUNC( C_GETSPECIALFOLDER ) // Contributed By Ryszard RyRko
{
    char *lpBuffer = (char*) hb_xgrab( MAX_PATH+1);
    LPITEMIDLIST pidlBrowse;    // PIDL selected by user
    SHGetSpecialFolderLocation(GetActiveWindow(), hb_parni(1), &pidlBrowse)  
;
    SHGetPathFromIDList(pidlBrowse, lpBuffer);
    hb_retc(lpBuffer);
    hb_xfree( lpBuffer);
}


#pragma ENDDUMP


Espero que te sirva.

Pere
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Re: Copiar archivo al Escritorio de Windows.
Posted: Sat Nov 20, 2010 01:23 PM
pcordonet wrote:FiWidi;

Hola FiWidi,

Seguro que esta funció te lo soluciona.


Code (fw): Select all Collapse
#define CSIDL_PROGRAMS                  0x0002        // Start  Menu\Programs
#define CSIDL_DESKTOPDIRECTORY          0x0010        // <user  name>\Desktop

Function Main()
Local cEscritorio

cEscritorio:= GETSPECIALFOLDER(CSIDL_DESKTOPDIRECTORY)

Alert(cEscritorio,{"Ok"})


Return cEscritorio

*---------------------------------------------------------------*
Function GETSPECIALFOLDER(nCSIDL) // Contributed By Ryszard Rylko
*---------------------------------------------------------------*
RETURN C_getspecialfolder(nCSIDL)

#pragma BEGINDUMP

#include <windows.h>
#include <shlobj.h>

#include "hbapi.h"
#include "hbapiitm.h"


HB_FUNC( C_GETSPECIALFOLDER ) // Contributed By Ryszard RyRko
{
    char *lpBuffer = (char*) hb_xgrab( MAX_PATH+1);
    LPITEMIDLIST pidlBrowse;    // PIDL selected by user
    SHGetSpecialFolderLocation(GetActiveWindow(), hb_parni(1), &pidlBrowse)  
;
    SHGetPathFromIDList(pidlBrowse, lpBuffer);
    hb_retc(lpBuffer);
    hb_xfree( lpBuffer);
}


#pragma ENDDUMP


Espero que te sirva.

Pere


Ya van apareciendo cosas...

Muchas gracias por el aporte, me será útil sin duda.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Continue the discussion