Описание Powerstatus 1.1
Powerstatus 1.1
Дата добавления: |
Powerstatus - бесплатная компактная и полезная утилита отображает текущий статус заряда батарей и свободной памяти на самом верху экрана с помощью двух цветных полосок. C полностью открытым исходным текстом (Powerststus 1.1)
Обновление версии Powerstatus 1.3:
- Исправление ошибок
- Анимированная иконка заряда батареи
- Поддержка WM 5.0
Код версии Powerstatus 1.1:
// powerstatus.cpp : Defines the entry point for the application.
//
#include "Windows.h"
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
SYSTEM_POWER_STATUS_EX pst;
int i,cx,dx,ex,top,c;
HDC hdc = ::GetDC(NULL);
HPEN pe,pb,po,pm;
pe = CreatePen(PS_SOLID,2,RGB(50,200,50));
pm = CreatePen(PS_SOLID,2,RGB(250,150,50));
pb = CreatePen(PS_SOLID,2,RGB(80,80,80));
i=30;
top = 1;
c=0;
while(1) {
i++;
if(i>15){
i=0;
GetSystemPowerStatusEx(&pst,true);
if (pst.ACLineStatus==1) {
pst.BatteryLifePercent=c;
c+=25;if(c>100)c=0;
}
cx = GetSystemMetrics(SM_CXSCREEN) / 2;
dx = (int)(cx * pst.BatteryLifePercent / 100.0);
STORE_INFORMATION ss;
GetStoreInformation(&ss);
MEMORYSTATUS ms;
GlobalMemoryStatus(&ms);
float mfree;
mfree = 1.0f/(ss.dwStoreSize+ms.dwTotalPhys)*(ss.dwFreeSize+ms.dwAvailPhys) ;//+ ms.dwMemoryLoad) / 2;
ex = (int)(cx * mfree);
}
MoveToEx(hdc,0,top,NULL);
po = (HPEN)SelectObject(hdc,pe);
LineTo(hdc,dx,top);
SelectObject(hdc,pb);
LineTo(hdc,cx,top);
SelectObject(hdc,pm);
LineTo(hdc,ex +cx,top);
SelectObject(hdc,pb);
LineTo(hdc,cx*2,top);
SelectObject(hdc,po);
Sleep(100);
}
DeleteObject(pe);
DeleteObject(pm);
DeleteObject(pb);
::ReleaseDC(NULL, hdc);
return 0;
}
Совместимомь: Pocket PC 2002, Windows Mobile 2003, Windows Mobile 2003 SE
Разработчик: Inteks