nixp.ru v3.0

23 января 2017,
понедельник,
11:35:31 MSK

DevOps с компанией «Флант»
anonymous написал 24 ноября 2004 года в 12:27 (1059 просмотров) Ведет себя неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.

Есть комплект мышь+клава беспроводные Производитель A4Tech Мышь RFSWOP-80 Клава RFKBS-26

Задача: Получить индикатор заряда аккумулятора мыши в gkrellm или в каком-либо другом удобоваримом виде

Заранее благодарен

P.S. В M$ эта хрень реализована.

P.P.S. Комплект цепляется по USB. Ядро пересобрано. Slacware 9.1

Victor

Примечание — ядро 2.4.22

TLK

Если это еще актуально или может кому то поможет, но я сделал это так:

Код Visual C++ 2005:

int GetCharge(LPCWSTR drv)

{

HANDLE hDevice;

BOOL bResult;

DWORD* OutBuf;

long long* InBuf;

DWORD ret;

hDevice = CreateFile(drv, FILE_GENERIC_READ | FILE_GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

if (hDevice == INVALID_HANDLE_VALUE)

{

return -1;

}else

{

InBuf = new long long;

*InBuf = 0xFFFFFFFD00000000;

OutBuf = new DWORD;

*OutBuf = 0;

bResult = DeviceIoControl(hDevice, 0×00222848, InBuf, 8, OutBuf, 4, &ret, NULL);

DWORD er = GetLastError();

int res;

if (er != 0)

{

res = -1;

}else

{

res = *OutBuf >> 16;

}

CloseHandle(hDevice);

delete OutBuf;

delete InBuf;

return res;

}

}

Использование:

int c = GetCharge(L«\\\\.\\A4RFUMOU»);

Результат, возвращаемый методом нужно умножить на:

2.065 — для аккумуляторов

1.581 — для батареек

В итоге получаем процент заряда.

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.