Archivo poco accesible por el usuario

Archivo poco accesible por el usuario

Postby RodolfoRBG » Tue Aug 16, 2011 5:30 pm

Como todos, busco proteger mis sistemas.

Usando una memoria USB extraiendo el No de serie "Fisico" es la mejor opcion pero el inconveniente es que la pueden perder y deben cargarla para todos lados, ademas para clientes fuera del pais hay que enviarla lo que representa un costo adicional.

En fin, no es ese el punto. Hice un esquema de proteccion usando en parte el serial de la Tarjeta de Red y por otra parte en colocar un archivo oculto en la computadora pero por ejemplo Memowrite("C:\ArchOcu.Log","Algo") no lo crea, seguramente Windows no lo permite.

Alguna idea?
RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
User avatar
RodolfoRBG
 
Posts: 257
Joined: Tue May 16, 2006 4:46 pm
Location: San Luis Potosi, SLP, Mexico

Re: Archivo poco accesible por el usuario

Postby carlos vargas » Tue Aug 16, 2011 5:56 pm

en w7, no te permitira escribir el archivo en esa ubicacion, prueba ponerlo en

?Memowrite( GetEnv( "LOCALAPPDATA" ) + "\"+"ArchOcu.Log","Algo")
?Memoread(GetEnv( "LOCALAPPDATA" ) + "\"+"ArchOcu.Log")


salu2
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1687
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Archivo poco accesible por el usuario

Postby RodolfoRBG » Tue Aug 16, 2011 7:08 pm

Excelente idea Don Carlos, pero si otro usuario en la misma computadora lo corre, el sistema no lo encontrara.
Cual seria el parametro para que usara el directorio de todos los usuarios?

'chas gracias
RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
User avatar
RodolfoRBG
 
Posts: 257
Joined: Tue May 16, 2006 4:46 pm
Location: San Luis Potosi, SLP, Mexico

Re: Archivo poco accesible por el usuario

Postby carlos vargas » Tue Aug 16, 2011 8:28 pm

GetEnv("ALLUSERPROFILE")
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1687
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Archivo poco accesible por el usuario

Postby RodolfoRBG » Tue Aug 16, 2011 8:36 pm

Gracias por responder pero SFN2LFN(GetEnv("ALLUSERPROFILE")) me regresa "en blanco". Tengo WVista y estoy buscando que al menos trabaje en XP, Vista y 7
RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
User avatar
RodolfoRBG
 
Posts: 257
Joined: Tue May 16, 2006 4:46 pm
Location: San Luis Potosi, SLP, Mexico

Re: Archivo poco accesible por el usuario

Postby carlos vargas » Wed Aug 17, 2011 12:46 pm

Code: Select all  Expand view

/*
#define CSIDL_LOCAL_APPDATA             0x001c      // non roaming, user\Local Settings\Application Data
#define CSIDL_INTERNET_CACHE            0x0020
#define CSIDL_COOKIES                         0x0021
#define CSIDL_HISTORY                         0x0022
#define CSIDL_COMMON_APPDATA         0x0023      // All Users\Application Data
#define CSIDL_WINDOWS                       0x0024      // GetWindowsDirectory()
#define CSIDL_SYSTEM                          0x0025      // GetSystemDirectory()
#define CSIDL_PROGRAM_FILES             0x0026      // C:\Program Files
#define CSIDL_MYPICTURES                  0x0027      // My Pictures, new for Win2K
#define CSIDL_PROGRAM_FILES_COMMON      0x002b      // C:\Program Files\Common
#define CSIDL_COMMON_DOCUMENTS            0x002e      // All Users\Documents
#define CSIDL_RESOURCES                    0x0038      // %windir%\Resources\, For
*/

procedure main()
?GetFolderAppData()
?GetFolderMyDocuments()
?GetFolderMyPictures()
?GetFolderMyTemp()
return
/*-------------------------------------------------------------------------------------------------*/

FUNCTION GetFolderMyDocuments()
   LOCAL cFolder := ""

   cFolder := GetSpecialFolder( CSIDL_PERSONAL )

RETURN cFolder

/*-------------------------------------------------------------------------------------------------*/

FUNCTION GetFolderMyPictures()
   LOCAL cFolder := ""

   cFolder := GetSpecialFolder( CSIDL_MYPICTURES )

RETURN cFolder

/*-------------------------------------------------------------------------------------------------*/

FUNCTION GetFolderMyTemp()
   LOCAL cFolder := ""

//   cFolder := GetEnv( "TEMP" )
   cFolde  := CGetSpecialFolder( CSIDL_LOCAL_APPDATA ) + "\local\temp"

RETURN cFolder

/*-------------------------------------------------------------------------------------------------*/

FUNCTION GetSpecialFolder( nCSIDL )
   LOCAL cFolder

   cFolder := CGetSpecialFolder( nCSIDL )

RETURN cFolder

/*-------------------------------------------------------------------------------------------------*/

FUNCTION GetFolderAppData( nCSIDL )
   LOCAL cFolder

   cFolder := CGetSpecialFolder( CSIDL_COMMON_APPDATA )

RETURN cFolder

/*-------------------------------------------------------------------------------------------------*/
#pragma BEGINDUMP

#ifndef __BORLANDC__
#define WINVER 5
#endif

#include "hbapi.h"
#include "hbapiitm.h"
#include "hbapierr.h"
#include "hbdate.h"

#include "shlobj.h"
#include "windows.h"


HB_FUNC( CGETSPECIALFOLDER )
{
   char *lpBuffer = (char*) hb_xgrab( MAX_PATH + 1 );

   LPITEMIDLIST pidlBrowse;

   SHGetSpecialFolderLocation( GetActiveWindow(), hb_parni(1) , &pidlBrowse );
   SHGetPathFromIDList( pidlBrowse, lpBuffer );

   hb_retc(  lpBuffer );
   hb_xfree( lpBuffer );
}

 
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1687
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Archivo poco accesible por el usuario

Postby Manuel Valdenebro » Thu Aug 18, 2011 7:09 am

Carlos,

Gracias por tu aportación. La he probado y funciona estupendamente. He reducido la fuente y la publico por si a alguien le interesara:

Code: Select all  Expand view
#include "fivewin.ch"
#define CSIDL_LOCAL_APPDATA       0x001c    //  user\Local Settings\Application Data
#define CSIDL_PERSONAL                 0x0005      // user\MyDocument
#define CSIDL_INTERNET_CACHE      0x0020
#define CSIDL_COOKIES                   0x0021
#define CSIDL_HISTORY                   0x0022
#define CSIDL_COMMON_APPDATA   0x0023      // All Users\Application Data
#define CSIDL_WINDOWS                 0x0024      // GetWindowsDirectory()
#define CSIDL_SYSTEM                    0x0025      // GetSystemDirectory()
#define CSIDL_PROGRAM_FILES       0x0026      // C:\Program Files
#define CSIDL_MYPICTURES             0x0027      // My Pictures, new for Win2K
#define CSIDL_PROGRAM_FILES_COMMON   0x002b  // C:\Program Files\Common
#define CSIDL_COMMON_DOCUMENTS  0x002e      // All Users\Documents
#define CSIDL_RESOURCES               0x0038      // %windir%\Resources\, For

FUNCTION fWindows()
?cGetSpecialFolder( CSIDL_LOCAL_APPDATA ) + "\local\temp"
?cGetSpecialFolder( CSIDL_PERSONAL )
?cGetSpecialFolder( CSIDL_INTERNET_CACHE)
?cGetSpecialFolder( CSIDL_COOKIES)
?cGetSpecialFolder( CSIDL_HISTORY)
?cGetSpecialFolder( CSIDL_COMMON_APPDATA )
?cGetSpecialFolder( CSIDL_WINDOWS)
?cGetSpecialFolder( CSIDL_SYSTEM)
?cGetSpecialFolder( CSIDL_PROGRAM_FILES)
?cGetSpecialFolder( CSIDL_MYPICTURES )
?cGetSpecialFolder( CSIDL_PROGRAM_FILES_COMMON)
?cGetSpecialFolder( CSIDL_COMMON_DOCUMENTS)
?cGetSpecialFolder( CSIDL_RESOURCES)

return nil


/*-------------------------------------------------------------------------------------------------*/
#pragma BEGINDUMP

#ifndef __BORLANDC__
#define WINVER 5
#endif

#include "hbapi.h"
#include "hbapiitm.h"
#include "hbapierr.h"
#include "hbdate.h"

#include "shlobj.h"
#include "windows.h"


HB_FUNC( CGETSPECIALFOLDER )
{
   char *lpBuffer = (char*) hb_xgrab( MAX_PATH + 1 );

   LPITEMIDLIST pidlBrowse;

   SHGetSpecialFolderLocation( GetActiveWindow(), hb_parni(1) , &pidlBrowse );
   SHGetPathFromIDList( pidlBrowse, lpBuffer );

   hb_retc(  lpBuffer );
   hb_xfree( lpBuffer );
}

 
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Re: Archivo poco accesible por el usuario

Postby carlos vargas » Thu Aug 18, 2011 2:45 pm

aclaro que no fui yo el creador, no recuerdo quien es (lo siento), pero igualmente agradesco a ese colaborador por compartir el codigo.

salu2
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1687
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 69 guests