C# - Display automatisch einschalten nach Wake-On-Ring bzw. Wake-On-Modem

Hallo Zusammen,

ich beschäftige mich gerade mit einem C# Projekt, welches einige Operationen ausführt sobald ein Fax im internen PC-Modem eingeht. Der Computer (Thinkpad mit XP) ist solange im Standby bis ein Fax anklingelt. Dann fährt er sich auch ordnungsgemäß hoch (=Wake On Ring).
Das Problem ist nun, dass der Monitor immer noch auf Standby ist und ich somit nicht die Ergebnisse meines C#-Programms sehe. Wenn ich eine Taste drücke oder mit die Maus bewege, schaltet er sich auch sofort ein.

Meine Idee für die Lösung des Problems war zuallererst mit der API und dem Befehl:

        private const int HWND_BROADCAST = 0xFFFF;
        private const int SC_MONITORPOWER = 0xF170;
        private const int WM_SYSCOMMAND = 0x0112;
        private const int MONITOR_ON = -1;
        private const int MONITOR_OFF = 2;
        private const int MONITOR_STANBY = 1;
        [DllImport(„user32.dll“)]
        private static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);
       SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_ON);

den Monitor zum aufwachen zu bringen.
Da dies nicht funktionierte, versuchte ich einen automatischen Sendkey oder mouse_event Befehl.

Leider schlug alles fehl.

Was kann ich noch machen? Habts ihr noch weitere Ideen wie ich den doofen Monitor automatisch zum aufwachen bringe?

Viele Grüße
Daniel

Hallo!

Hier: https://social.msdn.microsoft.com/Forums/en-US/1bfde… habe ich mal die unterste Lösung (mit BroadcastSystemMessage) ausprobiert.
Klappt unter Win7 mit Monitor.Off() und Monitor.On() einwandfrei.

Gruß,
Martin