Hardware Prüfung

Sunchezz

Bekanntes Mitglied
Moinsen...

Ich wollte mal rein aus interesse fragen obs möglich is (warscheinlich über irgendwelche Umwege)
zu erfahren ob zum Beispiel ein Monitor an oder aus ist.

Is da schonmal jemandem was über den Weg gelaufen?


Wäre für mich grad interessant, da ich zwei Bildschirme habe, und der eine meistens aus ist, wenn nun eine Anwendung startet, könnte man ja ermitteln lassen auf welchem Bildschirm sie angezeigt werden soll.

Grüße ;)
 

Sunchezz

Bekanntes Mitglied
naja, ob wirklich nen knopf aus ist, lässt sich wohl schwer ermitteln, aber ich glaube selbst dann erledigt das OS das im hintergrund irgendwie und trägt das irgendwo ein oder?

aber um die frage mal direkt zu beantworten, das zweite würde mir wohl schon reichen ;)
 

XHelp

Top Contributor
Das könnte dir weiterhelfen
Java:
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] devices = env.getScreenDevices();
for (GraphicsDevice currentDevice : devices) {
	System.out.println(currentDevice.getIDstring());
}
 

Sunchezz

Bekanntes Mitglied
also ist schonmal was, aber anscheinend nicht das gebrauchte...
selbst wenn der Screen "tot" ist, sagt er mir welche "registriert" sind!
also immernoch beide!
 

XHelp

Top Contributor
Da wären wir wieder bei der Definition von "tot". Was meinst du damit? Wenn ich im BS einstelle, dass nur ein Monitor verwendet werden soll, dann wird auch nur einer angezeigt.
 

Sunchezz

Bekanntes Mitglied
also ich habs jetzt versucht mit Monitor wirklich über knopf ausschalten!
Das hat schonmal nicht funktioniert...

ich nehme an der quelltext holt sich die devices nur aus der config des OS?
wenn jetzt aber der sleeptimer für einen bildschirm eingescaltet ist, müsste der ja auch noch trotzdem weiter aufgelistet werden, da er ja trotzdem noch drin steht!
 

XHelp

Top Contributor
Also dass es mit dem Knopf nicht funktioniert sollte auch so klar sein :bahnhof:
Ansonsten wirst du ohne JNI wohl nicht weiter kommen.
 

Sunchezz

Bekanntes Mitglied
Ich wollte mal rein aus interesse fragen obs möglich is (warscheinlich über irgendwelche Umwege)
zu erfahren ob zum Beispiel ein Monitor an oder aus ist.
Ja, das war mir schon klar ;)

Die frage bleibt aber, wo bekomm ich die Infos genau her...
wie ich sie mir dann beschaffe ist ja dann nur noch ne relativ einfache aufgabe, hoff ich jedenfalls xD
 

Empire Phoenix

Top Contributor
Ich glaube nichtmals das du mit c da weit kommen würdest. Normalerweise musste du dich darauf verlassen das dir dein Betriebsystem die richtige anzahl an Monitoren zurückliefert, und das selbige angeschaltet sind.
 
I

irgendjemand

Gast
ich lehn mich mal ganz weit aus dem fenster obwohl ich weis das das so definitiv NICHT funktionieren wird

es müsste ein protokoll geben das über die verbindung grafikkarte <-> monitor die abfrage des energiezustandes des monitors zulässt *gibt es schon mal nicht*
es gibt allerdings ein protokoll was die abfrage von monitor-spezifischen daten zulässt ... wie z.b. abfrage welche auflösungen und frequenzen unterstüzt werden ...
da ich überzeugter ati-user bin *meine einzige nvidia die ich mal hatte ist nach 2 wochen in rauch aufgegangen* weis ich aus erfahrung das zumindest der ati-treiber die möglichkeit hat während der laufzeit diese daten abzufragen ...
der treiber hat 3 zustände
NOT_CONNECTED
NO_INFORMATION
INFORMATION_xxx
wobei hier der aktuelle treiber sehr intiligent ist und den unterschied zwischen einem abgeschaltetem monitor und einer monitor der dieses protokoll einfach nicht implementiert erkennen kann ... er also bei einem monitor der diese abfrage nicht unterstützt kein NOT_CONNECTED wirft sondern richtig ein NO_INFO ...

nun kann man daraus nicht erkennen ob überhaupt ein monitor angeschlossen ist oder nicht ... sondern lediglich ob die grafikkarte in der lage ist informationen vom monitor zu lesen , den entsprechende fehlercode zu erzeugen das es einfach keine infos gibt ... oder das es fehlgeschlagen ist diese informationen auszulesen ...

das ergebnis variert auch sehr stark in abhängigkeit von grafikkarte / monitor kombinationen so das kein erfolg garantiert ist ...

wie das ganze bei nvid-karten läuft weis ich nicht und ist mir persönlich auch ziemlich egal ... *soweit ich weis bietet der nvid treiber KEINE möglichkeit neue geräte während der runtime zu erkennen *zumindest nicht in seinem eigenen steuerungsprogramm**

was du nun also tun könntest wäre dich mit JNA in den treiber hooken und versuchen dieses event auszulösen ... und dann natürlich den return-code auszuwerten ...

das das ganze so nicht machbar sein wird erwähnte ich bereits am anfang ... aber es wäre zumindest ein proof-of-concept das es sowas schon teilweise gibt ...

das größte problem was du jedoch nicht ändern können wirst : es fehlt das protokoll zum direkten erkennen einer vorhanden verbindung und die abfrage des energiezustandes ...
so lange das nicht durch eine RFC gefordert wird an die sich dann auch alle halten wird dein vorhaben so nicht umsetzbar sein
 

Sunchezz

Bekanntes Mitglied
ok, dieser Vortrag war sehr ernüchternd :D

Also, meiner Vorstellung nach, muss es aber irgendwie gehen...
wenn der Bildschirm vom OS in den "Sleepmodus" gesetzt wird, reagiert er auch auf Maustastenanschläge um ihn wieder in Betrieb zu nehmen...
Also findet ja zumindest eine Kommunikation zwischen OS und Grafikkarte statt...
und ob ein Signal zum Bildschirm rausgegeben wird oder nicht!

Und diesen Zustand müsste man doch IRGENDWIE abfragen können...
Direkt über Java natürlich nicht mehr, aber dafür gibt es ja die geliebten Schnittstellten :)
 
I

irgendjemand

Gast
hmm ... also den betriebsmodus der grafikkarte sollte man schon mit JNI/JNA erfragen können ... allerdings würde ich hier nicht unbedingt auf das OS selbst wetten sondern dierekt mit dem treiber arbeiten ... weil ich glaube kaum das du eine entsprechende referenz im OS selbst findest die diesen zustand speichert ... das wird sicherlich der treiber selbst machen *mit standard-event vom OS vllt ?*

aber wie gesagt : wenn du am monitor den knopf drückst oder ganz und gar den stecker ziehst ... also das richtig zu erkennen dürfte extrem schwierig werden ... mit reinem java ist das nicht mehr machbar ...

und wenn das ganze OS-unabhängig sein soll stell dich schon mal auf eine lange liste mit Lib's eins die du durchgehen darfst ...
 

Sunchezz

Bekanntes Mitglied
ja ne, also wenn überhaupt wolle ich das nur für mich haben.

Aber größtenteils ist es eigentlich nur grundlegendes interesse!

hmm... also direkt im treiber, gibt es vernüntige doku über solche treiber?
hab jetzt grad auf anhieb erstmal nichts gefunden, hab jetzt aber auch grad erstmal keine zeit!
Da kümmere ich später drum!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M "Hardware" mit Java steuern? Blinkende Würfel? Allgemeine Java-Themen 57
O Java Hardware Software Zeit Allgemeine Java-Themen 7
K LED-Matrix oder andere "Hardware" für JavaProgrammierung Allgemeine Java-Themen 9
T Hardware sicher entfernen Allgemeine Java-Themen 8
J Hardware Programmierung Allgemeine Java-Themen 3
A Hardware Properties auslesen Allgemeine Java-Themen 10
E Hardware zu Java Allgemeine Java-Themen 10
C Hardware auslesen [CPU,RAM] Allgemeine Java-Themen 2
G Zugriff auf Hardware Allgemeine Java-Themen 6
C Hardware Erkennung (Brenner) Allgemeine Java-Themen 2
N Hardware-Webserver mit Java (JSP/Servlet)-Unterstützung? Allgemeine Java-Themen 8
B Java und Hardware Allgemeine Java-Themen 3
N hardware ansprechen ? Allgemeine Java-Themen 21
O Test schreiben mit Äquivalenzklassen (Aufgabe Prüfung) Allgemeine Java-Themen 9
MiMa Person in einer Arraylist hinzugügen mit Prüfung ? Allgemeine Java-Themen 6
B Java Mail: Prüfung auf neue Emails Allgemeine Java-Themen 1
S Prüfung von annotierten Funktionsparamatern Allgemeine Java-Themen 8
F Zurnung nach Buchstaben und deren Prüfung Allgemeine Java-Themen 9
B Sudoku-Block-Prüfung Allgemeine Java-Themen 1
W Suche Framework zur Prüfung von IPv4 und IPv6 Allgemeine Java-Themen 2
vandread Kleine Generics Aufgabe aus einer Prüfung... wie ist das gemeint? Allgemeine Java-Themen 6
W Best Practice String Prüfung Allgemeine Java-Themen 3
S OOP Designrichtlinie Parameter Prüfung Allgemeine Java-Themen 7
A Probleme mit der String-Prüfung Allgemeine Java-Themen 20
R Dynamische Sorten-Prüfung? Allgemeine Java-Themen 8
A Regulärer Ausdruck EMail-Prüfung Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben