Deutsch
Forum

Passwort-Edit

 
- Seite 1 -



Andre
Hilprecht
Hi,
brauche mal wieder Hilfe. Habe in meinem Prog einen Adminbereich der nur über ein einzugebendes Passwort zu erreichen sein soll. Funzt auch alles bestens - nur ich möchte jetzt noch erreichen das auch im Edit-Feld für die Passworteingabe die ***** (Sternchen) und nicht das Passwort in Reinschrift erscheinen.
Habe hier schon gesucht aber nix passendes gefunden.

Gruß André
 
Ein PC ist die beste Möglichkeit Fehler zu beheben, die ohne PC gar nicht passiert wären. -frei aus Murphy's Computergesetzen

XProfan X2, Win8 Pro 64bit Update von Win7
i5 / 3,2GHz 4 GB RAM
Treibstoff: Radeberger Pils
12.06.2006  
 



 
- Seite 2 -



Rolf
Koch
entweder Du klickst auf Ausführliche Antwort schreiben und hast da die Formatierungsoptionen oder du setzt es ohne die Leerzeichen zwischen dem code (nur damit es hier dargestellt wird):
[c o d e]hier der code[/c o d e]
 
13.06.2006  
 




Jörg
Sellmeyer
Andre Hilprecht
Das verstehe ich, alles klar.
Vielleicht brauchte ich den Umweg über GetText$(Pass%) nicht gehen, weil mein Passwort kein Wort sondern eine Zahl ist.

Was anderes, wie bekommt ihr den Programmcode hier in so ein Fenster, sieht besser aus und ich muss bestimmt mal wieder ein paar Zeilen Quellcode posten?

Gruß André


Das ist kein Umweg sondern die einzige Möglichkeit an den Text zu kommen - egal ob Text oder Zahl. Pass% enthält nur das Handle zum Editcontrol.
Wenn Du eine Zahl hast und weiterverwenden willst, darfst Du nicht vergessen sie mit Val(GetText$(Pass%)) in einen numerischen Wert zu verwandeln.

Gruß
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
13.06.2006  
 



Andre Hilprecht

Vielleicht brauchte ich den Umweg über GetText$(Pass%) nicht gehen, weil mein Passwort kein Wort sondern eine Zahl ist.


Den Umweg wirste schon gehen müssen
Beim erstellen des Edit-Controls ordnet Windows diesem eine Identifizierungnummer zu, die Du in Pass% gespeichert hast. Dort ist als nur die ID zum Edit gespeichert. Um an den Text zu kommen, mußt diesen mit GetText$ auslesen, wobei Du die ID zu dem Control übergibst, welches diesen Text enthält.

Ich bin zu langsam , naja alter Mann und die Hitze
 
13.06.2006  
 




Andre
Hilprecht
Hm, ihr macht mir gerade klar, das etwas nicht geht, was bei mir aber funzt ??!!??
Also mein Teil sieht jetzt so aus:
KompilierenMarkierenSeparieren
Text%    = @Create(Text,D%,Bitte Programmpasswort eingeben:,20,20,300,20)
Pass%    = @Create(Edit,D%,,   20, 50,200,-30)
Font%    = @Create(Font,Sans Serif,24,0,0,0,0)
SetFont Pass%, Font%
sendmessage(Pass%,204,ord(*),0)
OK%      = @Create(DefButton,D%,OK, 20,140, 140,30)
CANCEL%  = @Create(DefButton,D%,Abbruch,180,140,140,30)
@SetFocus(Pass%)
F% = 0

WhileNot F%

    WaitInput

    If Clicked(OK%)

        Pass$    = @GetText$(Pass%)

        If Pass$=0000

            DestroyWindow(OK%)
            F% = 1
            DestroyWindow(D%)
            Client

        ElseIf Pass$ <> 0000

            Text1% = @Create(Text,D%,Das Passwort ist leider,20,200,140,20)
            Text2% = @Create(Text,D%,F A L S C H   ! !,60,220,140,20)
            EnableWindow Text%,0
            EnableWindow Pass%,0
            EnableWindow OK%,0
            EnableWindow CANCEL%,0
            SLEEP 2500
            F% = 1
            DestroyWindow(D%)

        EndIf

    ElseIf @Clicked(CANCEL%)

        F% = 1
        DestroyWindow(D%)

    EndIf

EndWhile


und es funzt jetzt wunschgemäß.

Danke Euch allen, bis zum nächsten Denkanstoß Gruß André
 
Ein PC ist die beste Möglichkeit Fehler zu beheben, die ohne PC gar nicht passiert wären. -frei aus Murphy's Computergesetzen

XProfan X2, Win8 Pro 64bit Update von Win7
i5 / 3,2GHz 4 GB RAM
Treibstoff: Radeberger Pils
13.06.2006  
 



Du machst es doch so, wie wir schrieben
KompilierenMarkierenSeparieren
Pass$  = @Gettext$(Pass%)

Pass% ist die ID vom Edit
Pass$ ist die Stringvariable wo der Text gespeichert werden soll
 
13.06.2006  
 



 
- Seite 3 -



Andre
Hilprecht
Hast Recht, stimmt, das musste ich einbauen weil IMMER die Meldung kam;
Das Passwort ist leider falsch!
So funzt jetz jedenfalls meine Passwort-Abfrage wunschgemäß und mit Sternchen.

 
Ein PC ist die beste Möglichkeit Fehler zu beheben, die ohne PC gar nicht passiert wären. -frei aus Murphy's Computergesetzen

XProfan X2, Win8 Pro 64bit Update von Win7
i5 / 3,2GHz 4 GB RAM
Treibstoff: Radeberger Pils
13.06.2006  
 




Michael
Wodrich
Mir sind noch ein Paar Dinge aufgefallen:

Button: Es sollte nur ein DefButton eingesetzt werden, Rest ist Button.
Der Grund: Def steht für Default (Vorgabe). Dies ist also der vorgewählte Button.

DestroyWindow(Ok%) - nicht nötig. Wenn Du den Dialog löscht, gehen die daraufliegenden Controls freiwillig mit...

Überhaupt kannst Du die ganzen DestroyWindow() auf 1 reduzieren. Gebe einfach der Variablen F% den Wert 2 wenn das Passwort stimmt. Dann kannst Du hinter der While-Schleife den DestroyWindow setzen und mit
Case F% = 2: Client
den Programmteil aufrufen.

Schöne Grüße
Michael Wodrich
(auch Jahrgang 60)
 
Programmieren, das spannendste Detektivspiel der Welt.
13.06.2006  
 




Pedro
Santos
Hallo

Wie schon Pascal erwähnt Sendmessages bieten eine Menge Möglichkeiten
Wäre eine gute Idee hier in der Communty ein Container zu schafen wo Sendmessages mit Beschreibung was es bewirkt abgelegt werden. Gerade für Einsteiger ist das ein Segen

Gruss

Pedro
 
Windows XP Home
Xprofan 10
15.06.2006  
 



@Petro
Das wird bei der Zahl an Messages, die es gibt ein schwieriges Unterfangen
Alleine die Messages fürs RichEdit würden hier Seiten füllen. Für Windows Allgemein
wird das also kaum gehen. Aber vielleicht hat iF hierzu ne Idee, weil grundsätzlich sollte
da was möglich sein.
 
15.06.2006  
 




Nico
Madysa
Man könnte in der Online-Doku ein Kapitel Messages anlegen.
 
Nico Madysa
15.06.2006  
 



Nunja ich könnte nen MessagesPool erfinden - alle Headerfiles von XProfan als Datenbasis einspeisen - und ein leichtes Durchsuchen ermöglichen.

@Nico: In der ODoku gibt es bereits Sheets mit Messages.
 
15.06.2006  
 



Hallo Andre
Hier ist der versprochene Text. Bestimmt kann er noch verbessert werden. Daher kommt er in die Community
KompilierenMarkierenSeparieren
DECLARE pfad$,programm$,vers$,txt$,PW_datei$
pfad$=GETDIR$(@)
programm$=Beispiel
vers$=1.0
DECLARE txt%,tip%,I%
DECLARE font0%,font1%,font2%
font0%=CREATE(FONT,ARIAL,14,0,0,0,0)
font1%=CREATE(FONT,COMIC SANS MS,18,0,1,0,0)
font2%=CREATE(FONT,ARIAL,16,6,0,0,0)

PROC MASTER_PASS

    PROC CODE_PLUS

        PARAMETERS In$
        DECLARE Out$
        Clear Out$

        WHILELOOP 1, @Len(In$), 3

            Out$ = Out$ + @Chr$(@Ord(
            @Mid$(In$, &Loop, 1)) / 4 + 32)
            Out$ = Out$ + @Chr$((@Ord(
            @Mid$(In$, &Loop, 1)) MOD 4) * 16 +
            @Ord(@Mid$(In$, &Loop + 1, 1)) / 16 + 32)
            Out$ = Out$ + @Chr$((@Ord(
            @Mid$(In$, &Loop + 1, 1)) MOD 16) * 4 +
            @Ord(@Mid$(In$, &Loop + 2, 1)) / 64 + 32)
            Out$ = Out$ + @Chr$(@Ord(
            @Mid$(In$, &Loop + 2, 1)) MOD 64 + 32)

        ENDWHILE

        RETURN Out$
        Die Verschlüsselung stammt aus PROFAN - Du kannst aber damit experimentieren.
        Vorsicht - Sicherung anlegen - Dann ändere mal hier die Zahlen 32 auf 64 !

    ENDPROC

    -----------------------------------------------------------------------------------------
    DECLARE P_win&,P_EE%,P_ende%,P_OK%,P_start%
    DECLARE PW_datei$,master$,master%,meldung$,txt_off$,txt_on$
    -----------------------------------------------------------------------------------------
    DIE BEIDEN ANGABEN MÜSSEN HIER STEHEN !!!
    PW_datei$=beispiel.pw$ der Name ist frei wählbar
    PW_datei$=pfad$+\+PW_datei$ auch der Platz ist frei (Du kannst die Datei z. B. in
    C:Windows/System verstecken - Profan-Befehl:  $SysPath
    Hier wird eine Passwortdatei in dem Verzeichnis abgelegt, in dem auch dieser Text steht.
    Der Name ist   BEISPIEL.PW$   kann aber frei gewählt werden. Muss aber immer hier stehen
    damit das Programm die Datei findet. Das Passwort ist verschlüsselt. Schau Dir mal mit
    einem Editor die Datei an.
    -----------------------------------------------------------------------------------------

    IF FILEEXISTS(PW_datei$) ist ein Passwort vorhanden ?

        DECLARE plus_on%,plus_on$
        I%=0
        ASSIGN #1,PW_datei$
        RESET #1
        INPUT #1,master$
        CLOSE #1
        meldung$=Geben Sie hier das Master-Passwort ein - Bestätigen Sie mit der ENTER-Taste oder klicken Sie auf das Häkchen
        P_win&=CREATE(DIALOG,%HWnd, +programm$+vers$+   Master-Passwort,SUB(DIV(%MaxX,2),150),SUB(DIV(%MaxY,2),100),300,200)
        txt%=CREATE(TEXT,P_win&,meldung$,15,5,270,60)
        SetFont txt%,font1%
        plus_on%=CREATE(EDIT,P_win&,plus_on$,20,75,200,-20)
        SetFont plus_on%,font1%
        P_OK%=CREATE(BUTTON,P_win&,OK,235,70,35,25)
        SetFont P_OK%,font0%
        tip%=CREATE(TOOLTIP,p_win&,P_OK%,Master-Passwort bestätigen)
        SetFont tip%,font0%
        P_ende%=CREATE(BUTTON,P_win&,Ende,20,120,80,25)
        SetFont P_endE%,font0%
        tip%=CREATE(TOOLTIP,p_win&,P_ende%,Programm verlassen)
        SetFont tip%,font0%
        txt%=CREATE(TEXT,P_win&,Versuch 0 / 3,200,130,200,20)
        SetFont txt%,font0%
        SetFocus(plus_on%)
        P_EE%=0

        WhileNot P_EE%

            WAITINPUT

            If GetFocus(P_ende%)

                P_EE%=1
                DesTroyWindow(P_win&)
                END

            ENDIF

            IF OR(SCanKey(13),GetFocus(P_OK%))

                INC I%
                plus_on$=GETTEXT$(plus_on%)
                plus_on$=UPPER$(plus_on$)
                txt_on$=CODE_PLUS(plus_on$)

                If txt_on$=master$

                    P_EE%=1
                    DesTroyWindow(P_win&)
                    MessageBox(Das war richtig !,OK,64) Hier würde der Zugang zum gesperrten Programm sein

                EndIf

                IfNOT txt_on$=master$

                    plus_on$=
                    SetText plus_on%,plus_on$
                    SetFocus(plus_on%)
                    txt%=CREATE(TEXT,P_win&,STR$(I%),245,130,8,20)
                    SetFont txt%,font0%

                    IF GT(I%,2)

                        P_EE%=1
                        DesTroyWindow(P_win&)
                        END nach der 3. Falscheingabe ist Ende

                    ENDIF

                EndIf

            ENDIF

        WEND

    ENDIF

    ---------------------------------

    IFNOT FILEEXISTS(PW_datei$) Keine Passwort-Datei vorhanden

        programm$=UPPER$(programm$)
        txt$= +programm$+vers$+   Master-Passwort...
        meldung$=Das Programm ist nicht gesichert ! - Trotzdem die Daten verschlüsselt werden,
        hat jeder Zugriff !   Geben Sie ein MASTER-PASSWORT ein, welches nur Sie kennen.   Danach
        ist der Zugang zu   +programm$+  gesichert.   Das Wort kann innerhalb des Programmes
        später geändert werden
        P_win&=CREATE(DIALOG,%HWnd,txt$,SUB(DIV(%MaxX,2),200),SUB(DIV(%MaxY,2),100),400,200)
        txt%=CREATE(TEXT,P_win&,meldung$,10,5,380,60)
        SetFont txt%,font0%
        master%=CREATE(EDIT,P_win&,master$,10,72,170,-25)
        sendmessage(master%,204,ord(*),0)Tipp aus der Community ;o)
        SetFont master%,font1% lässt Du das weg, bekommst Du schöne grosse Sternchen !
        P_start%=CREATE(BUTTON,P_win&,OHNE Passwort starten...,10,125,200,25)
        SetFont P_start%,font0%
        tip%=CREATE(TOOLTIP,p_win&,P_start%,OHNE Master-Passwort...)
        SetFont tip%,font0%
        P_OK%=CREATE(BUTTON,P_win&,Passwort erzeugen und speichern,190,72,190,25)
        SetFont P_OK%,font0%
        tip%=CREATE(TOOLTIP,P_win&,P_OK%,Master-Passwort speichern)
        SetFont tip%,font0%
        P_ende%=CREATE(BUTTON,P_win&,Ende,300,125,80,25)
        SetFont P_ende%,font0%
        tip%=CREATE(TOOLTIP,P_win&,P_ende%,Beenden)
        SetFont tip%,font0%
        SetFocus(master%)
        P_EE%=0

        WhileNot P_EE%

            WAITINPUT
            Case IsKey(13):SetFocus(master%)

            IF GetFocus(P_ende%)

                P_EE%=1
                END

            ENDIF

            IF GetFocus(P_start%)

                P_EE%=1
                DesTroyWindow(P_win&)
                MessageBox(Zugang OHNE Passwort,OK,64)
                END

            ENDIF

            IF GetFocus(P_OK%)

                master$=GETTEXT$(master%)
                master$=UPPER$(master$)
                master$=CODE_PLUS(master$)
                ASSIGN #1,PW_datei$
                REWRITE #1
                PRINT #1,master$
                CLOSE #1
                ---------------------------------------------------
                ASSIGN #2,PW_datei$
                SetFAttr #2,$02            Datei-Attribut: Versteckt
                ---------------------------------------------------
                Im Moment auskommentiert. Im fertigen Programm die beiden Programmzeilen aktivieren
                P_EE%=1
                DesTroyWindow(P_win&)
                MessageBox(Zugang mit neuem Passwort. Danach ist der Zugang nur mit Passwort möglich,OK,64)
                END

            ENDIF

            CASE IsKey(13):SetFocus(master%)

        WEND

    ENDIF

ENDPROC

########################################################################
MASTER_PASS
 
16.06.2006  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

4.912 Betrachtungen

Unbenanntvor 0 min.
Georg Teles01.12.2018
RudiB.05.06.2016
Q26.05.2016
Georg25.07.2013

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie