Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Passwort-Übergabe an Windows (https://www.delphipraxis.net/28881-passwort-uebergabe-windows.html)

hesch21 31. Aug 2004 18:56


Passwort-Übergabe an Windows
 
Hallo zusammen
ich versuche ein Programm zu erstellen, das bei laufendem Screen-Saver mit Passwort-Schutz diesen automatisch ausschaltet und danach das in einem Edit-Feld bereit stehende Passwort in die Windows-Dialog-Box 'einfüllt'. Das Programm sollte unter W2000 oder XP laufen.
Ich bin mit nachfolgendem Code auch bereits soweit, dass mir der Screen-Saver ausgeschaltet wird und eben diese Dialog-Box angezeigt wird. Aber die enthaltene Routine mit den KEYBD_EVENT funktioniert nicht, resp. die Tasteneingaben laufen nicht ins Passwortfeld der Dialogbox, obwohl dieses fokusiert ist.
Was mache ich da falsch, resp. was habe ich vergessen oder übersehen?
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var x : integer;
var q : char;
var hDesktop: HDESK;
begin
  if not ScreenSaverRunning then
     Memo1.Lines.Append('SS läuft nicht')
  else
     begin
     Memo1.Lines.Append('SS läuft');
     hDesktop := OpenDesktop('screen-saver', 0, False, MAXIMUM_ALLOWED);
     if hDesktop <> 0 then
        begin
        EnumDesktopWindows(hDesktop, @EnumWindowCallback, 0);
        Form1.JvWavePlayer1.Play;
        for x := 1 to length(Form1.Edit1.Text) do
            begin
            q := UpCase(Form1.Edit1.Text[x]);
            keybd_event(Ord(q), 0, 0, 0);
            end;
        keybd_event(13,0,0,0);
        CloseDesktop(hDesktop);
        end
     else
        begin
        PostMessage(GetForegroundWindow(), WM_CLOSE, 0, 0);
{     SetCursorPos(10,10);
     SetCursorPos(20,20); }
        for x := 1 to length(Form1.Edit1.Text) do
           begin
           q := UpCase(Form1.Edit1.Text[x]);
           keybd_event(Ord(q), 0, 0, 0);
           end;
        keybd_event(13,0,0,0);
        JvWavePlayer1.Play;
        end;
     end;
end;
Ich weiss, dass das ganze nicht besonders schön programmiert ist, da ich eben am ausprobieren bin.

HW764 31. Aug 2004 18:57

Re: Passwort-Übergabe an Windows
 
mach das plz mit delphi tags :-D

sakura 31. Aug 2004 19:01

Re: Passwort-Übergabe an Windows
 
Zitat:

Zitat von HW764
mach das plz mit delphi tags :-D

FAQ-Eintrag zum Stichwort "9""9"

...:cat:...

hesch21 31. Aug 2004 20:52

Re: Passwort-Übergabe an Windows
 
Sorry, ist meine erste Einstellung hier in dieses Forum. Habe die Darstellung nun bereinigt.

himitsu 31. Aug 2004 21:34

Re: Passwort-Übergabe an Windows
 
Wieso schaltest du den den Passwortschutz des SS nicht einfach aus?


PS: wenn mich nicht alles täucht verwenden doch die Screensaver den Usernamen und das Passwort des aktiven Users (meißtens)
und wenn dann noch diese Daten frei zugänglich in irgendeinem Programm gespeichert, oder geladen sind, dann halte ich das aber für ein ganz nettes Sicherheitsloch.

[edit]
jetzt wo alcaeus das sagt, fällt mir wieder ein, dass ja das Windowsteil sich da anschlich ...
aber wer wills mir verübeln - hab ja schon seit Jahren keinen SS mehr drauf

alcaeus 31. Aug 2004 21:38

Re: Passwort-Übergabe an Windows
 
Hi hesch21,

vergiss deine Lösung mal für WinXP. Dort gibt es kein Passwort für den Bildschirmschoner mehr, vielmehr wird man an den Anmeldebildschirm zurückgeleitet. Ich glaube nicht dass deine Lösung da funktionieren wird.

Greetz
alcaeus

hesch21 1. Sep 2004 06:09

Re: Passwort-Übergabe an Windows
 
Zitat:

Zitat von alcaeus
Hi hesch21,

vergiss deine Lösung mal für WinXP. Dort gibt es kein Passwort für den Bildschirmschoner mehr, vielmehr wird man an den Anmeldebildschirm zurückgeleitet. Ich glaube nicht dass deine Lösung da funktionieren wird.

Greetz
alcaeus

Das ist nicht nur in XP so, sondern auch beim 2000. Und das Passwort ausschalten ist nicht die Idee, schliesslich soll der Schutz ja bestehen bleiben. Vielleicht ein paar Worte zum Projekt fürs bessere Verständnis: Es handelt sich um ein Alarmierungssystem über TCP/IP. Wenn nun eine Alarmmeldung eingeht, sollte diese angezeigt werden, unabhängig ob der PC gerade blockiert ist oder nicht. Deshalb auch der JvPlayer im Code, der einen Alarmsound abspielt (was übrigens bestens funktioniert).
Ich sehe aber nicht ein, weshalb ich nicht mit keybd_event etwas diesen Anmeldebildschirm senden kann. Ist doch auch bloss ein Fenster.

TeronG 1. Sep 2004 08:18

Re: Passwort-Übergabe an Windows
 
hmm ... bin net sicher aber evtl. hilft dir DAS weiter.

[OT] Darf ich hier eigentlich an das swissdelphicenter verlinken?[/OT]

Spezi1980 1. Sep 2004 08:28

Re: Passwort-Übergabe an Windows
 
Das Anmeldefenster von Win 2k und XP ist nicht "blos irgendein Fenster". Kann sein, dass du Dein Programm als Dienst laufen lassen mußt um dort überhaupt zugreifen zu können.

Warum Programmierst du dir nicht deinen eigenen Bildschirmschoner, der auch die Alarmmeldung mit ausgibt?

Luckie 1. Sep 2004 10:16

Re: Passwort-Übergabe an Windows
 
Also die Anmelde Dialoge werden auf einer anderen Windowsstation angezeigt. Da wirst du von der Benutzer-Windowssation nicht so einfach drankommen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 Uhr.
Seite 1 von 2  1 2      

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