Какой вызов API я использовал бы для изменения яркости ноутбука (.NET)?

Я проверил тебя, учитывая xpaths, я не знаю, что они ошибаются или на самом деле ошибаются.

Например,

xpath = //*="main"]/div/span/div/div/div[2]/table/tbody/tr['+str(i)+']/td[3]/strong/text()

#There is not table when you reach at div[2]

//div[@class="title_wrapper"])/h1/text()    #here there is and error after `]` ) is bad syntax

Кроме того, ваши xpaths не дают никаких результатов.

9
задан Simon_Weaver 17 December 2008 в 00:34
поделиться

5 ответов

Я посмотрел ссылку Джона Руди на WmiSetBrightness в MSDN и придумал следующее:

ManagementClass mclass = new ManagementClass("WmiMonitorBrightnessMethods");
mclass.Scope = new ManagementScope(@"\\.\root\wmi");
ManagementObjectCollection instances = mclass.GetInstances();

// I assume you get one instance per monitor
foreach(ManagementObject instance in instances)
{
    ulong timeout = 1; // in seconds
    ushort brightness = 50; // in percent
    object[] args = new object[] { timeout, brightness };
    instance.InvokeMethod("WmiSetBrightness", args);
}

Примечание: ManagementClass , ManagementObjectCollection и ManagementObject все реализуют IDisposable . Вам следует вызвать Dispose () или использовать « using », чтобы избежать утечки ресурсов.

9
ответ дан 4 December 2019 в 15:27
поделиться

Это - перспектива только:

http://msdn.microsoft.com/en-us/library/ms775232.aspx

Необходимо отождествить монитор с GetPhysicalMonitorsFromHMONITOR прежде, чем установить его яркость с SetMonitorBrightness. Я подозреваю, что никто не сделал это прежде в .NET, таким образом, необходимо будет, вероятно, записать собственный interop. API, кажется, не является особенно трудным, таким образом, необходимо смочь сделать это довольно легко.

2
ответ дан 4 December 2019 в 15:27
поделиться

Насколько я знаю, существует не управляется (.NET) API для этого. Однако для Vista, существуют неуправляемые API, доступные через interop. См. MSDN: API Конфигурации Монитора и WmiSetBrightness.

Могут быть управляемые способы поразить метод WmiSetBrightness, но я не знаю о них.

Если Вы не находитесь на Vista или Сервере 2008, Вы находитесь в для мира неприятности: конфигурация программного обеспечения должна была бы быть реализована непосредственно через драйвер монитора. На основе Вашего упоминания контроль учётных записей выше, я подозреваю, что это не имеет место для Вас, но следующий парень мог бы хотеть знать.:)

1
ответ дан 4 December 2019 в 15:27
поделиться

Просто участник коллективного обсуждения здесь... На ноутбуке можно изменить яркость с помощью некоторого ключа-kombinations на клавиатуре. Должно быть возможно отправить те keyspresses, Если Вы просто хотите сделать это более темным/легче и не иметь для установки его на определенное значение.

1
ответ дан 4 December 2019 в 15:27
поделиться

Для добавления к ответу DaEagles сайт http://www.pinvoke.net/ может быть жизненным средством сохранения при работе с win32-пчелой в .NET. Если информация не существует там, добавьте его при создании успешного interop для .NET.

0
ответ дан 4 December 2019 в 15:27
поделиться
Другие вопросы по тегам:

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