Entwickler-Ecke

Windows API - Bildschirm und/oder HDD wieder einschalten


Andreas Pfau - Do 13.11.03 22:58
Titel: Bildschirm und/oder HDD wieder einschalten
Hallo,

ich habe WinXP, und anstelle eines Bildschirmschoners wird nach 10min der Bildschirm ausgeschaltet (also über DPMS). Nun wüsste ich gerne, wie ich den Monitor per Software wiedereinschalten kann.

Wenn ihr euch fragt, wozu: Ich will mit meiner Fernbedienung den Bildschirm sichtbar machen. Girder sendet eine Message an mein Prog, und das soll den Bildschirm wieder anschalten.

Desweiteren: nach 'ner halben Stunde gehen meine HDDs aus. Kann ich die auch irgendiwe wiedereinschalten...? Das wäre zwar nicht sooo wichtig, aber wäre trotztem toll wenn's ginge (auch wenn ich das nicht glaube).


Anonymous - Do 13.11.03 23:03

es geht, das kann ich dir auf jedenfall schon mal mit auf den weg geben! :P


Ich hatte den genauen Code zu deinem Problem in einem meiner Programme...Da ich ja auch mit PIC Programmierung und Elektroschaltungen arbeite. Hab ihn leider versemmelt...

Suche mal, hoffe ich finde noch was.


Gruß

ixtreme.de


masterworld - Fr 14.11.03 05:45
Titel: So mein erster Code
So zumindestens kannst du den Monitor per Progg anschalten:


Delphi-Quelltext
1:
SendMessage(Application.Handle, WM_SYSCOMMAND,      SC_MONITORPOWER, -1);                    

Gruß Maik

Moderiert von user profile iconTino: Delphi-Tags hinzugefügt.


Andreas Pfau - Fr 14.11.03 15:21

Hallo,

das geht leider bei mir nicht...


barfuesser - Fr 14.11.03 15:46

Wie wärs, wenn Du einfach einen Tastendruck oder eine Mausbewegung emulierst?

barfuesser


Andreas Pfau - Fr 14.11.03 17:55

Hallo,

habe ich schon ausprobiert - Windows ist das egal. Anscheinend wird der Mausport abgefragt, aber auf Mouse_Event, SetcursorPos usw. wird nicht reagiert.


Cruiser23 - Fr 14.11.03 18:02

Für den Monitor:
Easy Delphi Helper hat folgendes geschrieben:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
Wie kann man den Monitor in den StandBy-Modus schalten?


Es ist möglich, den Bildschirm per Programm in den StandBy-Modus zu setzen.

Dieser Befehl ist für das Abschalten zuständig:
 SendMessage(Application.Handle, 
             WM_SYSCOMMAND, 
             SC_MONITORPOWER, 0);


Dieser Befehl schaltet den Monitor wieder ein:
  SendMessage(Application.Handle, 
              WM_SYSCOMMAND, 
              SC_MONITORPOWER, -1);


Vieleicht hilfts dir!


Andreas Pfau - Fr 14.11.03 18:17

Hallo,

das tut aber einfach nicht bei mir (WinXP Home SP1a)...