AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Ist der Benutzer aktiv am Rechner / IdleTime / Bildschirmschoner abfragen
Thema durchsuchen
Ansicht
Themen-Optionen

Ist der Benutzer aktiv am Rechner / IdleTime / Bildschirmschoner abfragen

Ein Thema von Cyberaxx · begonnen am 17. Aug 2011 · letzter Beitrag vom 17. Aug 2011
Antwort Antwort
Benutzerbild von Cyberaxx
Cyberaxx

Registriert seit: 15. Jul 2005
311 Beiträge
 
Delphi XE5 Professional
 
#1

Ist der Benutzer aktiv am Rechner / IdleTime / Bildschirmschoner abfragen

  Alt 17. Aug 2011, 11:44
Hallo

Der Titel mag nicht viel aussagen aber ich weiß gerade nicht wie ich es besser kurz ausschreiben soll.

Wie fange ich am besten an...
Ich habe mir eine Relaiskarte gebaut die mittels RS232 angesteuert wird. Auf dem Rechner wird beim Starten ein Programm ausgeführt welches sich um die Relaiskarte kümmert. So schalten sich beim Hochfahren gewisse Ports ein, in meinem Fall die Monitore. Wenn das Sstem heruntergefahren wird oder in den StanBy Modus wechselt, werden automatisch die Ports abgeschaltet, hier unteranderem Licht, Drucker und Boxen.
Es soll mit aber auch den Bildschirmschoner ersetzen. Sprich nach einer definierten Zeit X die Ports ebenfalls abschalten.
Bisher habe ich das über einen Timer gelöst der die Mauskoordinaten Abfragt. Funktioniert soweit auch super nur fehlen mir jetzt dazu noch die Maustasten und natürlich tastatureingaben. Derzeit schalten sich sonst auch die Ports ab wenn ich einfach nur einen Text schreibe ohne die Maus zu bewegen.
Habe mich schon umgesehen aber es kommen hier meist nur Timer gesteuerte oder Hooks in Frage. Das möchte ich eher weniger.
Gibt es da irgend eine Möglichkeit abzufragen seit wann keine Eingaben per Tastatur und Maus mehr gekommen sind? Dessen zeit ich einfach dann nur Abfrage?

Bildschirmschoner ist bei mir deaktiviert.
Mir war auch schon die Idee gekommen mein Programm mit einem eigenen Bildschirmschoner auszustatten, der dann mit meinem Programm kommuniziert, wenn der Bildschormschoner aktiv wird aber da muss es doch auch sicher etwas einfacheres geben als Kommunikation zwischen zwei einzelnen Programmen?

Gruß
Daniel
Daniel
Das Aufwachen aus einem boesen Traum muss einen nicht erleichtern. Es kann einen auch erst richtig gewahr werden lassen, was man Furchtbares getraeumt hat, vielleicht sogar welcher furchtbaren Wahrheit man im Traum begegnet ist!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Ist der Benutzer aktiv am Rechner / IdleTime / Bildschirmschoner abfragen

  Alt 17. Aug 2011, 11:50
Falscher Ansatz: GetLastInputInfo ist das Stichwort: http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#3

AW: Ist der Benutzer aktiv am Rechner / IdleTime / Bildschirmschoner abfragen

  Alt 17. Aug 2011, 12:38
Wobei mir schon seit einer ganzen Weile eine etwas ähnliche frage beschäftigt.
(hatte aber nie die Zeit/Muse da mal genauer nachzusehn)

Terminal Server:
- Gild GetLastInputInfo für den Benutzeraccount, in welchem das Programm läuft, oder für alle Benutzer?
- Bekommt man irgendwie einfach mit, ob gerade wer eingeloggt ist, da wo das Programm läuft?




Das mit Bildschirmschoner abfragen ist soeine Sache, denn den kann man auch manuell Starten und praktisch muß er sich auch nicht beenden, wenn jemand was mit der Maus/Tastatur macht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Ist der Benutzer aktiv am Rechner / IdleTime / Bildschirmschoner abfragen

  Alt 17. Aug 2011, 14:30
Gild GetLastInputInfo für den Benutzeraccount, in welchem das Programm läuft, oder für alle Benutzer?
Aus Luckies Link: This function is useful for input idle detection. However, GetLastInputInfo does not provide system-wide user input information across all running sessions. Rather, GetLastInputInfo provides session-specific user input information for only the session that invoked the function.
Ansgar
  Mit Zitat antworten Zitat
Benutzerbild von Cyberaxx
Cyberaxx

Registriert seit: 15. Jul 2005
311 Beiträge
 
Delphi XE5 Professional
 
#5

AW: Ist der Benutzer aktiv am Rechner / IdleTime / Bildschirmschoner abfragen

  Alt 17. Aug 2011, 21:22
Hallo und Sorry das ich mich jetzt erst wieder zu Wort melde.

Ich bedanke mich für die schnelle Antwort Luckie.
Genau nach sowas habe ich gesucht. Es ist gerade zu perfekt und ohne großartiges Programmieren von Hocks oder sonstigen Kram.
Mal eine Echt geile Info von der API.

Direkt eingebaut und es funktioniert.

Damit hätte sich dann die offene Frage ergeben. Danke nochmals.

@dit
@Luckie
Ja das stimmt schon das es ein falscher Ansatz wäre, mir ist aber auf anhieb nichts besseres in den Sinn gekommen. Der eigene Bildschirmschon sendet eine Nachricht ans Interface "nu ist Idle" und damit hätte das Interface die Ports abgeschaltet.

@himitsu
Ja aber das wäre ja meine programmierarbeit gewesen. Ich hätte ihn dementsprechend einstellen müssen. Es sollte ja nicht auf jeden Bildschirmschoner reagiert werden, sondern auf den eigenen der eine Nachricht verschickt.

Die Lösung ist natürlich um eines eleganter und arbeitsschonender.

Gruß
Daniel
Daniel
Das Aufwachen aus einem boesen Traum muss einen nicht erleichtern. Es kann einen auch erst richtig gewahr werden lassen, was man Furchtbares getraeumt hat, vielleicht sogar welcher furchtbaren Wahrheit man im Traum begegnet ist!

Geändert von Cyberaxx (17. Aug 2011 um 21:29 Uhr) Grund: Nachtrag
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:37 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