In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Datos de la memoria y datos del disco
Datos de la memoria y datos del disco
Saludos:
En la aplicación que estoy pasado del sistema anterior a Xailer tenía en
una pantalla de información del tipo acerca de... una serie de datos de
información sobre la memoria y capacidad del disco donde se está ejecutando
la aplicación, algunas cosas ya las modificado pero tengo dos cosas que no
he podido hacerlas y otra la he hecho pero me gustaría saber si es correcto
lo que he realizado.
1º.- Memoria libre : ¿Es correcto esto que hecho?
#include "hbmemory.ch"
** Memoria libre
nMemoriaLibre := Memory(HB_MEM_RUN) // Da KB.
2º.- Recursos del sistema : Esto no sé si existe alguna función
especifica, se que en la API de Windows se puede obtener con
GlobalMemoryStatus(dwMemoryLoad), pero como implementarla a mi no me ha
salido hay por medio una estructura de datos MEMORYSTATUS la cantidad que
sale son el tanto por ciento de recursos libres del sistema por lo tanto
sale maximo 100.
3º.- Capacidad Total del disco donde se está ejecutando la aplicación.
4º.- Capacidad Libre esta es facil puesto que hay una función
especifica.
Gracias anticipadas.
José Ramón Castro Polinio.
En la aplicación que estoy pasado del sistema anterior a Xailer tenía en
una pantalla de información del tipo acerca de... una serie de datos de
información sobre la memoria y capacidad del disco donde se está ejecutando
la aplicación, algunas cosas ya las modificado pero tengo dos cosas que no
he podido hacerlas y otra la he hecho pero me gustaría saber si es correcto
lo que he realizado.
1º.- Memoria libre : ¿Es correcto esto que hecho?
#include "hbmemory.ch"
** Memoria libre
nMemoriaLibre := Memory(HB_MEM_RUN) // Da KB.
2º.- Recursos del sistema : Esto no sé si existe alguna función
especifica, se que en la API de Windows se puede obtener con
GlobalMemoryStatus(dwMemoryLoad), pero como implementarla a mi no me ha
salido hay por medio una estructura de datos MEMORYSTATUS la cantidad que
sale son el tanto por ciento de recursos libres del sistema por lo tanto
sale maximo 100.
3º.- Capacidad Total del disco donde se está ejecutando la aplicación.
4º.- Capacidad Libre esta es facil puesto que hay una función
especifica.
Gracias anticipadas.
José Ramón Castro Polinio.
José Ramón Castro.
Datos de la memoria y datos del disco
José,
> 1º.- Memoria libre : ¿Es correcto esto que hecho?
>
> #include "hbmemory.ch"
>
> ** Memoria libre
> nMemoriaLibre := Memory(HB_MEM_RUN) // Da KB.
No creo que sea correcto. La memoria en windows es un recurso dinámico, es
decir, windows da o quita memoria a cada proceso en función de las
necesidades concretas de cada momento. Y eso hablando de memoria física,
porque en realidad un programa podría solicitar un bloque de memoria de 2GB
y windows se lo da, aunque físicamente el ordenador tenga sólo 256MB
> 2º.- Recursos del sistema : Esto no sé si existe alguna función
> especifica, se que en la API de Windows se puede obtener con
> GlobalMemoryStatus(dwMemoryLoad), pero como implementarla a mi no me ha
> salido hay por medio una estructura de datos MEMORYSTATUS la cantidad que
> sale son el tanto por ciento de recursos libres del sistema por lo tanto
> sale maximo 100.
En win32, que yo sepa, no hay una forma fiable de conocer los recursos
usados/libres del SO
> 3º.- Capacidad Total del disco donde se está ejecutando la aplicación.
>
> 4º.- Capacidad Libre esta es facil puesto que hay una función
> especifica.
Para ambas puedes usar la función del API GetDiskFreeSpace()
--
Un saludo,
José F. Giménez
http://www.xailer.com
> 1º.- Memoria libre : ¿Es correcto esto que hecho?
>
> #include "hbmemory.ch"
>
> ** Memoria libre
> nMemoriaLibre := Memory(HB_MEM_RUN) // Da KB.
No creo que sea correcto. La memoria en windows es un recurso dinámico, es
decir, windows da o quita memoria a cada proceso en función de las
necesidades concretas de cada momento. Y eso hablando de memoria física,
porque en realidad un programa podría solicitar un bloque de memoria de 2GB
y windows se lo da, aunque físicamente el ordenador tenga sólo 256MB
> 2º.- Recursos del sistema : Esto no sé si existe alguna función
> especifica, se que en la API de Windows se puede obtener con
> GlobalMemoryStatus(dwMemoryLoad), pero como implementarla a mi no me ha
> salido hay por medio una estructura de datos MEMORYSTATUS la cantidad que
> sale son el tanto por ciento de recursos libres del sistema por lo tanto
> sale maximo 100.
En win32, que yo sepa, no hay una forma fiable de conocer los recursos
usados/libres del SO
> 3º.- Capacidad Total del disco donde se está ejecutando la aplicación.
>
> 4º.- Capacidad Libre esta es facil puesto que hay una función
> especifica.
Para ambas puedes usar la función del API GetDiskFreeSpace()
--
Un saludo,
José F. Giménez
http://www.xailer.com
Datos de la memoria y datos del disco
Saludos:
Para poder utilizar las funciones de la API de Windows como debo
implementarlas en xHabourd, he visto por ahí esto:
#pragma BEGINDUMP
#include <windows.h>
#include <xailer.h>
/*
BOOL CopyFile(
LPCTSTR lpExistingFileName, // pointer to name of an existing file
LPCTSTR lpNewFileName, // pointer to filename to copy to
BOOL bFailIfExists // flag for operation if file exists
);
Esta es información es del API y no coincide con el prototipado que estabas
haciendo
*/
XA_FUNC(APICOPYFILE)
{
hb_retl( CopyFile( hb_parc( 1 ), hb_parc( 2 ), FALSE )
}
#pragma ENDDUMP
En mi caso como implementaria GetDiskFreeSpace()
Teniendo en cuenta que la API de Windows contiene la siguiente información:
BOOL GetDiskFreeSpace(
LPCTSTR lpRootPathName, // address of root path
LPDWORD lpSectorsPerCluster, // address of sectors per cluster
LPDWORD lpBytesPerSector, // address of bytes per sector
LPDWORD lpNumberOfFreeClusters, // address of number of free clusters
LPDWORD lpTotalNumberOfClusters // address of total number of clusters
);
Y que a mí mi interesa el valor de lpRootPathName, y como sería
posteriormente la llamada desde Xailer.
Haber si con este ejemplo puedo coger de una vez la implementación en
xhabourd de las llamadas a la API y su forma de utilizarlas posteriormente.
Gracias anticipadas.
José Ramón Castro Polinio.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:[email=44c5eaa2@news.xailer.com...]44c5eaa2@news.xailer.com...[/email]
> José,
>
>> 1º.- Memoria libre : ¿Es correcto esto que hecho?
>>
>> #include "hbmemory.ch"
>>
>> ** Memoria libre
>> nMemoriaLibre := Memory(HB_MEM_RUN) // Da KB.
>
> No creo que sea correcto. La memoria en windows es un recurso dinámico, es
> decir, windows da o quita memoria a cada proceso en función de las
> necesidades concretas de cada momento. Y eso hablando de memoria física,
> porque en realidad un programa podría solicitar un bloque de memoria de
> 2GB
> y windows se lo da, aunque físicamente el ordenador tenga sólo 256MB
>
>
>> 2º.- Recursos del sistema : Esto no sé si existe alguna función
>> especifica, se que en la API de Windows se puede obtener con
>> GlobalMemoryStatus(dwMemoryLoad), pero como implementarla a mi no me ha
>> salido hay por medio una estructura de datos MEMORYSTATUS la cantidad que
>> sale son el tanto por ciento de recursos libres del sistema por lo tanto
>> sale maximo 100.
>
> En win32, que yo sepa, no hay una forma fiable de conocer los recursos
> usados/libres del SO
>
>
>> 3º.- Capacidad Total del disco donde se está ejecutando la aplicación.
>>
>> 4º.- Capacidad Libre esta es facil puesto que hay una función
>> especifica.
>
> Para ambas puedes usar la función del API GetDiskFreeSpace()
>
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
>
Para poder utilizar las funciones de la API de Windows como debo
implementarlas en xHabourd, he visto por ahí esto:
#pragma BEGINDUMP
#include <windows.h>
#include <xailer.h>
/*
BOOL CopyFile(
LPCTSTR lpExistingFileName, // pointer to name of an existing file
LPCTSTR lpNewFileName, // pointer to filename to copy to
BOOL bFailIfExists // flag for operation if file exists
);
Esta es información es del API y no coincide con el prototipado que estabas
haciendo
*/
XA_FUNC(APICOPYFILE)
{
hb_retl( CopyFile( hb_parc( 1 ), hb_parc( 2 ), FALSE )
}
#pragma ENDDUMP
En mi caso como implementaria GetDiskFreeSpace()
Teniendo en cuenta que la API de Windows contiene la siguiente información:
BOOL GetDiskFreeSpace(
LPCTSTR lpRootPathName, // address of root path
LPDWORD lpSectorsPerCluster, // address of sectors per cluster
LPDWORD lpBytesPerSector, // address of bytes per sector
LPDWORD lpNumberOfFreeClusters, // address of number of free clusters
LPDWORD lpTotalNumberOfClusters // address of total number of clusters
);
Y que a mí mi interesa el valor de lpRootPathName, y como sería
posteriormente la llamada desde Xailer.
Haber si con este ejemplo puedo coger de una vez la implementación en
xhabourd de las llamadas a la API y su forma de utilizarlas posteriormente.
Gracias anticipadas.
José Ramón Castro Polinio.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:[email=44c5eaa2@news.xailer.com...]44c5eaa2@news.xailer.com...[/email]
> José,
>
>> 1º.- Memoria libre : ¿Es correcto esto que hecho?
>>
>> #include "hbmemory.ch"
>>
>> ** Memoria libre
>> nMemoriaLibre := Memory(HB_MEM_RUN) // Da KB.
>
> No creo que sea correcto. La memoria en windows es un recurso dinámico, es
> decir, windows da o quita memoria a cada proceso en función de las
> necesidades concretas de cada momento. Y eso hablando de memoria física,
> porque en realidad un programa podría solicitar un bloque de memoria de
> 2GB
> y windows se lo da, aunque físicamente el ordenador tenga sólo 256MB
>
>
>> 2º.- Recursos del sistema : Esto no sé si existe alguna función
>> especifica, se que en la API de Windows se puede obtener con
>> GlobalMemoryStatus(dwMemoryLoad), pero como implementarla a mi no me ha
>> salido hay por medio una estructura de datos MEMORYSTATUS la cantidad que
>> sale son el tanto por ciento de recursos libres del sistema por lo tanto
>> sale maximo 100.
>
> En win32, que yo sepa, no hay una forma fiable de conocer los recursos
> usados/libres del SO
>
>
>> 3º.- Capacidad Total del disco donde se está ejecutando la aplicación.
>>
>> 4º.- Capacidad Libre esta es facil puesto que hay una función
>> especifica.
>
> Para ambas puedes usar la función del API GetDiskFreeSpace()
>
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
>
José Ramón Castro.
Datos de la memoria y datos del disco
José Ramón,
> En mi caso como implementaria GetDiskFreeSpace()
>
> Teniendo en cuenta que la API de Windows contiene la siguiente
> información:
>
> BOOL GetDiskFreeSpace(
> LPCTSTR lpRootPathName, // address of root path
> LPDWORD lpSectorsPerCluster, // address of sectors per cluster
> LPDWORD lpBytesPerSector, // address of bytes per sector
> LPDWORD lpNumberOfFreeClusters, // address of number of free clusters
> LPDWORD lpTotalNumberOfClusters // address of total number of clusters
> );
>
> Y que a mí mi interesa el valor de lpRootPathName, y como sería
> posteriormente la llamada desde Xailer.
>
> Haber si con este ejemplo puedo coger de una vez la implementación en
> xhabourd de las llamadas a la API y su forma de utilizarlas
> posteriormente.
Te la escribo al vuelo (no está probada):
#pragma BEGINDUMP
#include <windows.h>
#include <xailer.h>
XA_FUNC( GETDISKFREESPACE )
{
DWORD lpSectorsPerCluster; // address of sectors per cluster
DWORD lpBytesPerSector; // address of bytes per sector
DWORD lpNumberOfFreeClusters; // address of number of free clusters
DWORD lpTotalNumberOfClusters; // address of total number of clusters
hb_retl( GetDiskFreeSpace( hb_parc( 1 ), &lpSectorsPerCluster,
&lpBytesPerSector,
&lpNumberOfFreeClusters,
&lpTotalNumberOfClusters ) );
hb_stornl( lpSectorsPerCluster, 1 );
hb_stornl( lpBytesPerSector, 2 );
hb_stornl( lpNumberOfFreeClusters, 3 );
hb_stornl( lpTotalNumberOfClusters, 4 );
}
#pragma ENDDUMP
Por cierto, si metes la rutina en un fichero .c en vez de .prg, las líneas
#pragma NO tienes que ponerlas.
--
Un saludo,
José F. Giménez
http://www.xailer.com
> En mi caso como implementaria GetDiskFreeSpace()
>
> Teniendo en cuenta que la API de Windows contiene la siguiente
> información:
>
> BOOL GetDiskFreeSpace(
> LPCTSTR lpRootPathName, // address of root path
> LPDWORD lpSectorsPerCluster, // address of sectors per cluster
> LPDWORD lpBytesPerSector, // address of bytes per sector
> LPDWORD lpNumberOfFreeClusters, // address of number of free clusters
> LPDWORD lpTotalNumberOfClusters // address of total number of clusters
> );
>
> Y que a mí mi interesa el valor de lpRootPathName, y como sería
> posteriormente la llamada desde Xailer.
>
> Haber si con este ejemplo puedo coger de una vez la implementación en
> xhabourd de las llamadas a la API y su forma de utilizarlas
> posteriormente.
Te la escribo al vuelo (no está probada):
#pragma BEGINDUMP
#include <windows.h>
#include <xailer.h>
XA_FUNC( GETDISKFREESPACE )
{
DWORD lpSectorsPerCluster; // address of sectors per cluster
DWORD lpBytesPerSector; // address of bytes per sector
DWORD lpNumberOfFreeClusters; // address of number of free clusters
DWORD lpTotalNumberOfClusters; // address of total number of clusters
hb_retl( GetDiskFreeSpace( hb_parc( 1 ), &lpSectorsPerCluster,
&lpBytesPerSector,
&lpNumberOfFreeClusters,
&lpTotalNumberOfClusters ) );
hb_stornl( lpSectorsPerCluster, 1 );
hb_stornl( lpBytesPerSector, 2 );
hb_stornl( lpNumberOfFreeClusters, 3 );
hb_stornl( lpTotalNumberOfClusters, 4 );
}
#pragma ENDDUMP
Por cierto, si metes la rutina en un fichero .c en vez de .prg, las líneas
#pragma NO tienes que ponerlas.
--
Un saludo,
José F. Giménez
http://www.xailer.com
Datos de la memoria y datos del disco
Saludos:
Dos cosas primero en mi ignorancia creo que falta lpRootPathName en la
implementación, dime si es correcto lo que digo o estoy equivocado.
Segundo te preguntaba el mi anterior cuestión, ¿Como realizaba
posteriormente la llamada desde Xailer?
Gracias.
José Ramón Castro Polinio
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:44c6338e$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> José Ramón,
>
>> En mi caso como implementaria GetDiskFreeSpace()
>>
>> Teniendo en cuenta que la API de Windows contiene la siguiente
>> información:
>>
>> BOOL GetDiskFreeSpace(
>> LPCTSTR lpRootPathName, // address of root path
>> LPDWORD lpSectorsPerCluster, // address of sectors per cluster
>> LPDWORD lpBytesPerSector, // address of bytes per sector
>> LPDWORD lpNumberOfFreeClusters, // address of number of free clusters
>> LPDWORD lpTotalNumberOfClusters // address of total number of
>> clusters
>> );
>>
>> Y que a mí mi interesa el valor de lpRootPathName, y como sería
>> posteriormente la llamada desde Xailer.
>>
>> Haber si con este ejemplo puedo coger de una vez la implementación en
>> xhabourd de las llamadas a la API y su forma de utilizarlas
>> posteriormente.
>
> Te la escribo al vuelo (no está probada):
>
> #pragma BEGINDUMP
> #include <windows.h>
> #include <xailer.h>
>
> XA_FUNC( GETDISKFREESPACE )
> {
> DWORD lpSectorsPerCluster; // address of sectors per cluster
> DWORD lpBytesPerSector; // address of bytes per sector
> DWORD lpNumberOfFreeClusters; // address of number of free clusters
> DWORD lpTotalNumberOfClusters; // address of total number of clusters
>
> hb_retl( GetDiskFreeSpace( hb_parc( 1 ), &lpSectorsPerCluster,
> &lpBytesPerSector,
> &lpNumberOfFreeClusters,
> &lpTotalNumberOfClusters ) );
> hb_stornl( lpSectorsPerCluster, 1 );
> hb_stornl( lpBytesPerSector, 2 );
> hb_stornl( lpNumberOfFreeClusters, 3 );
> hb_stornl( lpTotalNumberOfClusters, 4 );
> }
>
> #pragma ENDDUMP
>
> Por cierto, si metes la rutina en un fichero .c en vez de .prg, las líneas
> #pragma NO tienes que ponerlas.
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
>
Dos cosas primero en mi ignorancia creo que falta lpRootPathName en la
implementación, dime si es correcto lo que digo o estoy equivocado.
Segundo te preguntaba el mi anterior cuestión, ¿Como realizaba
posteriormente la llamada desde Xailer?
Gracias.
José Ramón Castro Polinio
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:44c6338e$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> José Ramón,
>
>> En mi caso como implementaria GetDiskFreeSpace()
>>
>> Teniendo en cuenta que la API de Windows contiene la siguiente
>> información:
>>
>> BOOL GetDiskFreeSpace(
>> LPCTSTR lpRootPathName, // address of root path
>> LPDWORD lpSectorsPerCluster, // address of sectors per cluster
>> LPDWORD lpBytesPerSector, // address of bytes per sector
>> LPDWORD lpNumberOfFreeClusters, // address of number of free clusters
>> LPDWORD lpTotalNumberOfClusters // address of total number of
>> clusters
>> );
>>
>> Y que a mí mi interesa el valor de lpRootPathName, y como sería
>> posteriormente la llamada desde Xailer.
>>
>> Haber si con este ejemplo puedo coger de una vez la implementación en
>> xhabourd de las llamadas a la API y su forma de utilizarlas
>> posteriormente.
>
> Te la escribo al vuelo (no está probada):
>
> #pragma BEGINDUMP
> #include <windows.h>
> #include <xailer.h>
>
> XA_FUNC( GETDISKFREESPACE )
> {
> DWORD lpSectorsPerCluster; // address of sectors per cluster
> DWORD lpBytesPerSector; // address of bytes per sector
> DWORD lpNumberOfFreeClusters; // address of number of free clusters
> DWORD lpTotalNumberOfClusters; // address of total number of clusters
>
> hb_retl( GetDiskFreeSpace( hb_parc( 1 ), &lpSectorsPerCluster,
> &lpBytesPerSector,
> &lpNumberOfFreeClusters,
> &lpTotalNumberOfClusters ) );
> hb_stornl( lpSectorsPerCluster, 1 );
> hb_stornl( lpBytesPerSector, 2 );
> hb_stornl( lpNumberOfFreeClusters, 3 );
> hb_stornl( lpTotalNumberOfClusters, 4 );
> }
>
> #pragma ENDDUMP
>
> Por cierto, si metes la rutina en un fichero .c en vez de .prg, las líneas
> #pragma NO tienes que ponerlas.
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
>
José Ramón Castro.
Datos de la memoria y datos del disco
José Ramón,
> Dos cosas primero en mi ignorancia creo que falta lpRootPathName en la
> implementación, dime si es correcto lo que digo o estoy equivocado.
No, no falta. Es el parámetro hb_parc( 1 )
> Segundo te preguntaba el mi anterior cuestión, ¿Como realizaba
> posteriormente la llamada desde Xailer?
FUNCTION EspacioLibreEnC()
LOCAL nSectoresPorCluster, nBytesPorSector, nClustersLibres,
nClustersTotal
IF GetDiskFreeSpace( "C:", @nSectoresPorCluster, @nBytesPorSector,
@nClustersLibres, @nClustersTotal )
RETURN nSectoresPorCluster * nBytesPorSector * nClustersLibres
ENDIF
RETURN 0
--
Un saludo,
José F. Giménez
http://www.xailer.com
> Dos cosas primero en mi ignorancia creo que falta lpRootPathName en la
> implementación, dime si es correcto lo que digo o estoy equivocado.
No, no falta. Es el parámetro hb_parc( 1 )
> Segundo te preguntaba el mi anterior cuestión, ¿Como realizaba
> posteriormente la llamada desde Xailer?
FUNCTION EspacioLibreEnC()
LOCAL nSectoresPorCluster, nBytesPorSector, nClustersLibres,
nClustersTotal
IF GetDiskFreeSpace( "C:", @nSectoresPorCluster, @nBytesPorSector,
@nClustersLibres, @nClustersTotal )
RETURN nSectoresPorCluster * nBytesPorSector * nClustersLibres
ENDIF
RETURN 0
--
Un saludo,
José F. Giménez
http://www.xailer.com
Datos de la memoria y datos del disco
Gracias Jose F. Gimenez, lo pruebo y te cuento cual es el resultado, aunque
seguro que es el que espero.
José Ramón Castro Polinio.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:[email=44c63c15@news.xailer.com...]44c63c15@news.xailer.com...[/email]
> José Ramón,
>
>> Dos cosas primero en mi ignorancia creo que falta lpRootPathName en la
>> implementación, dime si es correcto lo que digo o estoy equivocado.
>
> No, no falta. Es el parámetro hb_parc( 1 )
>
>
>> Segundo te preguntaba el mi anterior cuestión, ¿Como realizaba
>> posteriormente la llamada desde Xailer?
>
> FUNCTION EspacioLibreEnC()
>
> LOCAL nSectoresPorCluster, nBytesPorSector, nClustersLibres,
> nClustersTotal
>
> IF GetDiskFreeSpace( "C:", @nSectoresPorCluster, @nBytesPorSector,
> @nClustersLibres, @nClustersTotal )
> RETURN nSectoresPorCluster * nBytesPorSector * nClustersLibres
> ENDIF
>
> RETURN 0
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
>
>
seguro que es el que espero.
José Ramón Castro Polinio.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:[email=44c63c15@news.xailer.com...]44c63c15@news.xailer.com...[/email]
> José Ramón,
>
>> Dos cosas primero en mi ignorancia creo que falta lpRootPathName en la
>> implementación, dime si es correcto lo que digo o estoy equivocado.
>
> No, no falta. Es el parámetro hb_parc( 1 )
>
>
>> Segundo te preguntaba el mi anterior cuestión, ¿Como realizaba
>> posteriormente la llamada desde Xailer?
>
> FUNCTION EspacioLibreEnC()
>
> LOCAL nSectoresPorCluster, nBytesPorSector, nClustersLibres,
> nClustersTotal
>
> IF GetDiskFreeSpace( "C:", @nSectoresPorCluster, @nBytesPorSector,
> @nClustersLibres, @nClustersTotal )
> RETURN nSectoresPorCluster * nBytesPorSector * nClustersLibres
> ENDIF
>
> RETURN 0
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
>
>
José Ramón Castro.
Datos de la memoria y datos del disco
Jose F.
Debo estar haciendo algo mal, porque las cantidades que me dá la función
no se ajustan a la realidad, y además si a la función le sustituyo el tercer
parametro por el cuarto me dá un error como paramentro NIL.
Haber si alguno prueba y me dice si a él le da correcto o en realidad es
que hay algún error.
No tengo prisa porque no es una cosa prioritaría del programa.
José Ramón Castro Polinio.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:[email=44c63c15@news.xailer.com...]44c63c15@news.xailer.com...[/email]
> José Ramón,
>
>> Dos cosas primero en mi ignorancia creo que falta lpRootPathName en la
>> implementación, dime si es correcto lo que digo o estoy equivocado.
>
> No, no falta. Es el parámetro hb_parc( 1 )
>
>
>> Segundo te preguntaba el mi anterior cuestión, ¿Como realizaba
>> posteriormente la llamada desde Xailer?
>
> FUNCTION EspacioLibreEnC()
>
> LOCAL nSectoresPorCluster, nBytesPorSector, nClustersLibres,
> nClustersTotal
>
> IF GetDiskFreeSpace( "C:", @nSectoresPorCluster, @nBytesPorSector,
> @nClustersLibres, @nClustersTotal )
> RETURN nSectoresPorCluster * nBytesPorSector * nClustersLibres
> ENDIF
>
> RETURN 0
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
>
>
Debo estar haciendo algo mal, porque las cantidades que me dá la función
no se ajustan a la realidad, y además si a la función le sustituyo el tercer
parametro por el cuarto me dá un error como paramentro NIL.
Haber si alguno prueba y me dice si a él le da correcto o en realidad es
que hay algún error.
No tengo prisa porque no es una cosa prioritaría del programa.
José Ramón Castro Polinio.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:[email=44c63c15@news.xailer.com...]44c63c15@news.xailer.com...[/email]
> José Ramón,
>
>> Dos cosas primero en mi ignorancia creo que falta lpRootPathName en la
>> implementación, dime si es correcto lo que digo o estoy equivocado.
>
> No, no falta. Es el parámetro hb_parc( 1 )
>
>
>> Segundo te preguntaba el mi anterior cuestión, ¿Como realizaba
>> posteriormente la llamada desde Xailer?
>
> FUNCTION EspacioLibreEnC()
>
> LOCAL nSectoresPorCluster, nBytesPorSector, nClustersLibres,
> nClustersTotal
>
> IF GetDiskFreeSpace( "C:", @nSectoresPorCluster, @nBytesPorSector,
> @nClustersLibres, @nClustersTotal )
> RETURN nSectoresPorCluster * nBytesPorSector * nClustersLibres
> ENDIF
>
> RETURN 0
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
>
>
José Ramón Castro.
Datos de la memoria y datos del disco
José Ramón,
> Debo estar haciendo algo mal, porque las cantidades que me dá la
> función
> no se ajustan a la realidad, y además si a la función le sustituyo el
> tercer
> parametro por el cuarto me dá un error como paramentro NIL.
Tienes razón, hay un error en el retorno de parámetros. Cambia:
hb_stornl( lpSectorsPerCluster, 1 );
hb_stornl( lpBytesPerSector, 2 );
hb_stornl( lpNumberOfFreeClusters, 3 );
hb_stornl( lpTotalNumberOfClusters, 4 );
por:
hb_stornl( lpSectorsPerCluster, 2 );
hb_stornl( lpBytesPerSector, 3 );
hb_stornl( lpNumberOfFreeClusters, 4 );
hb_stornl( lpTotalNumberOfClusters, 5 );
--
Un saludo,
José F. Giménez
http://www.xailer.com
> Debo estar haciendo algo mal, porque las cantidades que me dá la
> función
> no se ajustan a la realidad, y además si a la función le sustituyo el
> tercer
> parametro por el cuarto me dá un error como paramentro NIL.
Tienes razón, hay un error en el retorno de parámetros. Cambia:
hb_stornl( lpSectorsPerCluster, 1 );
hb_stornl( lpBytesPerSector, 2 );
hb_stornl( lpNumberOfFreeClusters, 3 );
hb_stornl( lpTotalNumberOfClusters, 4 );
por:
hb_stornl( lpSectorsPerCluster, 2 );
hb_stornl( lpBytesPerSector, 3 );
hb_stornl( lpNumberOfFreeClusters, 4 );
hb_stornl( lpTotalNumberOfClusters, 5 );
--
Un saludo,
José F. Giménez
http://www.xailer.com
Datos de la memoria y datos del disco
Jose F.
Ahora perfecto muchas gracias.
José Ramón Castro Polinio.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:44c8a2d7$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> José Ramón,
>
>> Debo estar haciendo algo mal, porque las cantidades que me dá la
>> función
>> no se ajustan a la realidad, y además si a la función le sustituyo el
>> tercer
>> parametro por el cuarto me dá un error como paramentro NIL.
>
> Tienes razón, hay un error en el retorno de parámetros. Cambia:
>
> hb_stornl( lpSectorsPerCluster, 1 );
> hb_stornl( lpBytesPerSector, 2 );
> hb_stornl( lpNumberOfFreeClusters, 3 );
> hb_stornl( lpTotalNumberOfClusters, 4 );
>
> por:
>
> hb_stornl( lpSectorsPerCluster, 2 );
> hb_stornl( lpBytesPerSector, 3 );
> hb_stornl( lpNumberOfFreeClusters, 4 );
> hb_stornl( lpTotalNumberOfClusters, 5 );
>
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
>
Ahora perfecto muchas gracias.
José Ramón Castro Polinio.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:44c8a2d7$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> José Ramón,
>
>> Debo estar haciendo algo mal, porque las cantidades que me dá la
>> función
>> no se ajustan a la realidad, y además si a la función le sustituyo el
>> tercer
>> parametro por el cuarto me dá un error como paramentro NIL.
>
> Tienes razón, hay un error en el retorno de parámetros. Cambia:
>
> hb_stornl( lpSectorsPerCluster, 1 );
> hb_stornl( lpBytesPerSector, 2 );
> hb_stornl( lpNumberOfFreeClusters, 3 );
> hb_stornl( lpTotalNumberOfClusters, 4 );
>
> por:
>
> hb_stornl( lpSectorsPerCluster, 2 );
> hb_stornl( lpBytesPerSector, 3 );
> hb_stornl( lpNumberOfFreeClusters, 4 );
> hb_stornl( lpTotalNumberOfClusters, 5 );
>
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
>
José Ramón Castro.