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
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
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
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)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
FiveWiDi wrote:Gracias a ambos,
Voy a ver como me lo monto.
#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 ENDDUMPpcordonet wrote:FiWidi;
Hola FiWidi,
Seguro que esta funció te lo soluciona.
#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
Un Saludo
Carlos G.
FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home