LabVIEWForum.de
Key - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Key (/Thread-Key)

Seiten: 1 2


Key - selma - 31.05.2010 13:11

Guten Tag alle zusammen,
ich soll eine Passwortabfrage Programmieren.
Den Anfang habe ich schonFlirt
Jetzt soll die Zahlenreihe in eine InI geschrieben werden ( aber nur am Anfang wenn das Programm das aller aller erste mal gestartet wird ) und dan soll die INI Datei abgefragt werden 30 Tage,nach 30 tagen soll popup Fenster erscheinen, jetzt soll der Kunde aufgefordert werden ein Code ein zu geben.

Wie der Code den aussieht weiß ich noch nicht.

[attachment=26797]

Lv09_img2

Schon mal im Vorraus HERZLICHEN DANK

MfG Selma


Key - BsaiboT - 31.05.2010 14:12

Mein erster Gedanke:
Juhu! Ein Selma-Thread!Big Grin

Mein zweiter Gedanke ist jedoch weniger fröhlich, als viel mehr betrübt:
Ach Mensch Selma. Mellow

Manchmal bekommt man den Eindruck als wärst du Lernresistent und/oder willst nur die Lösung vorgekaut bekommen.

Das VI wirkt so als hättest du einfach mal etwas zusammengeklickt, was in die Richtung deiner Fragestellung geht, aber bestimmt noch nicht von dir getestet wurde.

Nachdem, was du schon alles hier im Forum "gelernt" hast sollte dir bewusst sein, dass dein VI so gar keinen Sinn macht.

a) Weshalb nutzt du eine Eventstruktur, wenn du einen Timeout von 0ms einstellst?
b) Weshalb arbeitest du mit einer lokalen Variablen in ein under selben Schleife?
c) Warum schreibst du in dem Timeoutevent deinen Schlüssel in die Inidatei?

zu a)
Denk einmal darüber nach was eine Eventstruktur machen soll und weshalb es keinen Sinn macht dieser einen 0ms -Timeout zu verpassen.

zu b)
Überleg dir mal wie du sicherstellst, dass du immer den Wert aus der Variablen bekommst, den du haben möchtest. So ist es nicht möglich! Schmeiss die lokale Variable raus und nutze die wundervolle Möglichkeit der Verdrahtung!

zu c)
Du schreibst bei jedem Timeout einen (neuen oder alten? Das weiss niemand. -> siehe b)) Schlüsselwert in deine Datei, möchtest dies aber nur einmal zum Zeitpunkt der Installation machen.

Ich rate dir Bleistift und Papier zu nehmen und ein Flussdiagramm zu entwerfen. Damit lässt es sich, noch bevor man den ersten Klick in LV macht, strukturiert an die Aufgabenstellung herangehen.

Edit: Für die ohne LV 2009 hier der Screenshot zum Helfen und Mitreden:
[attachment=26800]

Grüße,


Key - SeBa - 31.05.2010 14:20

Hab ich mal gewartet was der Tobias so alles auszusetzen hat und dem kann ich nur beipflichten.

Hinzufügen möchte ich noch:

1) Dein String-Zerpflück-ZusammenKlatsch funktioniert bestimmt nicht so wie du es dir wünschst, wenn der Endnutzer einen Punkt als Dezimaltrennzeichen hat.

1.1) Was auch immer du da formatierst, kann man auch gleich im Formatstring erledigen...

2) Das was du dir als Hex-String anschaust, ist nur eine Darstellungsform des Anzeigeelementes... über den Umweg der lokalen Variablen landet trozdem der verknüpfte String im Plaintext in deiner ini.

3) Wie willst du sicherstellen, das der User nicht einfach die Datei löscht und der Software suggeriert, es sei der erste Start?

4) Einen Datumsstring einfach in hex zu wandeln ist viel zu einfach und mit jedem Hexeditor in Plaintext anzuschauen. Ich würde dir da zumindest mal einen md5-Hash ans Herz legen. (md5 gibts als fertige VI's bei OpenG)

Gruß SeBa


Key - selma - 31.05.2010 14:37

Ich habe bei LabVIEW immer noch kein Plan. Ich sitzte vorm PC und Bahn.


Key - BsaiboT - 01.06.2010 10:14

' schrieb:ich soll eine Passwortabfrage Programmieren.
...
Jetzt soll die Zahlenreihe in eine InI geschrieben werden ( aber nur am Anfang wenn das Programm das aller aller erste mal gestartet wird ) und dan soll die INI Datei abgefragt werden 30 Tage,nach 30 tagen soll popup Fenster erscheinen, jetzt soll der Kunde aufgefordert werden ein Code ein zu geben.
...
Wie der Code den aussieht weiß ich noch nicht.
Selma,

Vergiss erst einmal Punkt 3 und 4 von SeBa. Die sind später auch noch zu implementieren, wenn ersteinmal die Struktur deines Programmes steht.

Zum Thema strukturiertes Vorgehen:
Du schreibst, dass du gerne einen Datumswert in eine Datei auf dem Rechner speichern möchtest.
Dies soll bei der erstmaligen Benutzung bzw. Installation des Programmes geschehen.
Von jetzt an soll bei jedem Programmstart nachgeschaut werden, ob das in der Datei hinterlegte Datum älter ist als 30 Tage.
Sollte dies zutreffen, so möchtest du den Benutzer zwingen einen Freischaltcode einzugeben, bevor er die Software weiter benutzen kann.
Zur Kennzeichnung ob es sich um eine Vollversion handelt, nehme ich an, dass du ebenfalls die gleiche Methode zur Speicherung der Information nutzen, sprich einen Vollversionsschlüssel hinterlegen möchtest.

Ob man nun später den Datumswert verschlüsselt in der windowsregistry vergräbt oder es bei einer Datei belässt oder wie und wo auch immer die Info gespeichert werden soll ist für den Programmaufbau jetzt ersteinmal zweitrangig und kann später mühelos angepasst werden.

Also wenn man es so in kurzen Sätzen liest, zeigt sich doch auch die Struktur für dein Programm auf!

Programmstart:
- auf die Existenz der Inidatei prüfen
- - - wenn eine Datei vorhanden ist, prüfen ob gültige Daten enthalten sind
- - - - - Vollversionsschlüssel vorhanden, Hauptprogramm starten (siehe Kommentar unten)
- - - - - ein gültiges Datum in der Datei enthalten ist, prüfen ob es älter ist als 30 Tage
- - - - - - - - älter als 30 Tage, PopUp öffnen und Freischaltcode verlangen
- - - - - - - - - - - falscher Schlüssel: Programm beenden;
- - - - - - - - - - - richtiger Schlüssel: Programm als Vollversion kennzeichnenund Hauptprogramm starten.
- - - - - - - - nicht älter als 30 Tage, Hauptprogramm starten
- - - keine Datei vorhanden ist -> Datei mit aktuellem Datum erstellen und Hauptprogramm starten
Hauptprogramm:
- alles das an Code ausführen was eben in die eigentliche Anwendung gehört, wie z.B. Messdatenerfassung, -Speicherung, -Auswertung usw...

Jetzt zeichnest du bitte den Ablauf als Flussdiagramm auf ein Blatt Papier, damit dir etwas klarer wird, was zu tun ist und du immer eine Gedankenstütze und Orientierungshilfe beim Programmieren hast.

Ich nutze das immer um dann auch gleich abzuhaken, was ich schon programmiert habe oder mir zu notieren, welche Sache ich später evtl noch anpassen muss usw.
Wenn man Farben benutzt wird es sogar noch einfacher! Ich nutze immer Blau für Bedingungsabfragen, Rot für False-Programmwege und Grün für True. klingt ein bisschen nach Kindergarten malen nach Zahlen, aber es hilft die übersicht zu behalten.

Ich hoffe, nun findest du einen Anfang. Wie gesagt, halte es zunächst einfach und lass die Verschlüsselung der Informationen mal aussen vor. Schaffe dir ersteinmal das Grundgerüst deines Programmablaufs!

Grüße,
Tobias

PS:
noch eine Idee, wie man die Prüfung auf Vollversion umgehen kann: Sobald einmal ein gültiger Freischaltcode eingegeben wurde, änderst du das Datum in der Inidatei auf einen Zeitpunkt weit in der Zukunft z.B. Datum der Freischaltung plus 50 Jahre, da wird sicherlich niemand mehr mit deinem Programm arbeiten.... Tongue


Key - Y-P - 01.06.2010 12:40

Und wenn, dann kann sich bis dahin Dein Nachfolger damit herumärgern. Hehe
Ansonsten geb' ich Tobias recht. Bau' Dir ein Grundgerüst und erweitere es dann an den gegebenen Stellen, wenn es soweit mal läuft.

Gruß Markus

' schrieb:Sobald einmal ein gültiger Freischaltcode eingegeben wurde, änderst du das Datum in der Inidatei auf einen Zeitpunkt weit in der Zukunft z.B. Datum der Freischaltung plus 50 Jahre, da wird sicherlich niemand mehr mit deinem Programm arbeiten.... Tongue



Key - BsaiboT - 03.06.2010 11:34

*push*

Selma, lebst du noch? Geht es Dir gut?
Unsure


Key - SeBa - 03.06.2010 11:53

Tongue

Ist dir langweilig?

Wie issn das Wetter in Schweden?


Gruß SeBa


Key - BsaiboT - 03.06.2010 12:23

' schrieb:Tongue

Ist dir langweilig?
Nö, kann man so nicht sagen... aber das Forum stellt immer eine nette Beschäftigung dar, wenn ich mal ne Pause brauche oder in meinem Problem total blockiert bin...

' schrieb:Wie issn das Wetter in Schweden?
Gruß SeBa
Supi! Herrlicher Sonnenschein. [Bild: smiley_emoticons_sun.gif]

Hatte seit gestern Nachmittag bis heute Mittag mein Büro auf den heimischen Balkon verlegt, da ich mich gerade wiedermal mit C-Programmierung plage. Dafür muss man schliesslich nicht permanent im Labor sein.
[Bild: smiley_emoticons_hurra_fruehling6.gif]

Ich halte es eher nicht mit Code&Try, sondern programmiere erst und wenn es fertig ist, dann kommt das Bugfixing!Tongue Jetzt kommt eben jenes Bugfixing und deshalb muss ich jetzt auch wieder im Schein der Leutstoffröhren sitzen anstatt unter meinem Sonnenschirm mit 'ner O-Saft-Schweppes-Schorle... Sad


Key - Y-P - 03.06.2010 12:56

Ist bei Euch kein Feiertag? O
Hier regnets und wir haben frei, bei Euch scheint die Sonne und ihr müsst arbeiten.... Schon ungerecht.....
Wenn es wenigstens hier gutes Wetter wäre.... Hehe

Gruß Markus