Как перевести монитор в спящий режим при использовании C # / WPF (не WinForms!) - PullRequest
4 голосов
/ 30 октября 2011

Проблема в том, что я использую ...

[DllImport("user32")]
public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);

... а затем ...

SendMessage(???, WM_SYSCOMMAND, (IntPtr)SC_MONITORPOWER, (IntPtr)MONITOR_OFF);

SendMessage хочет дескриптор формы, но яя не использую формы, поэтому не могу получить дескриптор.

Есть ли другой способ перевести монитор в спящий режим или перевести маркер в WPF?

Ответы [ 3 ]

5 голосов
/ 30 октября 2011

Чтобы получить дескриптор окна WPF, используйте:

  new WindowInteropHelper(YourWPFWindow).Handle

MSDN ссылка

3 голосов
/ 30 октября 2011

Или используйте

HwndSource source = (HwndSource)HwndSource.FromVisual(this);
source.Handle...

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

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