AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Bildschirmschoner / Computer Sperren Problem
Thema durchsuchen
Ansicht
Themen-Optionen

Bildschirmschoner / Computer Sperren Problem

Ein Thema von SonicTTH · begonnen am 4. Feb 2010 · letzter Beitrag vom 4. Feb 2010
Antwort Antwort
SonicTTH

Registriert seit: 12. Dez 2008
Ort: Rostock
54 Beiträge
 
#1

Bildschirmschoner / Computer Sperren Problem

  Alt 4. Feb 2010, 13:31
Hallo,

Ich möchte einen bildschirmschoner erstellen der einen countdown anzeigt und nach ablauf dieses countdowns den computer sperrt (also als sicherheitsvorrichtung).

Das funktioniert soweit bereits ganz gut.

Ausserdem möchte ich, wenn sich der benutzer das nächste mal anmeldet, dass dieser dann eine nachricht in form eines fensters mitteilt, dass der computer automatisch gesperrt wurde.

Das bereitet mir ein problem, denn ich habe das bisher so gemacht, das mein programm wenn der countdown abgelaufen ist, noch bevor der computer gesperrt wird, sich selbst erneut öffnet und dabei einen parameter übergibt. Anhand dieses parameters wird dann die nachricht angezeigt ("Automatisch gesperrt"). Nun ist es so, dass das ganze wunderbar funktioniert wenn man in windows den bildschirmschoner einstellungen dialog öffnet, dort den bildschirmschoner festlegt und auf "vorschau" klickt. Alles wunderbar:

Der countdown startet,
wenn er endet wird der computer gesperrt.
Nach dem einloggen wird dann das programm angezeigt mit besagter nachricht.

Wenn der Bildschirmschoner aber natürlich gestartet wird (also von alleine durch das systemevent), funktionierts nicht. Der countdown kommt zwar und der computer wird auch gesperrt, aber die nachricht wird nach dem anmelden nicht angezeigt. Ich vermute daher dass Windows in dem fall des ausloggens durch den "natürlich" gestarteten bildschirmschoner zunächst die gesamte prozessstruktur des Bildschirmschoners tötet.

Stimmt meine vermutung oder gibt es dafür eine andere ursache? Egal was es ist, wie kann ich das umgehen?

Ich versuche bereits mein programm über eine batch datei neu zu starten, was aber aufs selbe hinausläuft...

Mittlerweile bin ich etwas ratlos - also bitte helft mir

Danke schonmal
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#2

Re: Bildschirmschoner / Computer Sperren Problem

  Alt 4. Feb 2010, 13:39
Wenn man die Option "Kennwort nach Reaktivierung anfordern" aktiviert hat, dann erzeugt Windows einen neuen Desktop. Dort läuft dann der Bildschirmschoner, damit man nicht einfach per Alt+Tab auf andere Fenster umschalten kann, und so z.B. die Kennworteingabe umgehen kann.
Wenn nun der Bildschirmschoner beendet wird, schaltet Windows wieder auf den "default" Desktop um. D.h. die Messagebox in deinem neuen Prozess wird wohl noch auf dem anderen "unsichtbaren" Desktop angezeigt.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
SonicTTH

Registriert seit: 12. Dez 2008
Ort: Rostock
54 Beiträge
 
#3

Re: Bildschirmschoner / Computer Sperren Problem

  Alt 4. Feb 2010, 14:27
"Anmeldeseite bei Reaktivierung" ist bei mir deaktiviert - trotzdem selbes problem.

Gibts vielleicht ne möglichkeit beim erneuten login ein programm aufzurufen?
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#4

Re: Bildschirmschoner / Computer Sperren Problem

  Alt 4. Feb 2010, 16:04
Ein Bildschirmschoner ist doch nichts anderes als ein ganz normales Programm, welches mit Parametern zeitgesteuert aufgerufen wird. Man kann auch die CMD als Bildschirmschoner haben, wenn man will. Man braucht nur eine Kopie der CMD.exe, kopiert diese in %WinDir% und benennt sie nach CMD.scr um. Dann nur noch als Bildschirmschoner einstellen, fertig.
Soviel zur Theorie. Warum rufst du dein Programm denn erneut auf? Sag dem Programm doch, dass es sich verstecken soll (Hide) und mach schon mal die Meldung bezüglich der automatischen Sperre. Dann sperrst du erst den Bildschirm. Wenn sich dann der User erneut anmeldet, dann sieht er ja die Meldung, weil sie schon vor dem Sperren existierte.

Bernhard

PS: Es könnte noch ein Problem vorhanden sein: Wenn der Bildschirm gesperrt ist, könnten vielleicht die Meldungen wirklich auf dem 2. "unsichtbaren" Bildschirm erscheinen. Ich kenn mich hier aber nicht gut genug aus.
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
SonicTTH

Registriert seit: 12. Dez 2008
Ort: Rostock
54 Beiträge
 
#5

Re: Bildschirmschoner / Computer Sperren Problem

  Alt 4. Feb 2010, 17:02
Erstmal: Computer sperren, nicht bildschirm sperren. Das Computer sperren erzeugt eine tötung der gesamten prozesstruktur des Bildschirmschoners. Daher nix mit "cmd aufrufen und damit dann die meldung 1 und 2 etc". Das ist dann alles tot!

Und mit computer sperren ist gemeint dass man sich auch an einer workstation eine remotedesktopverbindung herstellen kann. Das geht nämlich nicht, wenn irgendein user eingeloggt ist, bzw, sein bildschirmschoner läuft und er wird erst ausgeloggt, wenn dieser wieder beendet wird.

Ich mache das ganze jetzt anders. Ich erstatte dann später bericht.
  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 13:49 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