2008-10-13 6 views
21

Ich entwickle eine Shareware-Desktop-Anwendung. Ich bin an dem Punkt angekommen, an dem ich den Testbenutzungs-/Aktivierungscode implementieren muss. Wie geht man so etwas an? Ich habe meine eigenen Ideen, aber ich möchte sehen, was die Stackoverflow Community denkt.Benötigen Sie Unterstützung bei der Implementierung einer zeitlich begrenzten Testversion?

Ich entwickle mit C++/Qt. Die vorgesehene Plattform ist Windows/Mac/Linux.

Vielen Dank für Ihren Hinweis!

+0

Nicht verwandt, aber bitte beachten Sie, dass Sie * eine QT-Entwicklerlizenz haben müssen, wenn Sie kommerzielle Apps mit QT entwickeln. Die QT-Lizenz verbietet die Verwendung der Open-Source-Edition für kommerzielle Software, einschließlich Shareware. Weitere Informationen finden Sie unter http://trolltech.com/products/appdev/licensing/licensing. –

+3

Danke für den Hinweis. Wir haben eine kommerzielle Lizenz. Ich möchte die Trolle nicht verärgern ... – JimDaniel

+0

Das ist gut zu hören :) Trolltech hat der Community so viel gegeben, dass ich das Bedürfnis verspüre, sie zu verteidigen, auch wenn es wahrscheinlich nicht erforderlich ist ... Freut mich zu sehen, dass Sie unterstützen Sie. –

Antwort

23

Was gegen zu schützen und was nicht gegen schützen:

Denken Sie daran, dass die Menschen einen Weg finden, wird immer um eine Probezeit zu erhalten. Sie möchten es also ärgerlich machen, dass die Person Ihre Testphase durchstehen muss, aber es spielt keine Rolle, wenn es unmöglich ist, sich in Ihrer Probezeit fortzubewegen.

Die meisten Leute werden denken, dass es zu viel Arbeit ist, um Ihre Probezeit zu versuchen, wenn es sogar einen einfachen Mechanismus gibt. Beispielsweise können Benutzer filemon/regmon immer verwenden, um zu sehen, welche Dateien und Registrierungseinträge sich bei der Installation der Software ändern.

Das besagt, ein einfacher Mechanismus ist am besten, weil er weniger Zeit verschwendet.

Hier sind einige Ideen:

  • Sie können einen Tick tun für jeden einzelnen Tag irgendwo in der Registry zählen, die ausgeführt wird. Wenn die Tick-Anzahl> 30 ist, zeigen Sie ihnen eine abgelaufene Nachricht an.
  • Sie können das Installationsdatum speichern, aber prüfen Sie, ob sie mehr Tage zur Verfügung haben als Ihre Testversion sein sollte, und sagen Sie ihnen, dass sie abgelaufen sind. Dies schützt vor der Änderung des Datums der Benutzer, bevor sie an einem zukünftigen Tag installiert wird.
  • Ich würde empfehlen, Ihre Deinstallation zu machen, entfernen Sie Ihre "Tage läuft" zählen. Dies liegt daran, dass die Leute Ihr Produkt Monate später neu bewerten und schließlich kaufen können. Aber wenn sie es nicht bewerten können, werden sie nicht kaufen. Kein seriöser Benutzer hat Zeit, um das Produkt zu deinstallieren oder neu zu installieren, nur um zusätzlichen Nutzen aus Ihrem Produkt zu ziehen.

Erweiterung Studien:

für uns, wenn ein Kunde eine Test Verlängerung beantragt hat, schicken wir ihnen eine automatisierte E-Mail, die ein Programm „TrialExtend.exe“ enthält und einen Testcode erweitern. Dieses Programm kontaktiert unseren Server mit dem Test-Erweiterungscode, um es zu validieren. Wenn der Code validiert ist, wird seine Testphase zurückgesetzt.

+1

'Kein ernsthafter Benutzer würde Zeit haben, dein Produkt zu deinstallieren/neu zu installieren, nur um zusätzlichen Nutzen daraus zu ziehen. '- Das werde ich sicherlich tun –

3

Was auch immer Sie tun, behalten Sie das Systemdatum im Auge. Der älteste Trick im Buch ist, eine Anwendung zu einem bestimmten Zeitpunkt in der Zukunft zu installieren und dann zum echten Datum zurückzukehren, sobald die Anwendung das falsche Datum beim ersten Lauf gespeichert hat. Vielleicht den Schlüssel mit einem Online-Repository synchronisieren?

+0

Um das zu verhindern, kann man den absoluten Wert von System.currentTimeMillis() - expirationDate.getTimeMillis(); Sorry, ich bin ein Java-Typ. Grüße, Steff – Snicolas

0

Wenn Sie [ziemlich] wahrscheinlich eine Netzwerkverbindung haben, können Sie sich das Installationsprogramm bei Ihrer Website registrieren lassen und es bei jedem Start überprüfen.

Wenn das nicht machbar ist, kann das Schreiben eines Wertes in einen Welt-modifizierbaren Punkt auf dem Dateisystem (ein Registrierungseintrag, ein Eintrag in der Datei/etc conf usw.) funktionieren.

+2

Sei vorsichtig damit. Benutzer sind sehr vorsichtig bei Programmen, die "nach Hause telefonieren" - sie haben keine Möglichkeit zu wissen, was sie zurücksendet, es könnten ihre Kreditkartennummern und Bankpasswörter sein, für alles, was sie wissen. –

2

Brians Antwort ist großartig, aber ich möchte etwas hinzufügen.

Linux-Benutzer sind im Allgemeinen nicht daran gewöhnt, für Software zu bezahlen, und sie neigen dazu, bei Open-Source-Problemen technisch versierter und möglicherweise sogar "religiöser" zu sein.

Aus diesem Grund würde ich wirklich empfehlen, es einfach zu halten - es ist wirklich nur eine kleine Barriere, um den Kauf der Software mindestens so einfach zu machen wie es zu stehlen.

Ich würde vorschlagen, dass es bestimmte Funktionen (z. B. Speichern) nach der Testphase knackt oder deaktiviert, anstatt vollständig zu sterben. Nur eine Beobachtung, aber Feature-basierte Einschränkungen scheinen in der Linux-Welt häufiger.

Nebenbei, machen die Linux-Version eine "First Class" -Version - anständiger Installer usw. wird helfen.

Wenn Sie relativ klein sind, oder Ihr Programm ist relativ Nische, gibt es eine ziemlich kleine Chance, jemand wird es knacken - also konzentrieren Sie sich einfach auf ein gutes Produkt mit einem geraden Niggle einmal die Zeit reif ist.

0

Vielleicht ist das eigentliche Problem die zeitlich begrenzte Studie. Die Firma, für die ich arbeite, erledigt eine Menge Active Directory-Arbeit und wir beschränken unsere Software normalerweise auf eine kleine Anzahl von Benutzern für Testversionen. Ich denke, dass das Einschränken der Funktionalität in gewisser Weise manchmal besser, einfacher zu implementieren ist und nicht fehlschlägt, wenn der Benutzer einfach das Datum auf seinem Computer ändert.
Es gibt einen Balanceakt, in dem Sie die Funktionalität nicht zu streng beschränken können, sonst erhalten Benutzer nichts aus der Testversion. Gleichzeitig gibt ein zu lockeres Limit keinen Anreiz zum Kauf.

Verwandte Themen