FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Pocket PC Level of battery
Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM

Level of battery

Posted: Fri Nov 11, 2005 04:51 PM

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

Posts: 126
Joined: Thu Oct 06, 2005 10:18 PM

Level of battery

Posted: Fri Nov 11, 2005 08:50 PM
Maurizio,

try this:
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
Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM

Level of battery

Posted: Sat Nov 12, 2005 09:47 AM

Hello Antonio

what include I hav e to link to ?

I try

include "hbapi.h"

Regards MAurizio

www.nipeservice.com

Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM

Level of battery

Posted: Sat Nov 12, 2005 09:50 AM

OK I Found

pragma BEGINDUMP

include <hbapi.h>

include <windows.h>

include <aygshell.h>

Maurizio

Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM

Level of battery

Posted: Sat Nov 12, 2005 10:20 AM

Hello Antonio
do not work

Regards Maurizio

Posts: 65
Joined: Fri Oct 14, 2005 06:20 PM

Level of battery

Posted: Sat Nov 12, 2005 10:22 AM

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
Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM

Level of battery

Posted: Sat Nov 12, 2005 10:27 AM

You can put it in a prg with

pragma BEGINDUMP

include <hbapi.h>

include <windows.h>

include <aygshell.h>

Regards Maurizio

www.nipeservice.com

Posts: 126
Joined: Thu Oct 06, 2005 10:18 PM

Level of battery

Posted: Sat Nov 12, 2005 11:50 AM
to include C source code (Prg file)

#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
Posts: 65
Joined: Fri Oct 14, 2005 06:20 PM

Level of battery

Posted: Sat Nov 12, 2005 12:50 PM

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
Posts: 126
Joined: Thu Oct 06, 2005 10:18 PM

Level of battery

Posted: Sat Nov 12, 2005 04:51 PM
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.

Function Test ()

   Local aBatInfo := BatteryInfo ()

Return .T.

#pragma BEGINDUMP

// #include file

HB_FUNC (BATTERYINFO)
{
   // function body
}

#pragma ENDDUMP


This works.
Pawel
Posts: 65
Joined: Fri Oct 14, 2005 06:20 PM

Level of battery

Posted: Sat Nov 12, 2005 07:32 PM

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
Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM

Level of battery

Posted: Mon Nov 14, 2005 09:22 AM

Hello Antonio

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

Regards Maurizio

Continue the discussion