Frage

In meinem Desktop-Programm, das will ich überprüfen, um zu sehen, ob der Benutzer seine Uhr zurück gesetzt hat.

Um dies zu tun, vergleiche ich den Zeitstempel für bestimmte Betriebssystemdateien auf dem aktuellen Computer Datum. Wenn jeder nach ist das, was der Computer denkt, das aktuelle Datum ist, dann muss er seine Uhr wieder eingestellt hat.

Für Windows XP, ich habe solche Dateien unter Verwendung von wie:

c:\win386.swp
c:\windows\user.dat
and several others.

Zwei Fragen:

  1. Ist das eine anständige Art und Weise, dies zu tun, oder gibt es etwas Besseres?

  2. (die Antwort auf 1 Unter der Annahme, "anständig") Was einige gute Windows Vista und Windows 7-Dateien mit vergleichen wäre?


Fazit: Priyank sagte etwas offensichtlich, das mir entgangen war: Anstatt mit beliebigen Systemdateien, die einfachste und einfachste Art und Weise zu verwenden, könnte es sein, nur den Zeitstempel des Programms selbst. Schließlich wurde das Datum der Installation ist genau das Datum, das Sie Ihre Studie wollen aus starten.

Wie sich herausstellt, Ihre Antworten und meine Forschung von anderen verwandten Fragen und Stackoverflow genannten Artikel hat mich dazu gebracht, auf eine viel einfachere Regelung zu entscheiden. Meine Testnutzer haben bereits einen Schlüssel bekommen die Studie zu verwenden. Ich habe das Datum in den Schlüssel eingebettet registriert bekam. Ich wirklich müssen nicht überprüfen die Uhr zurück zur Einstellung. Stattdessen kann ich nur seee wenn die aktuelle Zeit zwischen dem Zeitpunkt registriert ist und das Datum eingetragen plus n Tage.

Wenn sie sich die Mühe gehen wollen dieses System um bekommen, dann sie lassen. Ich bin damit einverstanden, dass diese Menschen ohnehin nicht zahlen würden. Machen Sie Ihr Programm etwas Sinnvolles, dass die Menschen genießen und verwenden wollen, und die meisten werden zahlen.

War es hilfreich?

Lösung

Windows-Dateien immer früheren Zeitpunkt haben sein werden, ist die beste die Schaffung oder Änderungsdatum des Programms mit dem Systemdatum zu überprüfen. Oder jedes Mal, wenn Ihr Programm beenden stellen Sie sicher, den Zeitstempel beachten und vergleicht ihn mit der nächsten Start Ihres Programms, und es gibt immer NTP: http://en.wikipedia.org/wiki/Network_Time_Protocol

Andere Tipps

ein besserer Weg zu tun, dass IMHO die aktuellen Zeitstempel in der Registry das erste Mal Ihres Programm läuft und dann vergleichen zu speichern wäre, dass mit dem aktuellen Zeitstempel auf nächsten Laufe und den Zeitstempel aktualisieren, wenn alles in Ordnung ist.

Dies ist keine direkte Antwort, nur eine Meinung und Referenzen zu bieten. Zu lange für mich als Kommentar hinzuzufügen.

Wenn der Zweck ist eine zeitlich begrenzte Software für Demo / Testnutzung zu erstellen, müssen wir ein Gleichgewicht zwischen finden, wie viel Sie gehen über deren Umsetzung und die Tendenz für die Nutzer zu ‚Hack‘ es passiert.

Ich habe oft Leute sagen, wenn Sie Ihre Software Hacker zieht, ist es wahrscheinlich etwas Nützliches / gut. Kein Punkt Schutz eine Software, die niemand findet nützlich.

Wie auch immer, beiseite die philosophische Rede, unten ist ein paar gut zu diesem Thema lautet:

Wie zeitlich begrenzte implementieren Versuch auf Joels Forum < br> Zeitlich begrenzt Versuch und Windows-Zertifizierung auf SO
Brauchen Sie Rat einen zeitlich begrenzten Test auf SO über die Umsetzung

Eine Möglichkeit wäre, das Datum von einem Webdienst oder Zeit-Server zu erhalten. Das Problem hierbei ist, dass dies nur funktioniert, wenn es Internet-Verbindung verfügbar ist, so dass diese nur eine ergänzende Methode für einen sicheren sein würden.

bietet Windows-APIs für die Benachrichtigung über Systemzeit ändert. Ein Beispiel wird das SYSINFO.OCX ActiveX-Steuerelement bereitgestellt hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top