Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Routine gesucht, die feststellt, ob Monitor an oder aus. (https://www.delphipraxis.net/79893-routine-gesucht-die-feststellt-ob-monitor-oder-aus.html)

iPaule 30. Okt 2006 16:28


Routine gesucht, die feststellt, ob Monitor an oder aus.
 
Hallo zusammen,

kennt jemand von euch eine einfache routine, mit der man auslesen kann, ob der angeschlossene monitor ein- bzw. ausgeschaltet wurde?

es geht dabei um eine applikation, die auf einem "unbemannten" pc läuft und per e-mail meldet, dass der monitor ausgeschaltet wurde.

vielen dank im voraus.

hoika 30. Okt 2006 17:18

Re: Routine gesucht, die feststellt, ob Monitor an oder aus.
 
Hallo,

also ich denke, so eine Funktion kann es gar nicht geben,
zumindestens auf dem Software-Level.


Heiko

iPaule 30. Okt 2006 17:49

Re: Routine gesucht, die feststellt, ob Monitor an oder aus.
 
Zitat:

Zitat von hoika
Hallo,

also ich denke, so eine Funktion kann es gar nicht geben,
zumindestens auf dem Software-Level.


Heiko


aber man kann doch über dde sogar die seriennummer des monitors (zumindest bei den neueren) auslesen. warum soll es keine möglichkeit geben, festzustellen, ob der monitor aktiv oder passiv ist - sprich: ein- oder ausgeschgaltet...?

RobertP 30. Okt 2006 17:55

Re: Routine gesucht, die feststellt, ob Monitor an oder aus.
 
Also ich glaub man kann nur feststellen, ob sich der PC im Standbymodus befindet, also der Monitor vom Rechner ausgeschaltet wurde. Aber ob der User jetzt den Monitor aus oder eingeschaltet hat kann man meines Wissens nach nicht feststellen.

dbdeath74 31. Okt 2006 15:05

Re: Routine gesucht, die feststellt, ob Monitor an oder aus.
 
Zitat:

Zitat von iPaule
aber man kann doch über dde sogar die seriennummer des monitors (zumindest bei den neueren) auslesen. warum soll es keine möglichkeit geben, festzustellen, ob der monitor aktiv oder passiv ist - sprich: ein- oder ausgeschgaltet...?

Hallo,

hast du vielleicht einen Link wie man die seriennummer des Monitors auslesen kann? Das würde mich auch interessieren :)
bei deinem Problem kann ich dir leider nicht weiterhelfen :(

gruß Oliver

TeronG 31. Okt 2006 15:18

Re: Routine gesucht, die feststellt, ob Monitor an oder aus.
 
:gruebel:
Wenn es sich eh nur um einen "unbemannten pc" handelt warum isses dann so schlimm, wenn der Monitor aus ist?
Dringende Alarmmeldungen wirst du ja bestimmt nicht nur über Monitor ausgeben oder? (Blink-/Blitz-leuchte, Tröte, Summer, Modem, Wählgerät, eMail, 1Euro-Jobler, ...)

Nagut .. das hilft jetzt nicht wirkllich bei deinem Problem .... :oops:

OldGrumpy 31. Okt 2006 16:22

Re: Routine gesucht, die feststellt, ob Monitor an oder aus.
 
Wenn man per DDE die Seriennummer auslesen kann, dann kann man das auch (Achtung, dirty hack!) dazu verwenden, nachzusehen ob der Monitor noch an ist. Dann reagiert er nämlich auf die DDE-Anfrage. Wenn er ausgeschaltet ist, kann er das natürlich nicht...

Ist natürlich keine "ordentliche" Lösung, mag aber für den einen oder anderen Anwendungsfall praktikabel sein.

Christian Seehase 31. Okt 2006 17:03

Re: Routine gesucht, die feststellt, ob Monitor an oder aus.
 
Moin Zusammen,

nur um die Begrifflichkeit zu korrigieren:
Wenn, dann geht es mit DDC nicht DDE.

Der einfachste Weg die Seriennummer des Monitores herauszubekommen geht über die Registry.
Im Key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\D ISPLAY findet man alle möglichen Monitore, die dem System mal bekannt waren.
Innerhalb dieser Keys gibt es dann noch eine weitere Ebene, in der die Keys ähnlich aussehen wie 6&471624d7&0&11443344&01&00, und unterhalb dieser Keys wiederum gibt es den Key namenes "Device Parameters", in dem sich der Wert EDID befindet, ein Binärwert.
An Offset $48 (also 72 dezimal) beginnt ein Block der sich aus vier Werten zusammensetzt.
Aufbau
Kennung DWORD
Inhalt Array [1..14] of Byte
Kennung DWORD
Inhalt Array [1..14] of Byte
Kennung DWORD
Inhalt Array [1..14] of Byte
Kennung DWORD
Inhalt Array [1..14] of Byte

Das erste Byte des Inhaltes ist bei den in Frage kommenden Einträgen immer 00
Als Kennungen gibt es:
000000FF => Seriennummer
000000FE => Hersteller
000000FC => Modellbezeichnung
Bei diesen drei Kennungen handelt es sich dann um Klartext. Dieser ist mit Blanks auf 13 Byte aufgefüllt.
Die Reihenfolge liegt nicht fest, und die Angaben sind optional, was sogar zur Folge haben kann, dass man eine bestimmte Kennung mehrfach vorfindet, oder eben auch gar nicht.

Wenn sich parallel zum Key "Device Parameters" noch der Key "Control" befindet so hat man den Key erwischt, der aktuell gültige Daten für EDID enthält.

[EDIT]
Der aufwändigere, dafür aber sauberere Weg (da man nicht selber suchen muss ;-)) führt über die SetupApi.
[/EDIT]

iPaule 1. Nov 2006 09:00

Re: Routine gesucht, die feststellt, ob Monitor an oder aus.
 
Zitat:

Zitat von dbdeath74
Zitat:

Zitat von iPaule
aber man kann doch über dde sogar die seriennummer des monitors (zumindest bei den neueren) auslesen. warum soll es keine möglichkeit geben, festzustellen, ob der monitor aktiv oder passiv ist - sprich: ein- oder ausgeschgaltet...?

Hallo,

hast du vielleicht einen Link wie man die seriennummer des Monitors auslesen kann? Das würde mich auch interessieren :)
bei deinem Problem kann ich dir leider nicht weiterhelfen :(

gruß Oliver

http://www.delphipraxis.net/internal...t.php?p=188327

iPaule 1. Nov 2006 09:03

Re: Routine gesucht, die feststellt, ob Monitor an oder aus.
 
Zitat:

Zitat von Christian Seehase
Moin Zusammen,

nur um die Begrifflichkeit zu korrigieren:
Wenn, dann geht es mit DDC nicht DDE.


stimmt.

Zitat:

Zitat von Christian Seehase
Der einfachste Weg die Seriennummer des Monitores herauszubekommen geht über die Registry.

leider bringt mich das nicht weiter. das auslesen der seriennummer müsste direkt aus dem monitor erfolgen, denn der eintrag in der registry sagt nichts darüber aus, ob der monitor wirklich angeschlossen ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:28 Uhr.
Seite 1 von 3  1 23      

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