Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi System anhalten bis Form geschlossen ist. (https://www.delphipraxis.net/7780-system-anhalten-bis-form-geschlossen-ist.html)

Interritor 21. Aug 2003 12:52


System anhalten bis Form geschlossen ist.
 
Hi zusammen,

ich hab mal wieder eine Frage und zwar will ich einen Login-Programm für Windows schreiben. Nur wie schaff ich es das man "Windows" erst wieder benutzen kann wenn man sich erfolgreich eingeloggt hat sprich die Form geschlossen/ beendet wurde?

Ich hoffe hier versteht was ich meine.



Schonmal viel Dank im vorraus!


mfg
Interritor

neolithos 21. Aug 2003 13:05

Re: System anhalten bis Form geschlossen ist.
 
Für welches System Win9x oder NT,2k,XP

da gibt es empfindliche Unterschiede...

Interritor 21. Aug 2003 13:08

Re: System anhalten bis Form geschlossen ist.
 
Für Win 2k.

Illuminator-23-5 21. Aug 2003 13:17

Re: System anhalten bis Form geschlossen ist.
 
du könntest folgendes machen:
form1.FormStyle := fsStayOnTop;
die Taskbar verstecken (geht so:
Delphi-Quellcode:
var
  wndHandle : THandle;
  wndClass : array[0..50] of Char;
begin
  StrPCopy(@wndClass[0], 'Shell_TrayWnd');
  wndHandle := FindWindow(@wndClass[0], nil);
  ShowWindow(wndHandle, SW_HIDE);
, mit SW_RESTORE wieder sichtbar machen)
dann irgendwie Alt+Tab und ähnliche systemroutinen abfangen,

bis er eben wieder das Passwort eingegeben hat oder so
ist ziemlich umständlich und wahrscheinlich (sicherlich) nicht DIE Lösung, es wär aber 'ne (aufwendige) möglichkeit

sakura 21. Aug 2003 13:18

Re: System anhalten bis Form geschlossen ist.
 
Da musst Du Dich mit der "GINA.DLL" befassen. Am besten mal googeln oder bei MDSN vorbeischauen.

Bei Google suchengina.dll

...:cat:...

Luckie 21. Aug 2003 13:22

Re: System anhalten bis Form geschlossen ist.
 
Öhm, falls du es noch nichtbemerkt hast, Windows2000 hat schon ein "Login-System". Wozu soll deines jetzt noch gut sein?

Interritor 21. Aug 2003 13:27

Re: System anhalten bis Form geschlossen ist.
 
Schonmal Danke!!!

Das Windows ein Login System hat weiss ich auch, ich will aber ein Chipkarten-Login-System schreiben. Wo halt die Informationen auf einer Chipkarte gelesen und überprüft werden.

Frank2269 21. Aug 2003 13:28

Re: System anhalten bis Form geschlossen ist.
 
Hallo Interritor,

Um das System einzuschließen kannst du folgendes versuchen ...
Bei Windows 2000, NT 4 funktioniert das super.

Delphi-Quellcode:
Function LockWS: Boolean;
type
  TLockWorkStation = function: Boolean;
var
  hUser32: HMODULE;
  LockWorkStation: TLockWorkStation;
begin
  hUser32 := GetModuleHandle('USER32.DLL');
  if hUser32 <> 0 then
  begin
    @LockWorkStation := GetProcAddress(hUser32, 'LockWorkStation');
    if @LockWorkStation <> nil then
    begin
      LockWorkStation;
      Result := True;
    end;
  end;
end;
Der Aufruf der Function ist ...

Delphi-Quellcode:
procedure TForm1.SytemEinschlieen1Click(Sender: TObject);
begin


if not LockWorkStation then MessageDlg('Vorgang fehlgeschlagen !', mtError,[mbOk], 0);



end;

neolithos 21. Aug 2003 13:39

Re: System anhalten bis Form geschlossen ist.
 
@Frank: Wie verhält sich LockWorkStation?

Für den Dialog:

@Illuminator
Der sicherste weg ist über CreateDesktop eine Login-Session erstellen!
So machst jedenfalls Microsoft.

Oder


via Hook alles Unterdrücken was WM_CREATE abfeuert.
Und was schon da ist Hidden.

negaH 21. Aug 2003 14:06

Re: System anhalten bis Form geschlossen ist.
 
Win2k unterstürzt doch schon SmartCard Login's ?
Es müssen halt richtige SmartCard's sein, und keine Speicherkarten von Towikoto.

Gruß Hagen

Interritor 22. Aug 2003 15:41

Re: System anhalten bis Form geschlossen ist.
 
Super Danke zusammen... ich werde mir die Sachen mal angucken.

Luckie 22. Aug 2003 16:58

Re: System anhalten bis Form geschlossen ist.
 
@Frank2269: Und dann ist die Workstation gesperrt und dann? Wie willst du dann dein eigenes Login-Programm laufen lassen? :shock:

Frank2269 23. Aug 2003 09:51

Re: System anhalten bis Form geschlossen ist.
 
Hallo Luckie,

das dies nicht funktionieren wird da hast du wohl recht!

Habe mal überlegt wie so was zu bewerkstelligen ist.

Man könnte einfach ein zwietes Modul schreiben via Screensaver, einen modifizierten Bildschirmschonner.

Denn man halt so Programmiert das dieser den Anforderungen gerecht wird.

Denn ein Bildschirmschoner ist Systemmodal, kein [STRG]+[ALT]+[Entferntaste] oder [ALT]+[TAB] können einem Bildschirmschonner übergehen.


Gruß
Frank

Luckie 23. Aug 2003 13:04

Re: System anhalten bis Form geschlossen ist.
 
Zitat:

Zitat von Frank2269
Denn ein Bildschirmschoner ist Systemmodal, kein [STRG]+[ALT]+[Entferntaste] oder [ALT]+[TAB] können einem Bildschirmschonner übergehen.

Du hast kein Windows2000 oder? :roll:

Assarbad 23. Aug 2003 21:17

Re: System anhalten bis Form geschlossen ist.
 
Also, wie sakura schon sagte, an einer eigenen GINA.DLL kommste nicht vorbei. Und selbst dann solltest du auf die meisten Funktionen der MSGINA.DLL zurückgreifen.

Das mit dem Bildschirmschoner ist natürlich absoluter QUARK!!! - da hat Luckie vollkommen recht!

@neolithos: Weißt du überhaupt wovon du redest???? -> "CreateDesktop()"
Was ist das denn für ein Mist? Klar benutzt MS CreateDesktop, aber sicher nicht um eine LogonSession zu erstellen. Desktop <> WindowStation <> LogonSession <> Token ... ich kann allen Teilnehmern (außer Hagen und Sakura) dieses Threads nur stark empfehlen sich das Buch "Programming Windows Security" von Keith Brown zu kaufen und auch zu lesen.

Für eine eigene GINA reicht allerdings schon das PSDK ;)

neolithos 25. Aug 2003 10:09

Re: System anhalten bis Form geschlossen ist.
 
Ich hab zu ein Test-Programm, welches alle Desktop's ausliest. Darunter gibt es auch einen der LogIn heißt.

Mir ist es auch gelungen mal einen Desktop zu erzeugen (leider sich bis jetzt noch kein Anwendungsgebiet). Man kann nur über das Programm zurück wechseln, es scheint als wär eine neue Session oder sowas entstanden.

Ich geb ja zu außer diesen kleinen Test habe ich noch nicht mehr gemacht.

Frank2269 25. Aug 2003 10:12

Re: System anhalten bis Form geschlossen ist.
 
Hallo,

auf unserem Firmenrechner ist Windows 2000 installiert, und ein Desktop mit Büroanwendungen.

Wenn wir unseren Arbeitsplatz verlassen wird eine Tastenkombination gedrückt. und ein Anmeldedialog wird geöffnet das mann diesen nicht mit STRG+ALT+Entfernen oder Alt + TAB übergehen kann.

Die Anwendungen im Hintergrund laufen durchaus weiter.

In dem Systemverzeichniss fand ich eine Datei "Logonof.scr" die dann aufgerufen wird.

Und daher stand die Idee mit dem Bildschirmschoner.

Gruß Frank

Assarbad 25. Aug 2003 12:52

Re: System anhalten bis Form geschlossen ist.
 
Jupp, nur, daß du auch den Bildschirmschoner komplett weglassen kannst. Der läuft übrigens seit Windows 2000 glaub ich auch in einem eigenen Desktop.

thefuture 11. Sep 2003 14:59

Re: System anhalten bis Form geschlossen ist.
 
kann mir jemand sagen wie das bei Win98 geht (System anhalten bis Form geschlossen ist)?

Assarbad 11. Sep 2003 15:59

Re: System anhalten bis Form geschlossen ist.
 
*schnarch* Bildschirm ausschalten und dann den PC ausschalten (= System anhalten) danach Bildschirm wieder anschalten und gucken ob das Form noch da ist.

Also nochmals, es ist TOTALER Quark sowas auch nur vorzuhaben. Ihr wollt ja nicht wirklich das System anhalten (dann würde nämlich "das Form" auch nix machen) sondern ihr wollt maximal Eingaben abfangen. Dann schreibt halt Tastaturtreiber ... oder eine Kombo-Lösung aus GINA und Hooks auf NT ... zuguterletzt viel Spaß, denn es ist totaler Quark *kopfschüttel*

thefuture 12. Sep 2003 14:27

Re: System anhalten bis Form geschlossen ist.
 
ihr seid doch alle zu doof. ich habs jez schon hingekriegt. in der schule sollen sich alle mit ihrem namen anmelden. desswegen soll man die eingabe nicht umgehen können. hab einfach alle hotkeys ausgeschaltet und bei onclose action auf canone gesetzt.

neolithos 12. Sep 2003 14:29

Re: System anhalten bis Form geschlossen ist.
 
Du bist ein Held das kann ja jeder! Da hättest du mal deine Frage anders Formulieren sollen.

thefuture 12. Sep 2003 14:44

Re: System anhalten bis Form geschlossen ist.
 
ich wollte das das teil so kommt wie z.b. die novell anmeldung. gleich beim windowsstart bevor die startleiste usw geladen ist. und nach dem anmelden wird erst weiter geladen

Matze 12. Sep 2003 14:52

Re: System anhalten bis Form geschlossen ist.
 
@thefuture: Du hast ja einen Tonfall! :dp:

Das, was du jetzt machst, hält doch nicht das System an. Würde es das machen, dann könntest du dein Prog vergessen, da das System ja auf keine Eingaben mehr reagiert.

Aber du hast Recht, so geht's auch. Aber doof sind die DPler nicht! :warn:

thefuture 12. Sep 2003 15:37

Re: System anhalten bis Form geschlossen ist.
 
aber bei novell funktionierts auch

Assarbad 12. Sep 2003 16:27

Re: System anhalten bis Form geschlossen ist.
 
Zitat:

Zitat von thefuture
ihr seid doch alle zu doof.

Danke fuer das Kompliment. Wenn das "die Zukunft" (siehe Nickname) ist, dann gute Nacht :? ... es gibt immer wieder Trolle, aber einfach Leute als doof zu bezeichnen, weil man nicht in der Lage ist sich selbst auszudruecken ist schon ein starkes Stueck :evil:

Nachtrag: Novell und "die Windows-Anmeldung" funktionieren nach einem ganz anderen Prinzip. System anhalten ist nun mal Prozessor abschalten etc ... das heisst KEIN PROGRAMM kann mehr etwas machen. Nun ueberdenke nochmal deine Frage und deinen Kommentar :-/

orion3000 12. Sep 2003 16:58

Re: System anhalten bis Form geschlossen ist.
 
Hallo Zusammen,

ich finde auch den Tonfall von thefuture ein bischen übertrieben und überheblich muß das denn so sein ?!

Man kann ja nicht alles wissen und deswegen gibt es ja eben dieses Forum.


Gruß
Orion3000

neolithos 12. Sep 2003 17:29

Re: System anhalten bis Form geschlossen ist.
 
Um zum Thema zu finden.

Hat keiner meinen Beitrag vom 25.08.2003, 10:09 gelesen. Das wäre wenigstens ein Anhaltspunkt den ich selbst noch nicht nachgegangen bin.

Die Angaben sind so wage, da das das Testprogramm auf einer alten Platte Gott hab sie seelig schnieff verloren gegangen ist und noch nicht die ehre hatte ein Backup zu erhalten.

Ich hab mich auch nie wieder damit beschäftig.

Assarbad 12. Sep 2003 17:51

Re: System anhalten bis Form geschlossen ist.
 
Session und Desktop sollte man nicht durcheinander werfen. Ein Desktop ist ein Container fuer verschiedene Objekte (zB Fenster und Programm IO) und wiederum eingebettet in eine WindowStation (weiterer Container). Ene WindowStation koennte man am ehesten als Repraesentation einer Session bezeichnen, stimmt aber auch nicht ganz.

Ich kann nur sagen, dass jede Loesung, die auf NT alles andere umgeht OHNE eine eigene GINA zu benutzen auch garantiert verwundbar ist. Wenn man die Moeglichkeiten hat, sollte man sie auch nutzen.

Lest mal "Programming Windows Security" von Keith Brown!


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 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