سلام
نحوه نوشتن برنامه trial به چه صورت است؟
یعنی مثلا برنامه بعد از 10 روز به جای اجرا یک پیغام دهد.
سلام
نحوه نوشتن برنامه trial به چه صورت است؟
یعنی مثلا برنامه بعد از 10 روز به جای اجرا یک پیغام دهد.
اگرچه این روشها یه جورایی منسوخ شده (بدلیل عدم امنیت) اما چون پرسیده بودید :
زمان اولین اجرای برنامه (یا نصب اون رو) رو در جایی بصورت کد شده (که کسی نتونه از منطق اون سر دریباره) ذخیره کنید(مثلا رجیستری یا پوشه ویندوز یا ...) بعد هربار موقع اجرای برنامه چک کنید که اختلاف امروز با اون مقدار کمتر از 10 باشه و گرنه...
...مرا به خانه ام ببر، اگرچه خانه؛ خانه نیست
دوست عزیز از راهنماییت ممنون.
من منطق کار را میدانستم ولی بلد نیستم چگونه این کار را انجام دهم.
اگر زحمتی نیست یک مثال کوچک می زنید؟
من منطق کار را میدانستم ولی بلد نیستم چگونه این کار را انجام دهم.
اگر زحمتی نیست یک مثال کوچک می زنید؟
How to read and write System Registry Keys using C# (VS.Net 2005)
این روش رو استفاده کن :
Public Sub testreg()
Dim objKey As Microsoft.Win32.RegistryKey
Dim objsubkey As Microsoft.Win32.RegistryKey
If Microsoft.Win32.Registry.LocalMachine.OpenSubKey(" SOFTWARE\TestAPP", True) Is Nothing Then
objKey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey ("SOFTWARE\Testapp")
objKey.SetValue("Date", System.DateTime.Now.DayOfYear.ToString)
objKey.Close()
Else
objKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(" SOFTWARE\TestAPP", False)
If objKey.GetValue("Date") < gettime() Then
Dim result As String = gettime() - objKey.GetValue("Date")
If result < 30 Then
MsgBox("You have used " & result & " days of your trial")
objKey.Close()
Exit Sub
ElseIf result = 30 Then
MsgBox("This is the last day of your trial. This program will cease to works as of tomorrow.")
objKey.Close()
Exit Sub
ElseIf result > 30 Then
MsgBox("Your trial has expired. This program will now exit.")
objKey.Close()
Application.Exit()
'Else : Me.MenuItem1.Enabled = False
End If
End If
End If
End Sub
رمز نگاری تاریخ که در رجیستر میخای ثبت کنی رو هم قبلا گفتم:
طرز استفاده:
Private Function EncryptStr(ByVal InputStr As String) As String
Dim KeyWord As String = "ir_programmer"
Crypto.Encoding = Crypto.EncodingType.HEX
Crypto.EncryptionAlgorithm = Crypto.Algorithm.RSA
Crypto.Key = KeyWord
If Crypto.EncryptString(InputStr) Then
Return Crypto.Content
Else
Return Crypto.CryptoException.Message
End If
End Function
Private Function DecryptStr(ByVal InputStr As String) As String
Dim keyWord As String = "ir_programmer"
Crypto.Encoding = Crypto.EncodingType.HEX
Crypto.EncryptionAlgorithm = Crypto.Algorithm.RSA
Crypto.Key = keyWord
Crypto.Content = InputStr
If Crypto.DecryptString Then
Return Crypto.Content
Else
Return Crypto.CryptoException.Message
End If
End Function
اینم فایل مورد نیاز رمز نگاری:
https://barnamenevis.org/attach...3&d=1195905354
با این تفاسیر باید بتونی یه برنامه trial سی روزه درست کنی.
با سلام
یک راه ساده اینه که هنگام ساخت setup برنامه از نرم افزارهایی که این قابلیت رو بهت میدن استفاده کنی مثل Install Shild . البته من پیشنهاد میکنم اگه قصد ارائه نسخه مدت دار داری حتما یه قسمتهایی رو از نرم افزارت بردار.
درسته. اگر از برنامه های موجود تو بازار استفاده کنی که خوبه. من فقط راه دستی اونو گفتم.
واسه نمونه:
http://www.p30world.com/archives/003939.php
ذخیره ی تاریخ توی فایل درسته ولی یک مشکل وجود داره اونم اینه که کاربر اگه تاریخ سیستم رو مدام به تاریخ اون روز تغییر بده به مشکل برمیخوره
مثلا : کاربر نرم افزار رو اجرا میکنه ، تاریخ توی فایل ذخیره میشه حالا دوباره فردای اون روز نرم افزار رو اجرا میکنه حالا اگه کاربر چیزی از کامپیوتر سر در بیاره میاد تاریخ رو قبل از اجرای برنامه یک روز به عقب می بره ؛ اینجاست که مشکل پیش میاد
به نظر من اگه تعداد باز شدن نرم افزار رو توی فایل ذخیره کنی بهتره مثلا اگه 50 بار نرم افزار اجرا بشه پیغام بده
اولا که قرار نیست چیزی بصورت Clear Text ذخیره بشه، اطلاعات کد میشه بعد ذخیره...
ضمن اینکه این مشکل رو هم میشه یه جورایی دور زد :
اگه تاریخ سیستم به هر دلیل عقب رفت برنامه اجرا نشه. اینجوری که برنامه تاریخ آخرین اجرای خودش رو هم در جایی ذخیره کنه و اگر زمانی اختلاف تاریخ روز با اون مقدار منفی شد پیغام میده که : "آفرین پسر خوب، اما...!"
با همه ی این حرفا باز هم حرفم رو تکرار میکنم که این روشها اصلا پاسخگوی مشکلات امنیتی نیست...
برای مثال این دو رو سرچ کنید : regmon و filemon دو برنامه کوچک و رایگان هستند که تمام تغییرات لحظه ای روی فایلها و رجیستری رو مانیتور میکنند.
...مرا به خانه ام ببر، اگرچه خانه؛ خانه نیست
دوست عزیز درصورتی که از دیتا استفاده میکنید یک راه این است که مجوز ثبت بیش از 5 ردیف را ندهید و دیتاهای اصلی را که از ضروریات است خالی کنید
خوب من که نگفتم تاریخ رو یک روز بیاره عقب من گفتم تاریخ رو به همون روز تغییر بده یعنی اختلاف تاریخ برابر صفر بشه
...مرا به خانه ام ببر، اگرچه خانه؛ خانه نیست