Sie müssen die erste Laufzeit des Programms speichern, um dies zu tun. Wie ich es wahrscheinlich machen würde, verwende ich die eingebauten Anwendungseinstellungen in Visual Studio. Machen Sie einen InstallDate, der eine Benutzereinstellung ist und standardmäßig DateTime.MinValue oder etwas Ähnliches (z. B. 1/1/1900).
Dann, wenn das Programm die Überprüfung ausgeführt wird, ist einfach:
if (appmode == "trial")
{
// If the FirstRunDate is MinValue, it's the first run, so set this value up
if (Properties.Settings.Default.FirstRunDate == DateTime.MinValue)
{
Properties.Settings.Default.FirstRunDate = DateTime.Now;
Properties.Settings.Default.Save();
}
// Now check whether 30 days have passed since the first run date
if (Properties.Settings.Default.FirstRunDate.AddMonths(1) < DateTime.Now)
{
// Do whatever you want to do on expiry (exception message/shut down/etc.)
}
}
Benutzereinstellungen gespeichert sind, in einer ziemlich seltsamen Lage (so etwas wie C: \ Dokumente und Einstellungen \ Benutzername \ Lokale Einstellungen \ Anwendungsdaten), so es wird ziemlich schwer für den durchschnittlichen Joe sein, es trotzdem zu finden. Wenn Sie paranoid sein wollen, verschlüsseln Sie einfach das Datum, bevor Sie es in den Einstellungen speichern.
EDIT: Seufz, falsch gelesen die Frage, nicht so komplex wie ich dachte>.>
'DateTime expirationDate = new DateTime (startDate);' ist nicht erforderlich – Scoregraphic
'DateTime expirationDate = startDate.AddDays (30);' wäre korrekt, denn 'expirydate.AddDays (30)' schreibt das Ergebnis in Nirvana. – Oliver
Oliver, danke für Patch :) –