![]() |
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:
Ich weiss, dass das ganze nicht besonders schön programmiert ist, da ich eben am ausprobieren bin.
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; |
Re: Passwort-Übergabe an Windows
mach das plz mit delphi tags :-D
|
Re: Passwort-Übergabe an Windows
|
Re: Passwort-Übergabe an Windows
Sorry, ist meine erste Einstellung hier in dieses Forum. Habe die Darstellung nun bereinigt.
|
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 |
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 |
Re: Passwort-Übergabe an Windows
Zitat:
Ich sehe aber nicht ein, weshalb ich nicht mit keybd_event etwas diesen Anmeldebildschirm senden kann. Ist doch auch bloss ein Fenster. |
Re: Passwort-Übergabe an Windows
hmm ... bin net sicher aber evtl. hilft dir
![]() [OT] Darf ich hier eigentlich an das swissdelphicenter verlinken?[/OT] |
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? |
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.
|
Re: Passwort-Übergabe an Windows
Zitat:
|
Re: Passwort-Übergabe an Windows
Zitat:
|
Re: Passwort-Übergabe an Windows
Zitat:
Delphi-Quellcode:
zu gelangen (egal, mit welchem Parameter am Ende), bekomme ich einen ACCESS_DENIED-Fehler zurück.
OpenDesktop('winlogon', 0, False, MAXIMUM_ALLOWED)
Weiss jemand, ob und wie man trotzdem drauf kommt? Die guten Ratschläge, mein Programm in einen eigenen Screen-Saver einzubinden, sind nämlich nicht die Lösung. Ich sollte ja auch eine Eingabe ins Passwort-Feld generieren können, wenn der Benützer den PC mit Crtl-Alt-Del gesperrt hat. |
Re: Passwort-Übergabe an Windows
Mist, da hab eich Desktops und Windows-Stationen durch einander geschmissen. :?
|
Re: Passwort-Übergabe an Windows
Zitat:
So, an den Fragesteller: Warum kannst du das ganze nicht in einer Replacement-GINA realisieren? Die hat Zugriff (und vor allem Privilegien) auf alle Teile (also alle Desktops, inkl Screensaver) und kann je nach aktivem Desktop auf dem aktuellen eine Meldung anzeigen. Und das Beste: Das ginge auch ohne die Systemsicherheit durch automatische Entsperren zu gefährden! Wie geht das? Hier ein paar Links: http://assarbad.net/stuff/!export/winwlx.pas http://assarbad.net/stuff/!export/agreementgina_special.rar http://assarbad.net/stuff/!export/agreementgina.rar http://assarbad.net/stuff/!export/agreementgina%20(old).rar ![]() Gruß, |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:16 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