Как получить SYSTEM_POWER_STATUS, используя Silverlight 2/3/4?

У меня есть приложение Silverlight, работающее во весь экран. Есть ли способ, которым я могу отображать состояние питания системы (в основном индикатор батареи, сколько осталось?), Используя Silverlight?

Я пытался следовать

[DllImport("kernel32.dll")]
private static extern long GetSystemPowerStatus(SYSTEM_POWER_STATUS
lpSystemPowerStatus);

Но получил сообщение об ошибке -

Попытка прозрачного для безопасности метода SilverlightApplication1.MainPage.x() вызвать собственный код через метод SilverlightApplication1.MainPage.GetSystemPowerStatus(SilverlightApplication1.SYSTEM_POWER_STATUS)'не удалась. Методы должны быть критически важными для безопасности или безопасными для вызова нативного кода.

1 ответ

Решение

От Брайана Хендерсона на форумах MSDN:

Silverlight работает в изолированной среде безопасности и не имеет доступа к функциям API клиента. По своей сути Silverlight является кросс-клиентом, кросс-ОС (операционной системой), поэтому не имеет доступа к собственным методам API клиента. Поскольку вы пытаетесь вызвать определенные функции Win32 API, я бы порекомендовал вам выбрать использование клиентской технологии Windows OS.

Другие вопросы по тегам