2009-03-03 6 views
4

Je suis déjà en train d'utiliser du code pour éteindre l'alimentation du moniteur, mais j'ai toujours un petit problème.Comment éteindre correctement l'alimentation du moniteur en C#?

Le code fonctionne très bien la plupart du temps, mais une fois de temps en temps, le moniteur devient vide. Ce que je veux dire par là, c'est que l'écran est totalement noir, vous ne pouvez rien voir, mais vous pouvez voir qu'il est toujours allumé. Le voyant LCD est toujours allumé mais l'écran est complètement noir. Je ne sais pas pourquoi cela se produit, peut-être que certains d'entre vous savent pourquoi ... Cela n'arrivera jamais si je définis les paramètres de Windows Power pour éteindre le moniteur après X minutes, mais j'ai besoin d'une application pour le faire. Je peux l'appeler avec un raccourci quand je veux.

Le code J'utilise est quelque chose comme ceci:

[System.Runtime.InteropServices.DllImport("user32.dll")] 
private static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam); 

const int WM_SYSCOMMAND = 0x0112; 
const int SC_MONITORPOWER = 0xF170; 
const int HWND_BROADCAST = 0xFFFF; 

SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2); 

Toutes les idées?

Répondre

1

Avez-vous testé cela sur plusieurs machines? Pourrait être un problème de pilote ...

+0

Non, seulement sur le mien. C'est celui sur lequel je veux que ça marche ... –

4

Vous ne souhaitez pas diffuser ce message dans toutes les fenêtres. Vous comptez sur chacun d'eux pour le traiter comme vous l'attendez.

Vous devez créer le vôtre et ne lui envoyer que le message afin que vous puissiez contrôler le comportement.

Il y a quelques solutions dans les commentaires de ce post par Raymond Chen: http://blogs.msdn.com/oldnewthing/archive/2006/06/13/629451.aspx

+1

Une diffusion peut causer beaucoup de problèmes. –

+0

Je lirai ce lien quand j'aurai l'occasion et rendrai compte :) –

+0

Cela n'a pas fonctionné ... Le voyant LCD ne s'éteint pas tout le temps :( –

0

Rien n'a fonctionné, j'ai créé ma propre fenêtre et utilisé cette poignée de fenêtre et la plupart du temps, l'écran est éteint et il est tout à fait noir (LCD éteint), mais de temps en temps, le voyant LCD ne s'éteint pas ... :(

0

J'ai aussi ce problème, les machines fonctionnent souvent bien, et puis raison, ne laissez pas les écrans pour dormir.Je ne trouve pas de communalité concrète

Il arrive même lorsque les machines sont logg épuisé. Habituellement, 1 redémarrage effacera le problème. Pas toujours.

J'ai même vu les écrans se réveiller et refuser de dormir à nouveau sur une machine qui était déconnectée, et personne n'a interagi avec elle.

De toute évidence, il y a un processus ou des processus à blâmer, mais comment les tracez-vous?

Questions connexes