Что нового

Получение информации о батарее ноутбука или ИБП

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,717
AutoIt: 3.3.6.1
Версия: 0.1

Категория: Система

Описание: Библиотека содержит ряд функций, позволяющие получить разнообразную информацию, а также текущий статус батареи вашего ноутбука или ИБП. Опрос ведется непосредственно на уровне устройства, поэтому, может случиться так, что проще будет использовать функцию _WinAPI_GetSystemPowerStatus() из библиотеки WinAPIEx.au3. Хотя, некоторые данные (производитель батареи, серийный номер, напряжение и т.д.) другим способом получить не удастся. Вообщем, библиотека довольно специфическая, но кому-нибудь может оказаться полезной.

Пример 1:
Код:
#Include <Battery.au3>

Opt('MustDeclareVars', 1)

Global $aData, $iTag, $sDevicePath = _Battery_GetDevicePath()

$iTag = _Battery_GetTag($sDevicePath)
If $iTag Then
	$aData = _Battery_QueryInfo($sDevicePath, $iTag)
	If IsArray($aData) Then
		ConsoleWrite('Battery name:          ' & $aData[0 ] & @CR)
		ConsoleWrite('Manufacture name:      ' & $aData[1 ] & @CR)
		ConsoleWrite('Manufacture date:      ' & $aData[2 ] & @CR)
		ConsoleWrite('Serial number:         ' & $aData[3 ] & @CR)
		ConsoleWrite('Unique ID:             ' & $aData[4 ] & @CR)
		ConsoleWrite('Temperature:           ' & $aData[5 ] & @CR)
		ConsoleWrite('Estimated time:        ' & $aData[6 ] & @CR)
		ConsoleWrite('Capabilities:          ' & $aData[7 ] & @CR)
		ConsoleWrite('Technology:            ' & $aData[8 ] & @CR)
		ConsoleWrite('Chemistry:             ' & $aData[9 ] & @CR)
		ConsoleWrite('Designed capacity:     ' & $aData[10] & @CR)
		ConsoleWrite('Full charged capacity: ' & $aData[11] & @CR)
		ConsoleWrite('Default alert1:        ' & $aData[12] & @CR)
		ConsoleWrite('Default alert2:        ' & $aData[13] & @CR)
		ConsoleWrite('Critical bias:         ' & $aData[14] & @CR)
		ConsoleWrite('Cycle count:           ' & $aData[15] & @CR)
	Else
		Switch @error
			Case 1
				ConsoleWrite('Unable to open the battery device.' & @CR)
			Case 2
				ConsoleWrite('The specified tag does not match that of the current battery tag.' & @CR)
		EndSwitch
	EndIf
Else
	ConsoleWrite('Battery not found.' & @CR)
EndIf

Пример 2:
Код:
#Include <Battery.au3>

Opt('MustDeclareVars', 1)

Global $aData, $iTag, $sDevicePath = _Battery_GetDevicePath()

$iTag = _Battery_GetTag($sDevicePath)
If $iTag Then
	$aData = _Battery_QueryStatus($sDevicePath, $iTag)
	If IsArray($aData) Then
		ConsoleWrite('Power state: ' & $aData[0] & @CR)
		ConsoleWrite('Capacity:    ' & $aData[1] & @CR)
		ConsoleWrite('Voltage:     ' & $aData[2] & @CR)
		ConsoleWrite('Rate:        ' & $aData[3] & @CR)
	Else
		Switch @error
			Case 1
				ConsoleWrite('Unable to open the battery device.' & @CR)
			Case 2
				ConsoleWrite('The specified tag does not match that of the current battery tag.' & @CR)
		EndSwitch
	EndIf
Else
	ConsoleWrite('Battery not found.' & @CR)
EndIf

Источник: Русское сообщество AutoIt
Автор: Yashied
 

Вложения

  • Battery.au3
    21.3 КБ · Просмотры: 38

Belfigor

Модератор
Локальный модератор
Сообщения
3,603
Репутация
941
Восстановите вложение пожалуйста. Очень надо
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,717
Восстановил.
 

urrya

Новичок
Сообщения
159
Репутация
1
Доброго времени суток уважаеиый Yashied.
Купил ибп APC 1500, решил на Autoit сделать запуск exe-шника перед отключением,
которое выполняется по заданным % разряда батареи, но почему то Ваши примеры не
подходят, код выдаёт "Battery not found." хотя ибп подключен и ОС его видит и работает.
Windows 7 x64
:(

Чуть не забыл, решил сделать на Autoit потому что официальная прога "PowerChute Personal Edition V3.0.2 for Windows 10; 8; 7; Vista; XP; Home Server (Multi-Language)"
тоже не находит свой же ибп :rofl:


Добавлено:
Сообщение автоматически объединено:

Вопрос снят.
Всё что нужно сделал на основе функции _WinAPI_GetSystemPowerStatus()
:IL_AutoIt_1:
 
Верх