Как я могу программно мешать батарее ноутбука заряжаться

Для получения количества виджетов от каждой категории виджета, которая имеет больше чем 5 виджетов Вы могли сделать это:

SELECT WidgetCategory, count(*)
FROM Widgets
GROUP BY WidgetCategory
HAVING count(*) > 5

пункт "наличия" - что-то, что люди часто забывают о, вместо этого решив получить все их данные клиенту и выполняя итерации через него там.

9
задан jww 17 September 2014 в 10:54
поделиться

7 ответов

Я думаю, что это невозможно, потому что вам нужен некоторый API для аккумулятора или зарядного устройства.

И этот API может предоставить вам производитель ноутбука, а аккумулятор или зарядное устройство поддерживают это.

5
ответ дан 3 November 2019 в 01:03
поделиться

Честно говоря, я не знаю, но я бы посмотрел на API APM или ACPI .

Кроме этого, единственный вариант, о котором я могу думать прямо сейчас, - это управляемая через USB роботизированная рука, которая извлекает аккумулятор, когда вам нужно прекратить зарядку, но, вероятно, это не то, что вы ищете, и граничит с перчаткой усложнителя в терминах уровня чрезмерной инженерии. :)

2
ответ дан 3 November 2019 в 01:03
поделиться

Думаю, MiCTech прав. Я не думаю, что это возможно, но вот некоторые ресурсы, которые могут вам пригодиться.

1
ответ дан 3 November 2019 в 01:03
поделиться

Но, например, Vista не будет заряжать батарею, если она отключена, а затем подключена, пока ее емкость выше 96%, так что это означает, что он может быть доступен и каким-то образом манипулирует.

0
ответ дан 3 November 2019 в 01:03
поделиться

Один из вариантов - получить устройство (I) для зарядки аккумулятора (аккумулятор, совместимый с Microsoft ACPI). Слушайте события PowerNotification вечно. При каждом уведомлении проверяйте PowerStatus батареи. В .Net и win32

есть API-интерфейсы для всех вышеперечисленных целей. Держите устройство (I) отключенным, пока состояние мощности> порогового. Включите его, как только он станет ниже этого значения или когда вы не подключены к сети переменного тока (например, перед отключением питания переменного тока ваше программное обеспечение для непрерывного мониторинга должно активировать это аккумуляторное устройство - или вы включаете его вручную).

хм, ... решение с большим количеством ошибок, но оно может достичь желаемого, хотя вы должны быть очень осторожны.

1
ответ дан 3 November 2019 в 01:03
поделиться

Я бы просто взял ИБП и программно приказал ему отключить все питание ... у большинства должен быть интерфейс для этого. В противном случае, как кто-то уже сказал, это подойдет удлинитель с компьютерным управлением ^^

Я действительно играл с этой идеей, когда недавно тестировал / писал о слишком большом количестве новых моделей ноутбуков, и тестирование батареи было утомительно настраивать, отслеживать и анализировать.

Я написал приложение, которое будет делать все (настройка, прослушивание, измерения, отчетность), кроме отключения питания, а затем его повторного включения и повторного запуска компьютера ...

1
ответ дан 3 November 2019 в 01:03
поделиться

(Хорошо второй раз повезло..)

К вашему сведению, здесь есть еще один вопрос выполнить connect () на определенном сетевом адаптере по тем же линиям...

В соответствии с Cable Guy

Windows XP и Windows Server ® 2003 использовать слабую модель хоста для отправки и получает для всех IPv4 интерфейсов и сильная модель хоста для отправки и принимает для всех интерфейсов IPv6. Вы не удается настроить это поведение. Стек TCP/IP следующего поколения в Windows Vista и Windows Server 2008 поддерживает надежные серверные передачи и получает как для IPv4, так и для IPv6 по умолчанию для всех интерфейсов, кроме Интерфейс туннелирования Teredo для Реле для хоста Teredo.

Поэтому, чтобы ответить на ваш вопрос (правильно, на этот раз) в Windows XP и Windows Server 2003 IP4 нет, но для IP6 да. А для Windows Vista и Windows 2008 да (за исключением некоторых обстоятельств).

Также от http://www.codeguru.com/forum/showthread.php?t=487139

В Windows вызов bind () влияет на выбор платы только входящий трафик, не исходящий трафик. Таким образом, на клиент, работающий в многопользовательской системе (т.е. более одной интерфейсной платы), это сетевой стек, который выбирает карта для использования, и она делает выбор на основе только IP-адрес назначения, который, в свою очередь, основан в таблице маршрутизации. Вызов для привязки () не повлияет на выбор карты в любом случае.

Это связано с что-то называемое «слабой конечной системой» («Слабая E/S») модель. Vista изменен на сильная модель E/S, поэтому проблема может не возникает в Vista . Но все предыдущие в версиях Windows использовался слабый E/S модель.

Со слабой моделью E/S это таблица маршрутизации, которая определяет, какая плата используется для исходящего трафика в многосетевая система.

Проверьте, предлагают ли эти потоки некоторые insight:

"Привязка локального сокета к многоканальному узел в Windows XP не работает " http://www.codeguru.com/forum/showthread.php?t=452337

"Подключение порта к указанному Сетевая карта? " http://www.codeguru.com/forum/showthread.php?t=451117 . В этом потоке упоминается Функция CreateIpForwardEntry (), которая (Я думаю) может быть использован для создания запись в таблице маршрутизации, чтобы все исходящий IP-трафик с указанным сервер маршрутизируется через указанный адаптер.

«Работа с 2 платами Ethernet» на http://www.codeguru.com/forum/showthread.php?t=448863

"Странная привязка к многосетевому система "на http://www.codeguru.com/forum/showthread.php?t=452368

Надеюсь, что это поможет!

-121--2162181-

Для любого языка рекомендуется сначала написать код, который можно читать и обслуживать, а затем при необходимости оптимизировать.

Если ваша программа работает достаточно быстро, разделяясь на простые в переваривании фрагменты, оставьте ее путь. Если он бежит медленно, то, как упомянуто о хободаве, профиль, чтобы найти причину медлительности.

Скорее всего, это будет вызвано чем-то, кроме вызова функций,но если это происходит из-за этого, то начинают объединять функции вместе, как только вы отслеживаете это.

-121--3565979-

Я думаю, что это возможно, потому что он был запатентован IBM ( патент № 7570015 ).

Не уверен, доступен ли для этого Windows API.

2
ответ дан 3 November 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: