Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi überprüfen ob Bildschirm angeschaltet ist (https://www.delphipraxis.net/54803-ueberpruefen-ob-bildschirm-angeschaltet-ist.html)

AmY 11. Okt 2005 16:28


überprüfen ob Bildschirm angeschaltet ist
 
kann man mit Delphi irgendwie überprüfen, ob der Bildschirm angeschaltet ist?

mfg AmY

Luckie 11. Okt 2005 16:39

Re: überprüfen ob Bildschirm angeschaltet ist
 
Und wenn er abgeschaltet is, dann willst du eine Nachricht auf dem Monitor ausgeben und den Benutzer daraufhinweisen, dass er abgeschaltet ist? :mrgreen: Das zu wissen macht irgendwie keinen Sinn. :gruebel:

AmY 11. Okt 2005 16:46

Re: überprüfen ob Bildschirm angeschaltet ist
 
Natürlich macht das Sinn. Wenn der Bildschirm aus ist, ist der Benutzer vermutlich nicht anwesend. Zumindest ist das bei mir so, das ich, wenn ich am PC sitze den Bildschirm an habe. In meiner Problemstellung, geht es darum, dass wenn der Benutzer agieren kann(also anwesend ist) ein automatisierter Vorgang nicht ausgeführt wird, da der Benutzer ja da ist und selber optional entscheiden kann.
Im Moment habe ich dieses Problem über Abfrage der Mausposition u. Tastatureingabe gelöst. Aber ich sitz ja nun auch manchmal vorm PC und mach was anderes als Maus und Tastatur zu bedienen.
lg amy

SirThornberry 11. Okt 2005 16:52

Re: überprüfen ob Bildschirm angeschaltet ist
 
das ganze gehört wohl eher in die WinApi sparte.
Ob der Screensaver gerade läuft bekommst du mit.
Ich bin leider nicht fündig gewurden aber vielleicht hilft es dir bei der Suche etwas damit du weißt wo du ungefähr suchen könntest.
heraus finden ob Screensaver läuft
Delphi-Quellcode:
SystemParametersInfo(SPI_GETSCREENSAVERRUNNING, 0, @PointerToBool, 0)
Herausfinden ob Bildschirm abschalten aktiviert ist (Energieverwaltung)
Delphi-Quellcode:
SystemParametersInfo(SPI_GETPOWEROFFACTIVE, 0, @PointerToBool, 0)

Luckie 11. Okt 2005 17:03

Re: überprüfen ob Bildschirm angeschaltet ist
 
also auf die Idee ovn einem ausgeschaltete Monmitor daraufzuschließen, dass kein Benutzer am PC sitzt bin ich auch noch nicht gekommen. Denn er kann auch eingeschlatets ein und niemand ist da. Da hapert es irgendwie noch bei deinen Überlegungen. Ich würde gucken, ob der Benutzer in letzter Zeit am PC aktiv war: http://www.luckie-online.de/Develope...InputInfo.html

AmY 11. Okt 2005 17:05

Re: überprüfen ob Bildschirm angeschaltet ist
 
vielleicht hab ich mich ein wenig unklar ausgedrückt, ich meinte:
Kann man feststellen, ob die Stromversorgung des Monitors(entweder durch Schalter an diesem oder durch Stecker ziehen) unterbrochen ist. Das mit dem Bildschirmschoner, bzw ob Bildschirm abschalten aktiv ist hört sich aber auch schonmal gut an.
Lg amy

AmY 11. Okt 2005 17:11

Re: überprüfen ob Bildschirm angeschaltet ist
 
also, nochmal zu dem "Warum". Meine Überlegung ist folgende:

Wenn ich die Zeit messe, seit der letzten Aktion, kann es ja sein, das der Benutzer grade weg gegangen ist, seine letze Aktion also nur wenige Sekunden zurück liegt. Ich würde also fälschlicherwise annehmen, dass er da ist.

Wenn der Benutzer(Stomsparend wie er ist) aber den Bilschirm ausschaltet, weil er ja weiß das er länger weg ist, kann ich diese Information(das der Bildschirm aus ist) interpretieren. Ich weiß also, dass kein Benutzer da ist, auch wenn die letze Aktion nur 10 Sekunden zurück liegt.
Alles klar? :-)

lg amy

Luckie 11. Okt 2005 17:15

Re: überprüfen ob Bildschirm angeschaltet ist
 
Wie soll denn das gehen? Der Monitor ist über die Grafikkarte mit deinem Rechner verbunden. Und soweit ich weiß, geht das nur in eine Richtung, nämlich raus. Und selbst wenn es anders rum ginge, wie soll dir der ausgeschaltete Monitor mitteilen, dass er ausgeschaltet ist?

Warum sträubst du dich eigentlich so gegen meine Lösung? Wenn der Benutzer nicht da ist, dann wird er auch keine Eingaben machen können. Dann ist es doch völlig egal, ob der Monitor an oder aus ist.

AmY 11. Okt 2005 17:17

Re: überprüfen ob Bildschirm angeschaltet ist
 
ich find deine Lösung ja klasse *liebdrück*, aber ich hatte gehofft, es ginge auch anders.
Naja wenn das nicht geht ists ja nicht schlimm :-)
Danke an alle die meine verkorkste Idee gelesen haben
lg amy

supermuckl 11. Okt 2005 17:19

Re: überprüfen ob Bildschirm angeschaltet ist
 
ganz einfach:

du hängst zwischen die stomversorgung deines monitors einen sehr kleinen hochlastwiderstand (auch shunt genannt) und misst damit dem strom, den er verbraucht. diesen spannungsabfall kannst du wiederum mit einem A/D wandler bzw digital mit einem schmitttrigger z.b. deinem lpt port als input für deine selbstgeschriebene software bereiten.

dabei sei gesagt, das dies ein erfahrener elektroniker bauen sollte ;)
sonst bist entweder du oder dein PC tot.

SirThornberry 11. Okt 2005 17:22

Re: überprüfen ob Bildschirm angeschaltet ist
 
Nach dem Monitor würde ich nicht gehen denn zum Beispiel ist der Monitor von meinem Rechner tagsüber aus, trotzdem arbeite ich ab und zu mit Remotedesktop auf dem Rechner. Du könntest also lieber prüfen wann die letzte eingabe (Tastatur, Maus) erfolgte oder ob der Bildschirmschoner aktiv ist (falls dieser überhaupt aktiviert ist)

leddl 11. Okt 2005 17:23

Re: überprüfen ob Bildschirm angeschaltet ist
 
Warum gibst du dem Benutzer nicht einfach zB 1 Minute Zeit, seine Eingabe zu machen, und wenn er bis dahin nicht reagiert, dann übernimmt dein Programm automatisch? Den Zustand des Monitors selber wirst du so ohne weiteres nicht herausbekommen.

Puhbaehr 15. Okt 2005 16:33

Re: überprüfen ob Bildschirm angeschaltet ist
 
Zu Wissen ob der Benutzer den Monitor ausgeschalten hat kann für so einige Anwendungen nützlich sein.
Meine prüft z.B. ob das Internet getrennt werden darf und fährt den Internetrouter herunter und wieder hoch sobald sie wieder verbunden werden muss.
Warum ich das so mache hat sehr viele Gründe.
Fakt dabei ist, dass ich bei den paar Clients die hinter dem Router "hocken" prüfen muss ob 1. irgendein Rechner an ist und benutzt wird oder ob 2. alle aus sind bzw. nicht benutzt werden (weil z.B. jemand grad etwas brennt, aufnimmt, Viren prüft, Festplatte formatiert, ...weiß der Kuckuck was auch immer macht und dieser jemad nur den Monitor aus macht). Sobald alle Rechner aus sind oder nicht benutzt werden (nach einem Timeout) fährt der Router herunter.

Nun wie prüfe ich denn nun ob der Rechner benutzt wird?

Wir gehen von dem Standpunkt aus, dass der Nutzer ein stromsparender Mensch ist: Also wird er immer alles aus machen was er gerade nicht benötigt.
Hat dieser Mensch seinen Monitor an und macht keine Eingaben: Weiß ich nicht ob das Internet aus darf. Er könnte sich ja auch nur auf dem Bildschirm etwas durch lesen etc... und macht in nächster Sekunde einen Browser auf...
Also: Hat dieser Mensch seinen Monitor an benutzt er ihn.
Hat dieser Mensch ihn aus und keine weiteren Programme offen und ist eine gewisse Zeit vergangen benutzt er ihn wahrscheinlich nicht.


Also, mich würde auch interessieren ob und wie das mit dem Monitor Möglich ist.
Ich denke mal, dass dieses "Feature" Grafikkartenabhängig ist. Meine Grafikkarte erkennt z.B. ob ich im TV-Out ein Kabel angeschlossen hab.
Der Monitor erkennt auch ob sein Kabel irgendwo reingesteckt ist.
Also warum sollte die Grafikkarte nicht prüfen können ob sein Monitor-Anschluss belastet wird?

Ich würde mich auch über solche Hilfe freuen die zur Lösung des Problems beiträgt! Vielen Dank

Luckie 15. Okt 2005 16:37

Re: überprüfen ob Bildschirm angeschaltet ist
 
Zitat:

Zitat von Puhbaehr
Hat dieser Mensch ihn aus und keine weiteren Programme offen und ist eine gewisse Zeit vergangen benutzt er ihn wahrscheinlich nicht.

Und was ist, wenn er sich gerade ein Deian ISO Image runterläd, alle Programme schließt und den Monitor abschaltet, weil er nichts weiter am Rechner macht?

Flocke 15. Okt 2005 16:56

Re: überprüfen ob Bildschirm angeschaltet ist
 
Du kannst ja auch einfach eine MessageBox selbst programmieren, die die benötigten Buttons bietet und zusätzlich von 20 (oder irgendeiner Zeitspanne) bis 0 herunterzählt und dann, wenn keine Eingabe erfolgt ist, die Standardaktion ausführt.

gmarts 15. Okt 2005 17:03

Re: überprüfen ob Bildschirm angeschaltet ist
 
Zitat:

Zitat von Luckie
Wie soll denn das gehen? Der Monitor ist über die Grafikkarte mit deinem Rechner verbunden. Und soweit ich weiß, geht das nur in eine Richtung, nämlich raus. Und selbst wenn es anders rum ginge, wie soll dir der ausgeschaltete Monitor mitteilen, dass er ausgeschaltet ist?

Zitat:

Zitat von wikipedia
PIN 12 eines VGA-Kabels ist für den "Bidirektionalen digitalen Datenaustausch" zuständig.

Scheint theoretisch also zu funktionieren.

Christian Seehase 15. Okt 2005 17:11

Re: überprüfen ob Bildschirm angeschaltet ist
 
Moin Gunar,

Zitat:

Zitat von gmarts
Zitat:

Zitat von wikipedia
PIN 12 eines VGA-Kabels ist für den "Bidirektionalen digitalen Datenaustausch" zuständig.

Scheint theoretisch also zu funktionieren.

ich habe mir jetzt nicht den Artikel durchgelesen, aber das wäre nicht ausreichend.
Bei mir ist der Monitor nämlich nicht über VGA, sondern über DVI angeschlossen.
Die oben genannte Prüfung würde also immer ergeben, dass der Monitor ausgeschaltet/nicht angeschlossen ist.

gmarts 15. Okt 2005 17:25

Re: überprüfen ob Bildschirm angeschaltet ist
 
@Christian: Nun, es ging erstmal um die generelle Möglichkeit. Jedenfalls gibt es auch bei DVI eine Datenrückleitung.

Habs mir noch nicht genau durchgelesen, aber hier wirds konkreter:
MSDN-Library durchsuchenedid


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz