Carpeta Escritorio en Windows

Carpeta Escritorio en Windows

Postby MarioG » Wed May 26, 2021 12:50 pm

Hola Gente!
Quisiera saber si existe alguna funcion que me devuelva la carpeta Escritorio del Usuario activo en Windows; o al menos la carpeta raiz que contiene estas carpetas

Gracias!
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR


Re: Carpeta Escritorio en Windows

Postby Antonio Linares » Wed May 26, 2021 1:28 pm

Code: Select all  Expand view  RUN

Desde PRG:

MsgInfo( DesktopFolder() )

#pragma BEGINDUMP

#include <windows.h>
#include <shlobj_core.h>
#include <hbapi.h>

HB_FUNC( DESKTOPFOLDER )
{
   char path[ MAX_PATH + 1 ] = { 0 };

   SHGetSpecialFolderPath( NULL, path, CSIDL_DESKTOP, FALSE );
   hb_retc( path );
}

#pragma ENDDUMP
 
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Carpeta Escritorio en Windows

Postby karinha » Wed May 26, 2021 2:15 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7872
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Carpeta Escritorio en Windows

Postby MarioG » Wed May 26, 2021 7:50 pm

Muchas gracias por las respuestas!
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Carpeta Escritorio en Windows

Postby FiveWiDi » Fri May 28, 2021 8:58 pm

Hola,

Yo uso esto:

Code: Select all  Expand view  RUN

*---------------------------------------------------------------*
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
*---------------------------------------------------------------*
 


Así:
GETSPECIALFOLDER( CSIDL_PERSONAL )
GETSPECIALFOLDER( CSIDL_PROGRAM_FILES )
GETSPECIALFOLDER( CSIDL_FAVORITES )
GETSPECIALFOLDER( CSIDL_COMMON_FAVORITES )
GETSPECIALFOLDER( CSIDL_DESKTOPDIRECTORY )
GETSPECIALFOLDER( CSIDL_COMMON_DESKTOPDIRECTORY )
GETSPECIALFOLDER( CSIDL_PROGRAMS )
GETSPECIALFOLDER( CSIDL_COMMON_STARTMENU )
GETSPECIALFOLDER( CSIDL_PROFILE )


Code: Select all  Expand view  RUN

/* ***************************************** */
// Pres del foro de FiveTechSoft el 20/11/2010.
#define CSIDL_PROGRAMS                  0x0002        // Start  Menu\Programs
#define CSIDL_DESKTOPDIRECTORY          0x0010        // <user  name>\Desktop
#define CSIDL_COMMON_STARTMENU          0x0016        // <All Users>\Start Menu
#define CSIDL_COMMON_DESKTOPDIRECTORY   0x0019        // <All Users>\Desktop
#define CSIDL_PROFILE                   0x0028        // C:\Documents and Settings\<user name>
#define CSIDL_PROGRAM_FILES             0x0026        // C:\Program Files
#define CSIDL_FAVORITES                 0x0006        // "C:\Documents and Settings\User\Favorites"
#define CSIDL_COMMON_FAVORITES          0x001F        // "C:\Documents and Settings\All Users\Favorites"
#define CSIDL_MYDOCUMENTS               0x000C        // Virtual "C:\Documents and Settings\username\My Documents"
#define CSIDL_PERSONAL                  0x0005        // "C:\Documents and Settings\user\My Documents"
 


Como ves la info está todo en este foro!!!! ;)
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
FiveWiDi
 
Posts: 1203
Joined: Mon Oct 10, 2005 2:38 pm

Re: Carpeta Escritorio en Windows

Postby MarioG » Sat May 29, 2021 12:43 am

Muchas gracias!
Lo probaré
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: FiveWiDi and 104 guests