Page 1 of 1
Level of battery
Posted: Fri Nov 11, 2005 4:51 pm
by Maurizio
It is possible to have in the programm the level of battery ,
the level of WiFi signal , the amount of memory free ?
Regards Maurizio
www.nipeservice.com
Posted: Fri Nov 11, 2005 8:50 pm
by pawelu
Maurizio,
try this:
Code: Select all
HB_FUNC (BATTERYINFO)
{
BOOL iRet;
SYSTEM_POWER_STATUS_EX status;
iRet = GetSystemPowerStatusEx (&status, TRUE);
hb_reta (9);
hb_stornl ((INT) status.ACLineStatus, -1, 1);
hb_stornl ((INT) status.BatteryFlag, -1, 2);
hb_stornl ((INT) status.BatteryLifePercent, -1, 3);
hb_stornl ((ULONG) status.BatteryLifeTime, -1, 4);
hb_stornl ((ULONG) status.BatteryFullLifeTime, -1, 5);
hb_stornl ((INT) status.BackupBatteryFlag, -1, 6);
hb_stornl ((INT) status.BackupBatteryLifePercent, -1, 7);
hb_stornl ((ULONG) status.BackupBatteryLifeTime, -1, 8);
hb_stornl ((ULONG) status.BackupBatteryFullLifeTime, -1, 9);
}
HB_FUNC (MEMINFO)
{
MEMORYSTATUS st;
GlobalMemoryStatus (&st);
hb_reta (4);
hb_stornl ((ULONG) st.dwMemoryLoad, -1, 1);
hb_stornl ((ULONG) st.dwTotalPhys, -1, 2);
hb_stornl ((ULONG) st.dwTotalVirtual, -1, 3);
hb_stornl ((ULONG) st.dwAvailVirtual, -1, 4);
}
HB_FUNC (DISKINFO)
{
BOOL iRet;
unsigned __int64 iFreeBytesToCaller, iTotalBytes, iFreeBytes;
iRet = GetDiskFreeSpaceEx(NULL,
(PULARGE_INTEGER) &iFreeBytesToCaller,
(PULARGE_INTEGER) &iTotalBytes,
(PULARGE_INTEGER) &iFreeBytes);
hb_reta (2);
hb_stornl ((ULONG) iTotalBytes, -1, 1);
hb_stornl ((ULONG) iFreeBytes, -1, 2);
}
Regards
Pawel
Posted: Sat Nov 12, 2005 9:47 am
by Maurizio
Hello Antonio
what include I hav e to link to ?
I try
#include "hbapi.h"
Regards MAurizio
www.nipeservice.com
Posted: Sat Nov 12, 2005 9:50 am
by Maurizio
OK I Found
#pragma BEGINDUMP
#include <hbapi.h>
#include <windows.h>
#include <aygshell.h>
Maurizio
Posted: Sat Nov 12, 2005 10:20 am
by Maurizio
Hello Antonio
do not work
Regards Maurizio
Posted: Sat Nov 12, 2005 10:22 am
by josevalle
Hello.
I know nothing about C and I want to use that functions.
With the code you post I did a File util1.c and put there the function posted by Pawelo and the headers posted by Maurizio. Changed the build.bat for compiling... but How do I use them?
Thanks for your help
Posted: Sat Nov 12, 2005 10:27 am
by Maurizio
You can put it in a prg with
#pragma BEGINDUMP
#include <hbapi.h>
#include <windows.h>
#include <aygshell.h>
Regards Maurizio
www.nipeservice.com
Posted: Sat Nov 12, 2005 11:50 am
by pawelu
to include C source code (Prg file)
Code: Select all
#pragma BEGINDUMP
#include <hbapi.h>
#include <windows.h>
#include <aygshell.h>
// HB_FUNC (NAME)
// {
// }
#pragma ENDDUMP
I have tested info function and return value is Ok. Battery info doesn't work on emulator.
Pawel
Posted: Sat Nov 12, 2005 12:50 pm
by josevalle
I have done that but I get an Emty .c file.
Please tell me how do I call that function. I use
BATTERYINFO()
And get a linker error
pda.obj : error LNK2001: unresolved external symbol "void __cdecl HB_FUN_BATTERYINFO(void)" (?HB_FUN_BATTERYINFO@@YAXXZ)
pda.exe : fatal error LNK1120: 1 unresolved externals
Thanks for your help
Posted: Sat Nov 12, 2005 4:51 pm
by pawelu
Jose,
Function BATTERYINFO must be declared with #pragma BEGINDUMP and #pragma ENDDUMP section. Return value is 9-elements array. Function should be include in .prg file.
Code: Select all
Function Test ()
Local aBatInfo := BatteryInfo ()
Return .T.
#pragma BEGINDUMP
// #include file
HB_FUNC (BATTERYINFO)
{
// function body
}
#pragma ENDDUMP
This works.
Pawel
Posted: Sat Nov 12, 2005 7:32 pm
by josevalle
Thanks Pawel, now it also works for me.
I did not thing that it was so easy to use C functions.
Posted: Mon Nov 14, 2005 9:22 am
by Maurizio
Hello Antonio
Thanks it works very well , it is possible check the level of the wireless to ?
Regards Maurizio