anonymous
написал 24 ноября 2004 года в 12:27 (1816 просмотров)
Ведет себя
неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.
Есть комплект мышь+клава беспроводные Производитель A4Tech Мышь RFSWOP-80 Клава RFKBS-26
Задача: Получить индикатор заряда аккумулятора мыши в gkrellm или в каком-либо другом удобоваримом виде
Заранее благодарен
P.S. В M$ эта хрень реализована.
P.P.S. Комплект цепляется по USB. Ядро пересобрано. Slacware 9.1
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Примечание — ядро 2.4.22
Если это еще актуально или может кому то поможет, но я сделал это так:
Код 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 — для батареек
В итоге получаем процент заряда.