Что нового

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

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
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
 

Вложения

Belfigor

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

Yashied

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

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:
 
Верх