Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Password Generator NonVCL ~22kb (neu 28.03.09) (https://www.delphipraxis.net/114094-password-generator-nonvcl-%7E22kb-neu-28-03-09-a.html)

lbccaleb 19. Mai 2008 16:52


Password Generator NonVCL ~22kb (neu 28.03.09)
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hey there,

angetrieben von diesem Thread:

Passwort Generator

Hatte ich ja wie die anderen auch, mich rangesetzt und auch einen Passworgenerator geschrieben! Dabei hab ich mich an das Design und den code von "Rollstuhlfahrer" gehalten, der ja so schon gut genug war. Nur leider ein wenig zu gross. Also hab ich das ganze Ding in nonVCL umprogrammiert...

Hier der Link zu dem Passwort Generator von Rollstuhlfahrer:

Passwort Generator von Rollstuhlfahrer



Neue Version (30.07.08 )
nun wird demonstriert, wie ihr das passwort auch in die zwischenablage bekommt..
diese wurde mit einer CheckBox gelöst, siehe Screenshot

Neue Version (01.02.09 )
Habe nun eine Funktion mit eingebaut, die anzeigt wie sicher das PW ist!
Diese Funktion ist hier zu finden:
PassphraseQuality
Das Programm zeigt die Sicherheit nun in Prozent an und Färbt das Edit ein!

Neue Version (28.03.09 )
Nun können auch eigene Chars ausgewählt werden!

Fussball-Robby 19. Mai 2008 16:56

Re: Password Generator
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das Programm ist schön klein, nur leider wird auch nichts angezeigt (Anhang)...

Die Muhkuh 19. Mai 2008 17:01

Re: Password Generator
 
Du hast zweimal Kleinbuchstaben + Zahlen in der Box stehen, aber einmal sind es Großbuchstaben. ;)

Benutzerdefiniert fehlt mir noch.

lbccaleb 19. Mai 2008 17:08

Re: Password Generator
 
Zitat:

Zitat von Fussball-Robby
Das Programm ist schön klein, nur leider wird auch nichts angezeigt (Anhang)...

ja, ich sag ja irgendwo ist noch nen fehler drinn, nur das er gar nichts anzeigt das ist auch mal merkwürdig, woran liegt das denn?? komisch komisch irgendwo ist da noch der wurm drin...

Luckie 19. Mai 2008 17:20

Re: Password Generator
 
Was den Fehler angeht, einfach mal in der Hilfe anchgucken unter runtime errors:
Zitat:

201 Range check error

lbccaleb 19. Mai 2008 17:26

Re: Password Generator
 
Zitat:

Zitat von Luckie
Was den Fehler angeht, einfach mal in der Hilfe anchgucken unter runtime errors:
Zitat:

201 Range check error

das hab ich schon, wir haben in dem anderen fred schon darüber disskutiert, nur komisch ich hab nicht wirklich nen plan, wieso der fehler auftritt und wo, ursprünglich hieß es, das es an den zuweisungen der schriften liegt, nur wenn ich diese raus nehme kommt der fehler immer noch...

und wieso gar nichts im fenster angezeigt wird, das weiß ich auch nicht genau, denn das hatte ich noch gar nicht..

FAlter 19. Mai 2008 17:40

Re: Password Generator
 
Hi,

zu dem Range Check hab ich doch schon was gepostet. Entweder Typecasten oder Range Checks ausstellen. THandle ist nun einmal unsigned und die Parameter von SendMessage signed. Die Parameter von SendMessage muss man öfters mal Typecasten, z. B. auch Pointer->Integer, in deinem Fall THandle->Integer.

Mit den Änderungen, die ich da gepostet habe, konnte ich das Programm dann auch starten. (Vorher kamm ja immer die Fehlermeldung).

Mfg
FAlter

Luckie 19. Mai 2008 17:42

Re: Password Generator
 
Hilfe lsen bildet. ;)

Zitat:

The UPDOWN_CLASS window class is registered when the common controls DLL is loaded. If you create an up-down control without using the CreateUpDownControl function, you must ensure that the DLL is loaded. You can do so by using the InitCommonControls function.
Delphi-Quellcode:
var
  {Fensterklasse}
  wc: TWndClassEx = (
    cbSize         : SizeOf(TWndClassEx);
    Style          : CS_HREDRAW or CS_VREDRAW;
    lpfnWndProc    : @WndProc;
    cbClsExtra     : 0;
    cbWndExtra     : 0;
    hbrBackground  : color_btnface + 1;
    lpszMenuName   : nil;
    lpszClassName  : ClassName;
    hIconSm        : 0);
  msg: TMsg;

begin
  InitCommonControls; // <- benötigt für SpinEdit
  SetLastError(0);
  wc.hInstance := hInstance;
  wc.hIcon     := LoadIcon(0, IDI_APPLICATION);
  wc.hCursor   := LoadCursor(0, IDC_ARROW);

  {Fenster anmelden}
  RegisterClassEx(wc);
  Writeln(GetLastError);
  {Fenster erstellen}
  CreateWindowEx(0, ClassName, AppName, WS_CAPTION or WS_VISIBLE or WS_SYSMENU or WS_MINIMIZEBOX, 0, 0, WindowWidth, WindowHeight, 0, 0, hInstance, nil);
  // ...;
  // ...;
GetLastError war übrigens 2 (Datei ncht gefunden) nach RegisterCLassEx.

lbccaleb 19. Mai 2008 17:59

Re: Password Generator
 
ich hab jetzt die dinge berücksichtig, und oben noch mal eine neue version hochgeladen...
jetzt hatte ich keine fehler mehr, bleibt bloß noch die frage wieso das fenster lehr geblieben ist... ?? :gruebel:

Luckie 19. Mai 2008 18:12

Re: Password Generator
 
Das habe ich dir doch gerade erklärt.

Fussball-Robby 19. Mai 2008 18:15

Re: Password Generator
 
Ich kann auf jeden Fall bestätigen, dass es jetzt funktioniert :wink:

lbccaleb 19. Mai 2008 18:20

Re: Password Generator
 
ok danke an alle fürs lösen des problems, so wie es aussieht funktioniert ja nun alles ;-)
sehr gut!! hehe

lbccaleb 14. Jul 2008 17:45

Re: Password Generator
 
Neue Version oben hochgeladen, mit nochmals überarbeitetem quellcode!!

lbccaleb 30. Jul 2008 19:40

Re: Password Generator NonVCL ~22kb (neu 30.07.08)
 
Oben noch ne neue Version hochgeladen...

lbccaleb 31. Jan 2009 23:20

Re: Password Generator NonVCL ~22kb (neu 30.07.08)
 
Neue Version (01.02.09 )
Habe nun eine Funktion mit eingebaut, die anzeigt wie sicher das PW ist!
Diese Funktion ist hier zu finden:
PassphraseQuality
Das Programm zeigt die Sicherheit nun in Prozent an und Färbt das Edit ein!

Luckie 1. Feb 2009 03:52

Re: Password Generator NonVCL ~22kb (neu 01.02.09)
 
Wenn du das Edit mit subclassed und WM_PAINT überscheibst, müsstest du den Hintergrund SetBkMode transparent bekommen. Übrignes hast du viele überflüssige globale Variablen. Zum einen nutzt du sie nicht und zum anderen kannst du sie dir mit GetDlgItem holen, wenn du sie brauchst.

Und wenn du die Checkbox mit BS_AUTOCHECKBOX erzeugst, brauchst du dich nicht um den Status selber zu kümmern, das macht Windows dann für dich.

Noch was, wenn du Dialogressourcen nutzt, dann kannst du dir mit einem Ressourceneditor dein Fenster/Dialog einfach zusammenklicken und brauchst nicht alles mühsam zur Laufzeit erstellen.

Wenn du deine Nachrichtenchleife so erweiterst:
Delphi-Quellcode:
      {Fenster erzeugen}
  hAppWnd := CreateWindowEx(0, ClassName, AppName, WS_CAPTION or WS_VISIBLE or WS_SYSMENU or WS_MINIMIZEBOX,
    Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), WindowWidth, WindowHeight, 0, 0, hInstance, nil);

        {Nachrichtenschleife aufrechterhalten}
  while GetMessage(msg, 0, 0, 0) do
  begin
    if IsDialogMessage(hAppWnd, msg) = FALSE then
    begin
      TranslateMessage(msg);
      DispatchMessage(msg);
    end;
  end;
Und den Steuerelementen den Stil WS_TABSTOP gibst, kann man auch mit der Tabulatortaste durch die Steuerelemente springen.

Ach, es nervt, dass die Checkbox, ob das Passwort in die Zwischenablage kopiert werden soll, standardmäßig aktiviert ist.

lbccaleb 1. Feb 2009 10:07

Re: Password Generator NonVCL ~22kb (neu 01.02.09)
 
Erstmal danke für deine Tipps!
Habe das Programm so angepasst wie du geschrieben hast!
Bis auf:

Zitat:

Zitat von Luckie
Noch was, wenn du Dialogressourcen nutzt, dann kannst du dir mit einem Ressourceneditor dein Fenster/Dialog einfach zusammenklicken und brauchst nicht alles mühsam zur Laufzeit erstellen.

Da ich die ja ehh nun schon alle einzeln eingegeben hab!

Und zum Subclassen:
Zitat:

Zitat von Luckie
Wenn du das Edit mit subclassed und WM_PAINT überscheibst, müsstest du den Hintergrund SetBkMode transparent bekommen. Übrignes hast du viele überflüssige globale Variablen. Zum einen nutzt du sie nicht und zum anderen kannst du sie dir mit GetDlgItem holen, wenn du sie brauchst.

Mir ist zuerst gar nicht aufgefallen dass das Edit gar nicht wirklich Transparent ist, da ich nie reingeklickt hab!
Erst nach dem du das geschrieben hast ist mir aufgefallen das er den Hintergrund wieder weiß einfärbt!
Du musst aber nicht unbedingt extra das Control "Subclassen" da du dierekt auf den Canvas von wParam der Message "WM_CTLCOLOREDIT" zeichnene kannst! Hatte also nur vergessen das
Delphi-Quellcode:
            SetBkMode(wParam, TRANSPARENT);

hinzuzufügen! Das gleiche klappt auch bei anderen Controls wie Combobox oder Label!

ACHTUNG:
Wenn das Control "disabled" ist, wird die Message nicht gesendet! Und deswegen auch nicht eingefärbt!

mfg

Luckie 1. Feb 2009 13:13

Re: Password Generator NonVCL ~22kb (neu 01.02.09)
 
Zitat:

Zitat von lbccaleb
Wenn das Control "disabled" ist, wird die Message nicht gesendet! Und deswegen auch nicht eingefärbt!

Richtig, an deaktivierte Edits wird COLORSTATIC-nachricht geschickt. Steht auch im SDK.

lbccaleb 28. Mär 2009 14:46

Re: Password Generator NonVCL ~22kb (neu 01.02.09)
 
Zitat:

Zitat von Die Muhkuh
Benutzerdefiniert fehlt mir noch.

Da ich ja ab und an langeweile habe :lol:

Hab ich mal ein wenig an dem Teil weiter rumgebastelt, jetzt unterstützt er das auswählen eigener Chars!

Neue Version im ersten Post hochgeladen!

Mfg


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