Foro | | | | - Página 1 - |
| Andre Hilprecht | Hi, brauche veces otra vez Ayuda. Posesiones en mi Prog una Adminbereich el sólo encima una einzugebendes Contraseña a erreichen ser se. Funzt auch alles bestens - sólo Yo möchte ahora todavía erreichen el auch en el Editar-Feld para el Passworteingabe el ***** (Sternchen) y no el Contraseña en Reinschrift erscheinen. Posesiones hier ya gesucht aber nix passendes gefunden.
Saludo 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 ▲ |
| |
| | | | | - Página 2 - |
| Rolf Koch | entweder Usted klickst en Ausführliche Antwort escribir y hast como el Formatierungsoptionen oder du setzt lo sin la Leerzeichen zwischen el code (sólo así lo hier dargestellt se): [c o d e]hier el code[/c o d e] |
| | | | |
| | Jörg Sellmeyer | Andre Hilprecht
Das verstehe Yo, alles klar. Tal vez brauchte Yo, el Umweg encima GetText$(Pass%) no ir, porque mein Contraseña kein Wort pero una Zahl es.
Was más, como bekommt ihr el Programmcode aquí en así una Ventana, sieht mejor de y yo muss determinado veces otra vez unos pocos Zeilen Quellcode puesto?
Saludo André
Es kein Umweg pero el einzige Möglichkeit a el Texto a kommen - egal si Texto oder Zahl. Pass% enthält sólo el Handle para Editcontrol. Si usted una Zahl hast y weiterverwenden willst, darfst No vergessen ellos con Val(GetText$(Pass%)) en una numerischen Valor a verwandeln.
Saludo Jörg |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 13.06.2006 ▲ |
| |
| | | | | | | |
| | Andre Hilprecht | Hm, ihr macht me gerade klar, el algo no va, qué en me aber funzt ??!!?? Also mein Teil sieht ahora así de: KompilierenMarcaSeparaciónText% = @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
y lo funzt ahora wunschgemäß.
Gracias Euch allen, a para nächsten Denkanstoß Saludo 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 ▲ |
| |
| | | Usted machst lo doch así, como wir schrieben KompilierenMarcaSeparación Pass% Es el ID vom Editar Pass$ Es el Stringvariable wo el Texto gespeichert voluntad se |
| | | | |
| | | | - Página 3 - |
| | Andre Hilprecht | Hast Recht, stimmt, el musste Yo einbauen porque IMMER el Meldung kam; Das Contraseña es desafortunadamente falso! So funzt jetz jedenfalls mi Contraseña-Abfrage wunschgemäß y 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 son todavía una Paar Dinge aufgefallen:
Button: Lo debería sólo una DefButton eingesetzt voluntad, Rest es Button. Der Grund: Def es para Default (Vorgabe). Dies es also el vorgewählte Button.
DestroyWindow(Ok%) - no nötig. Si usted el Diálogo löscht, ir el daraufliegenden Controls freiwillig con...
Überhaupt kannst Usted el ganzen DestroyWindow() en 1 reduzieren. Gebe simplemente el Variables F% valor 2 si el Contraseña stimmt. Dann kannst Usted hinter el Mientras que-Bucle el DestroyWindow conjunto y Case F% = 2: Client el Programmteil aufrufen.
Schöne Grüße Michael Wodrich (auch Jahrgang 60) |
| | | Programmieren, das spannendste Detektivspiel der Welt. | 13.06.2006 ▲ |
| |
| | Pedro Santos | ¡Hola
Como ya Pascal erwähnt Sendmessages bieten una Menge Möglichkeiten Wäre una gute Concepto aquí en el Communty una Container a schafen wo Sendmessages con Descripción qué lo bewirkt abgelegt voluntad. Gerade para Einsteiger es el una Segen
Gruss
Pedro |
| | | | |
| | | @Petro Das se en Zahl a Messages, el lo son una schwieriges Unterfangen Alleine el Messages fürs RichEdit würden hier Páginas füllen. Für Windows Allgemein se el also kaum ir. Aber tal vez ha IF hierzu ne Concepto, porque grundsätzlich debería como qué posible ser. |
| | | | |
| | Nico Madysa | Man podría en el Online-Doku una Kapitel Messages invertir. |
| | | | |
| | | Nunja Yo podría nen MessagesPool erfinden - todos Headerfiles de XProfan como Datenbasis einspeisen - y una leichtes Durchsuchen ermöglichen.
@Nico: In el ODoku hay ya Sheets con Messages. |
| | | | |
| | | ¡Hola Andre Hier es el versprochene Texto. Bestimmt kann él todavía ser mejorada. Daher kommt él en el Comunidad KompilierenMarcaSeparaciónDECLARE 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
|
| | | | |
|
RespuestaThemeninformationenDieses Thema ha 11 subscriber: |