Level of battery

Post Reply
User avatar
Maurizio
Posts: 705
Joined: Mon Oct 10, 2005 1:29 pm
Contact:

Level of battery

Post 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
pawelu
Posts: 126
Joined: Thu Oct 06, 2005 10:18 pm
Location: Poland
Contact:

Post 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
User avatar
Maurizio
Posts: 705
Joined: Mon Oct 10, 2005 1:29 pm
Contact:

Post by Maurizio »

Hello Antonio

what include I hav e to link to ?

I try
#include "hbapi.h"

Regards MAurizio
www.nipeservice.com
User avatar
Maurizio
Posts: 705
Joined: Mon Oct 10, 2005 1:29 pm
Contact:

Post by Maurizio »

OK I Found

#pragma BEGINDUMP

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

Maurizio
User avatar
Maurizio
Posts: 705
Joined: Mon Oct 10, 2005 1:29 pm
Contact:

Post by Maurizio »

Hello Antonio
do not work

Regards Maurizio
User avatar
josevalle
Posts: 65
Joined: Fri Oct 14, 2005 6:20 pm
Location: Bilbao

Post 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
Jose Valle
Bilbao
Spain
User avatar
Maurizio
Posts: 705
Joined: Mon Oct 10, 2005 1:29 pm
Contact:

Post 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
pawelu
Posts: 126
Joined: Thu Oct 06, 2005 10:18 pm
Location: Poland
Contact:

Post 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
User avatar
josevalle
Posts: 65
Joined: Fri Oct 14, 2005 6:20 pm
Location: Bilbao

Post 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
Jose Valle
Bilbao
Spain
pawelu
Posts: 126
Joined: Thu Oct 06, 2005 10:18 pm
Location: Poland
Contact:

Post 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
User avatar
josevalle
Posts: 65
Joined: Fri Oct 14, 2005 6:20 pm
Location: Bilbao

Post by josevalle »

Thanks Pawel, now it also works for me.

I did not thing that it was so easy to use C functions.
Jose Valle
Bilbao
Spain
User avatar
Maurizio
Posts: 705
Joined: Mon Oct 10, 2005 1:29 pm
Contact:

Post by Maurizio »

Hello Antonio

Thanks it works very well , it is possible check the level of the wireless to ?

Regards Maurizio
Post Reply