AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Routine gesucht, die feststellt, ob Monitor an oder aus.
Thema durchsuchen
Ansicht
Themen-Optionen

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

Offene Frage von "sx2008"
Ein Thema von iPaule · begonnen am 30. Okt 2006 · letzter Beitrag vom 28. Apr 2013
 
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.123 Beiträge
 
Delphi 11 Alexandria
 
#8

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

  Alt 31. Okt 2006, 17:03
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]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz