سورس كود ملف ربط ديناميكى لتحديد فتره استخدام البرنامج - RaggiTech - 17-10-12
كاتب الموضوع : SUB NEW
الاخوه والاخوات الكرام
الكود التالى قد يفيدكم وهو عباره عن كلاس كامل قم بعمله ملف ربط ديناميكى واستورده فى مشروعك لعمل برنامج له فتره تجريبيه انت تحددها حتى تضمن عدم استخدام برنامجك اكثر من الوقت المحدد لتجربته
لتجربته افتح مشروع جديد واختر اضافه كلاس وانسخ الكود والصقه بداخل المحرر ومن قائمه بناء المشروع اختر بناء المشروع وستجد الملف النهائى على هيئه ملف ربط ديناميكى DLL داخل ملف مشروعك فقط قم باستيراده كالتالى
project - add refrece
استعرض الملفات الى ان تجده واستورده لمشروعك واكتب الكود التالى فى الفورم
كود :
[color=#000000][COLOR=#0000bb]Dim obj [/color][color=#007700]As New [/color][color=#0000bb]Trial_Version[/color][color=#007700].[/color][COLOR=#0000bb]RegistryTrial
[/COLOR][COLOR=#dd0000]'The following code is used to operate Trial Version DLL
Dim str As String = obj.Regedit(10) '[/COLOR][COLOR=#0000bb]no of trial days
[/COLOR][color=#007700]If [/color][color=#0000bb]str [/color][color=#007700]= [/color][COLOR=#0000bb]Nothing Then
Me[/COLOR][color=#007700].[/color][color=#0000bb]Close[/color][COLOR=#007700]()
Else
If [/COLOR][color=#0000bb]str[/color][color=#007700].[/color][color=#0000bb]StartsWith[/color][color=#007700]([/color][color=#dd0000]"123"[/color][color=#007700]) = [/color][COLOR=#0000bb]True Then
MsgBox[/COLOR][color=#007700]([/color][color=#0000bb]str[/color][color=#007700].[/color][color=#0000bb]Substring[/color][color=#007700]([/color][color=#0000bb]3[/color][color=#007700]), [/color][color=#0000bb]MsgBoxStyle[/color][color=#007700].[/color][color=#0000bb]Information[/color][color=#007700], [/color][color=#dd0000]"Information"[/color][COLOR=#007700])
If [/COLOR][color=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]MdiChildren[/color][color=#007700].[/color][color=#0000bb]Length [/color][color=#007700]> [/color][COLOR=#0000bb]0 Then
[/COLOR][color=#007700]Exit [/color][COLOR=#0000bb]Sub
End [/COLOR][COLOR=#007700]If
[/COLOR][color=#0000bb]Dim frm [/color][color=#007700]As New [/color][COLOR=#0000bb]Login
[/COLOR][color=#007700]If [/color][color=#0000bb]frm[/color][color=#007700].[/color][color=#0000bb]IsMdiChild [/color][color=#007700]= [/color][COLOR=#0000bb]True Then
frm[/COLOR][color=#007700].[/color][color=#0000bb]Focus[/color][COLOR=#007700]()
Else
[/COLOR][color=#0000bb]frm[/color][color=#007700].[/color][color=#0000bb]Dispose[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]frm [/color][color=#007700]= New [/color][COLOR=#0000bb]Login
frm[/COLOR][color=#007700].[/color][color=#0000bb]MdiParent [/color][color=#007700]= [/color][COLOR=#0000bb]Me
Me[/COLOR][color=#007700].[/color][color=#0000bb]MenuStrip[/color][color=#007700].[/color][color=#0000bb]Enabled [/color][color=#007700]= [/color][COLOR=#0000bb]False
frm[/COLOR][color=#007700].[/color][color=#0000bb]Show[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If
Else
[/COLOR][color=#0000bb]MsgBox[/color][color=#007700]([/color][color=#0000bb]str[/color][color=#007700], [/color][color=#0000bb]MsgBoxStyle[/color][color=#007700].[/color][color=#0000bb]Critical[/color][color=#007700], [/color][color=#dd0000]"Error"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]Close[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If
[/COLOR][color=#0000bb]Write following on close Button[/color][COLOR=#007700]:
If [/COLOR][color=#0000bb]MessageBox[/color][color=#007700].[/color][color=#0000bb]Show[/color][color=#007700]([/color][color=#dd0000]"Are you sure,you want to Exit application."[/color][color=#007700], [/color][color=#dd0000]"Exit"[/color][color=#007700], [/color][color=#0000bb]MessageBoxButtons[/color][color=#007700].[/color][color=#0000bb]YesNo[/color][color=#007700], [/color][color=#0000bb]MessageBoxIcon[/color][color=#007700].[/color][color=#0000bb]Question[/color][color=#007700]) = [/color][color=#0000bb]Windows[/color][color=#007700].[/color][color=#0000bb]Forms[/color][color=#007700].[/color][color=#0000bb]DialogResult[/color][color=#007700].[/color][COLOR=#0000bb]Yes Then
Dim obj [/COLOR][color=#007700]As New [/color][color=#0000bb]Trial_Version[/color][color=#007700].[/color][COLOR=#0000bb]RegistryTrial
obj[/COLOR][color=#007700].[/color][color=#0000bb]SaveLastAceessDateTime[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]Close[/color][COLOR=#007700]()
Else
[/COLOR][color=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]Show[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If
[/COLOR][color=#0000bb][/color][/COLOR]
اذا دخلت على المسار التالى فى الريجسترى ستجد قيمه برنامجك مكتوبه به
(HKEY_LOCAL_MACHINE à SOFTWARE à AppSecurity)
الكود كامل مع الشرح بالعربى قدر الامكان
كود :
[color=#000000][COLOR=#0000bb]Imports Microsoft[/color][color=#007700].[/color][COLOR=#0000bb]Win32
[/COLOR][COLOR=#dd0000]'مع تحياتى عماد ابو شنب المحامى
Public Class RegistryTrial
Private Last, First, RemainsDays, RemainsDays1, strOldDay, strOldMonth, strOldYear As String
'[/COLOR][color=#0000bb]عدد الايام لانتهاء النسخه التجريبيه[/color][COLOR=#007700].
Private [/COLOR][color=#0000bb]mintSystem_UsedTrialDays [/color][color=#007700]As [/color][color=#0000bb]Integer [/color][COLOR=#dd0000]'حساب الايام التى استخدم فيها البرنامج
Public StartDate As String
Public LastDate As String
Public FinalDate, FinalDateTime As String
Public Function Regedit(ByVal TrialPeriod As Integer) As String
'[/COLOR][COLOR=#0000bb]كتابه مفتاح فى الريجسترى وتخزين القيمه فيه باسم البرنامج
Dim regKey [/COLOR][color=#007700]As [/color][COLOR=#0000bb]RegistryKey
[/COLOR][COLOR=#007700]Try
[/COLOR][color=#0000bb]Dim strRet [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][COLOR=#dd0000]""
[/COLOR][color=#0000bb]regKey [/color][color=#007700]= [/color][color=#0000bb]Registry[/color][color=#007700].[/color][color=#0000bb]LocalMachine[/color][color=#007700].[/color][color=#0000bb]OpenSubKey[/color][color=#007700]([/color][color=#dd0000]"SOFTWARE"[/color][color=#007700], [/color][color=#0000bb]True[/color][COLOR=#007700])
[/COLOR][color=#0000bb]regKey [/color][color=#007700]= [/color][color=#0000bb]Registry[/color][color=#007700].[/color][color=#0000bb]LocalMachine[/color][color=#007700].[/color][color=#0000bb]OpenSubKey[/color][color=#007700]([/color][color=#dd0000]"Software\AppSecurity"[/color][color=#007700], [/color][color=#0000bb]True[/color][COLOR=#007700])
If [/COLOR][COLOR=#0000bb]regKey Is Nothing Then
regKey [/COLOR][color=#007700]= [/color][color=#0000bb]Registry[/color][color=#007700].[/color][color=#0000bb]LocalMachine[/color][color=#007700].[/color][color=#0000bb]OpenSubKey[/color][color=#007700]([/color][color=#dd0000]"SOFTWARE"[/color][color=#007700], [/color][color=#0000bb]True[/color][COLOR=#007700])
[/COLOR][color=#0000bb]regKey[/color][color=#007700].[/color][color=#0000bb]CreateSubKey[/color][color=#007700]([/color][color=#dd0000]"AppSecurity"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]regKey[/color][color=#007700].[/color][color=#0000bb]Close[/color][COLOR=#007700]()
If [/COLOR][color=#0000bb]WriteValue[/color][color=#007700]([/color][color=#0000bb]TrialPeriod[/color][color=#007700]) = [/color][COLOR=#0000bb]False Then
[/COLOR][color=#007700]Return [/color][COLOR=#dd0000]"setting fail."
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If
Else
[/COLOR][color=#0000bb]strRet [/color][color=#007700]= [/color][color=#0000bb]GetValueFromReg[/color][color=#007700]([/color][color=#0000bb]TrialPeriod[/color][COLOR=#007700])
Return [/COLOR][COLOR=#0000bb]strRet
End [/COLOR][COLOR=#007700]If
Catch [/COLOR][color=#0000bb]ex [/color][color=#007700]As [/color][COLOR=#0000bb]Exception
[/COLOR][color=#007700]Return [/color][COLOR=#dd0000]""
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]Try
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]Function
Public Function [/COLOR][color=#0000bb]GetValueFromReg[/color][color=#007700]([/color][color=#0000bb]ByVal mintTrialPeriod [/color][color=#007700]As [/color][color=#0000bb]Integer[/color][color=#007700]) As [/color][COLOR=#0000bb]String
[/COLOR][COLOR=#dd0000]'لقراء القيمه من الريجسترى الخاصه بالبرنامج
Dim strReturn As String = ""
Dim regKey As RegistryKey
Dim ver, Final As String
regKey = Registry.LocalMachine.OpenSubKey("Software\AppSecurity", True) '[/COLOR][COLOR=#0000bb]فتح المسار فى الريجسترى وقراءه المعلومات
ver [/COLOR][color=#007700]= [/color][color=#0000bb]regKey[/color][color=#007700].[/color][color=#0000bb]GetValue[/color][color=#007700]([/color][color=#dd0000]"System_In"[/color][color=#007700]) [/color][COLOR=#dd0000]' قراء القيم من الريجسترى System_In=It get the value in (StartDate) & ";" & (LastDate) which is already stored in Encrypted
'[/COLOR][color=#0000bb]الصيغه[/color][COLOR=#007700].
If [/COLOR][color=#0000bb]ver [/color][color=#007700]= [/color][color=#dd0000]"" [/color][color=#0000bb]Then [/color][COLOR=#dd0000]'اذا قام المستخدم بالتغيير يدويا فى المفتاح المكتوب فى الريجسترى
Return " لقد تم التلاعب ببعض مكونات البرنامج ليس لك الصلاحيه بالولوج الى البرنامج ."
Else
Final = funcDecrpt_Date(ver) '[/COLOR][COLOR=#0000bb]فك التشفير عن القيمه
[/COLOR][color=#007700]If Final.[/color][color=#0000bb]Length[/color][color=#007700]() = [/color][color=#dd0000]"21" [/color][COLOR=#0000bb]Then
Last [/COLOR][color=#007700]= Final.[/color][color=#0000bb]Substring[/color][color=#007700]([/color][color=#0000bb]11[/color][COLOR=#007700])
[/COLOR][color=#0000bb]strOldDay [/color][color=#007700]= Final.[/color][color=#0000bb]Substring[/color][color=#007700]([/color][color=#0000bb]0[/color][color=#007700], [/color][color=#0000bb]2[/color][color=#007700]) [/color][COLOR=#dd0000]'عرض اليوم:"01"
strOldMonth = Final.Substring(3, 2) '[/COLOR][color=#0000bb]عرض الشهر[/color][color=#007700]:[/color][COLOR=#dd0000]"01"
[/COLOR][color=#0000bb]strOldYear [/color][color=#007700]= Final.[/color][color=#0000bb]Substring[/color][color=#007700]([/color][color=#0000bb]6[/color][color=#007700], [/color][color=#0000bb]4[/color][color=#007700]) [/color][COLOR=#dd0000]'عرض السنه:"2009"
First = Final.Substring(0, 10) '[/COLOR][COLOR=#0000bb]لعرض وقت بدايه تشغيل البرنامج اول مره من الريجسترى
RemainsDays [/COLOR][color=#007700]= [/color][color=#0000bb]DisplayApplicationStatus[/color][color=#007700]([/color][color=#0000bb]DiffDate[/color][color=#007700]([/color][color=#0000bb]strOldDay[/color][color=#007700], [/color][color=#0000bb]strOldMonth[/color][color=#007700], [/color][color=#0000bb]strOldYear[/color][color=#007700]), [/color][color=#0000bb]mintTrialPeriod[/color][COLOR=#007700])
[/COLOR][color=#0000bb]mintSystem_UsedTrialDays [/color][color=#007700]= [/color][color=#0000bb]DiffDate[/color][color=#007700]([/color][color=#0000bb]strOldDay[/color][color=#007700], [/color][color=#0000bb]strOldMonth[/color][color=#007700], [/color][color=#0000bb]strOldYear[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim todaydate [/color][color=#007700]As [/color][COLOR=#0000bb]String
todaydate [/COLOR][color=#007700]= [/color][color=#0000bb]Format[/color][color=#007700]([/color][color=#0000bb]Today[/color][color=#007700], [/color][color=#dd0000]"dd/MM/yyyy"[/color][COLOR=#007700])
[/COLOR][COLOR=#dd0000]'للمقارنه بين تاريخ بدء تشغيل البرنامج اول مره وتاريخ اليوم
If RemainsDays1 = 0 Then
Return "عفوا,لقد انتهت مده استخدامك للنسخه التجريبيه!!من فضلك قم بالترقيه الى النسخه الكامله."
Else
Dim LastMonth As String
Dim CurrentMonth As String
LastMonth = Last.Substring(3, 2)
CurrentMonth = todaydate.Substring(3, 2)
If LastMonth > CurrentMonth Then
If Last = todaydate Or First > todaydate Then
Return "عفوا,لقد انتهت مده استخدامك للنسخه التجريبيه!!من فضلك قم بالترقيه الى النسخه الكامله."
Else
strReturn = GetLastAccessDateTime()
If strReturn <> "LogIn" Then
Return strReturn
Else
If RemainsDays1 = Nothing Then
Return "123اليوم هو اخر يوم لاستخدامك النسخه التجريبيه."
Else
Return "123 لديك " & RemainsDays1 & " يوما لانتهاء نسختك التجريبيه."
End If
End If
End If
Else
If Last = todaydate Or Last < todaydate Or First > todaydate Then
Return "عفوا,لقد انتهت مده استخدامك للنسخه التجريبيه!!من فضلك قم بالترقيه الى النسخه الكامله."
Else
strReturn = GetLastAccessDateTime()
If strReturn <> "LogIn" Then
Return strReturn
Else
If RemainsDays1 = Nothing Then
Return "123اليوم هو اخر يوم لاستخدامك النسخه التجريبيه ."
Else
Return "123 لديك " & RemainsDays1 & " يوما لانتهاء نسختك التجريبيه."
End If
End If
End If
End If
End If
Else
Return " لقد تم التلاعب ببعض مكونات البرنامج ليس لك الصلاحيه بالولوج الى البرنامج ."
End If
End If
End Function
Public Function funcEncrpt_Date(ByVal mDate As String) As String
'[/COLOR][COLOR=#0000bb]هذه القيمه تستخدم لتشفير التاريخ المخزن فى الريجسترى باسم البرنامج
Dim intI [/COLOR][color=#007700]As [/color][color=#0000bb]Integer [/color][color=#007700]= [/color][COLOR=#0000bb]0
Dim mstrDate [/COLOR][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][COLOR=#dd0000]""
[/COLOR][COLOR=#007700]Try
For [/COLOR][color=#0000bb]intI [/color][color=#007700]= [/color][color=#0000bb]1 To Len[/color][color=#007700]([/color][color=#0000bb]mDate[/color][COLOR=#007700])
If [/COLOR][color=#0000bb]Mid[/color][color=#007700]([/color][color=#0000bb]Trim[/color][color=#007700]([/color][color=#0000bb]mDate[/color][color=#007700]), [/color][color=#0000bb]intI[/color][color=#007700], [/color][color=#0000bb]1[/color][color=#007700]) = [/color][color=#dd0000]"1" [/color][COLOR=#0000bb]Then
mstrDate [/COLOR][color=#007700]= [/color][color=#0000bb]mstrDate [/color][color=#007700]& [/color][color=#0000bb]ChrW[/color][color=#007700]([/color][color=#0000bb]Asc[/color][color=#007700]([/color][color=#0000bb]Mid[/color][color=#007700]([/color][color=#0000bb]Trim[/color][color=#007700]([/color][color=#0000bb]mDate[/color][color=#007700]), [/color][color=#0000bb]intI[/color][color=#007700], [/color][color=#0000bb]1[/color][color=#007700])) - [/color][color=#0000bb]5[/color][COLOR=#007700])
Else
[/COLOR][color=#0000bb]mstrDate [/color][color=#007700]= [/color][color=#0000bb]mstrDate [/color][color=#007700]& [/color][color=#0000bb]ChrW[/color][color=#007700]([/color][color=#0000bb]Asc[/color][color=#007700]([/color][color=#0000bb]Mid[/color][color=#007700]([/color][color=#0000bb]Trim[/color][color=#007700]([/color][color=#0000bb]mDate[/color][color=#007700]), [/color][color=#0000bb]intI[/color][color=#007700], [/color][color=#0000bb]1[/color][color=#007700])) - [/color][color=#0000bb]10[/color][COLOR=#007700])
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If
[/COLOR][COLOR=#0000bb]Next
[/COLOR][color=#007700]If [/color][color=#0000bb]InStr[/color][color=#007700]([/color][color=#0000bb]mstrDate[/color][color=#007700], [/color][color=#dd0000]"'"[/color][color=#007700]) <> [/color][COLOR=#0000bb]0 Then
mstrDate [/COLOR][color=#007700]= [/color][color=#0000bb]mstrDate [/color][color=#007700]& [/color][COLOR=#dd0000]"'"
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If
Catch [/COLOR][color=#0000bb]ex [/color][color=#007700]As [/color][COLOR=#0000bb]Exception
End [/COLOR][COLOR=#007700]Try
Return [/COLOR][COLOR=#0000bb]mstrDate
End [/COLOR][COLOR=#007700]Function
Public Function [/COLOR][color=#0000bb]funcDecrpt_Date[/color][color=#007700]([/color][color=#0000bb]ByVal mDate [/color][color=#007700]As [/color][color=#0000bb]String[/color][color=#007700]) As [/color][COLOR=#0000bb]String
[/COLOR][COLOR=#dd0000]'وهذه القيمه تسخدم لفك تشفير القيمه السابقه التى تم تشفيرها ويتم قرائتها من البرنامج من الريجسترى
Dim intI As Integer = 0
Dim mstrDate As String = ""
Try
For intI = 1 To Len(mDate)
If Mid(Trim(mDate), intI, 1) = "," Then
mstrDate = mstrDate & ChrW(Asc(Mid(Trim(mDate), intI, 1)) + 5)
Else
mstrDate = mstrDate & ChrW(Asc(Mid(Trim(mDate), intI, 1)) + 10)
End If
Next
Catch ex As Exception
End Try
Return mstrDate
End Function
Public Function WriteValue(ByVal TrialPeriod As Integer) As Boolean
'[/COLOR][COLOR=#0000bb]هذه تكتب القيمه الى الريجسترى باسم البرنامج والتاريخ الذى تم بدء البرنامج اول مره للمقارنه فيما بعد وحساب الوقت المستخدم
Dim regKey [/COLOR][color=#007700]As [/color][COLOR=#0000bb]RegistryKey
Dim SaveFirstAccessdate [/COLOR][color=#007700]As [/color][COLOR=#0000bb]String
[/COLOR][COLOR=#007700]Try
[/COLOR][color=#0000bb]regKey [/color][color=#007700]= [/color][color=#0000bb]Registry[/color][color=#007700].[/color][color=#0000bb]LocalMachine[/color][color=#007700].[/color][color=#0000bb]OpenSubKey[/color][color=#007700]([/color][color=#dd0000]"Software\AppSecurity"[/color][color=#007700], [/color][color=#0000bb]True[/color][COLOR=#007700])
[/COLOR][color=#0000bb]StartDate [/color][color=#007700]= [/color][color=#0000bb]Format[/color][color=#007700]([/color][color=#0000bb]Today[/color][color=#007700], [/color][color=#dd0000]"dd/MM/yyyy"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]LastDate [/color][color=#007700]= [/color][color=#0000bb]Format[/color][color=#007700]([/color][color=#0000bb]Today[/color][color=#007700].[/color][color=#0000bb]AddDays[/color][color=#007700]([/color][color=#0000bb]TrialPeriod[/color][color=#007700]), [/color][color=#dd0000]"dd/MM/yyyy"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]FinalDate [/color][color=#007700]= [/color][color=#0000bb]funcEncrpt_Date[/color][color=#007700]([/color][color=#0000bb]StartDate[/color][color=#007700]) & [/color][color=#dd0000]";" [/color][color=#007700]& [/color][color=#0000bb]funcEncrpt_Date[/color][color=#007700]([/color][color=#0000bb]LastDate[/color][COLOR=#007700])
[/COLOR][color=#0000bb]regKey[/color][color=#007700].[/color][color=#0000bb]SetValue[/color][color=#007700]([/color][color=#dd0000]"System_In"[/color][color=#007700], [/color][color=#0000bb]FinalDate[/color][color=#007700]) [/color][COLOR=#dd0000]'كتابه وقت بدء البرنامج ووقت انتهائه بالريجسترى
SaveFirstAccessdate = Format(Today, "dd/MM/yyyy") & ";" & Format(TimeOfDay, "hh:mm:ss tt")
regKey.SetValue("System_Used", funcEncrpt_Date(SaveFirstAccessdate)) '[/COLOR][COLOR=#0000bb]كتابه اخر استخدام للبرنامج اعتمادا على تاريخ ووقت النظام بالكمبيوتر
regKey[/COLOR][color=#007700].[/color][color=#0000bb]SetValue[/color][color=#007700]([/color][color=#dd0000]"AppName"[/color][color=#007700], [/color][color=#dd0000]"AppSecurity"[/color][color=#007700]) [/color][COLOR=#dd0000]'كتابه اسم البرنامج فى الريجسترى
regKey.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
Public Function GetLastAccessDateTime() As String
'[/COLOR][COLOR=#0000bb]تسخدم فى جلب المعلومات عن اخر مره تم استخدام البرنامج فيها خر استخدام بالتاريخ والوقت
[/COLOR][COLOR=#007700]Try
[/COLOR][color=#0000bb]Dim regKey [/color][color=#007700]As [/color][COLOR=#0000bb]RegistryKey
regKey [/COLOR][color=#007700]= [/color][color=#0000bb]Registry[/color][color=#007700].[/color][color=#0000bb]LocalMachine[/color][color=#007700].[/color][color=#0000bb]OpenSubKey[/color][color=#007700]([/color][color=#dd0000]"SOFTWARE"[/color][color=#007700], [/color][color=#0000bb]True[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim LastAccess [/color][color=#007700]As [/color][COLOR=#0000bb]String
regKey [/COLOR][color=#007700]= [/color][color=#0000bb]Registry[/color][color=#007700].[/color][color=#0000bb]LocalMachine[/color][color=#007700].[/color][color=#0000bb]OpenSubKey[/color][color=#007700]([/color][color=#dd0000]"Software\AppSecurity"[/color][color=#007700], [/color][color=#0000bb]True[/color][COLOR=#007700])
[/COLOR][color=#0000bb]LastAccess [/color][color=#007700]= [/color][color=#0000bb]regKey[/color][color=#007700].[/color][color=#0000bb]GetValue[/color][color=#007700]([/color][color=#dd0000]"System_Used"[/color][color=#007700]) [/color][COLOR=#dd0000]'فك التشفير, funcDecrpt_Date(FinalDateTime))
If LastAccess = "" Or LastAccess.Length <> "22" Then
Return "لقد تم التلاعب ببعض مكونات البرنامج,ليس لديك الصلاحيه بالولوج الى البرنامج."
Else
Dim TodayDate As String
TodayDate = (Format(Today, "dd/MM/yyyy") & ";" & Format(TimeOfDay, "hh:mm:ss tt"))
If TodayDate < funcDecrpt_Date(LastAccess) Then
Return "لقد تم التلاعب فى ساعه النظام لديك يدويا,ليس لديك الصلاحيه بالولوج الى البرنامج."
Else
Return "LogIn"
End If
End If
regKey.Close()
Catch ex As Exception
Return ""
End Try
End Function
Public Sub SaveLastAceessDateTime()
'[/COLOR][COLOR=#0000bb]هذه تستخدم عند الخروج من البرنامج مع حفظ اخر استخدام للبرنامج بالوقت والتاريخ
[/COLOR][COLOR=#007700]Try
[/COLOR][color=#0000bb]Dim regKey [/color][color=#007700]As [/color][COLOR=#0000bb]RegistryKey
regKey [/COLOR][color=#007700]= [/color][color=#0000bb]Registry[/color][color=#007700].[/color][color=#0000bb]LocalMachine[/color][color=#007700].[/color][color=#0000bb]OpenSubKey[/color][color=#007700]([/color][color=#dd0000]"SOFTWARE"[/color][color=#007700], [/color][color=#0000bb]True[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Dim SaveLastAccessdate [/color][color=#007700]As [/color][COLOR=#0000bb]String
regKey [/COLOR][color=#007700]= [/color][color=#0000bb]Registry[/color][color=#007700].[/color][color=#0000bb]LocalMachine[/color][color=#007700].[/color][color=#0000bb]OpenSubKey[/color][color=#007700]([/color][color=#dd0000]"Software\AppSecurity"[/color][color=#007700], [/color][color=#0000bb]True[/color][COLOR=#007700])
[/COLOR][color=#0000bb]SaveLastAccessdate [/color][color=#007700]= [/color][color=#0000bb]Format[/color][color=#007700]([/color][color=#0000bb]Today[/color][color=#007700], [/color][color=#dd0000]"dd/MM/yyyy"[/color][color=#007700]) & [/color][color=#dd0000]";" [/color][color=#007700]& [/color][color=#0000bb]Format[/color][color=#007700]([/color][color=#0000bb]TimeOfDay[/color][color=#007700], [/color][color=#dd0000]"hh:mm:ss tt"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]FinalDateTime [/color][color=#007700]= [/color][color=#0000bb]funcEncrpt_Date[/color][color=#007700]([/color][color=#0000bb]SaveLastAccessdate[/color][COLOR=#007700])
[/COLOR][color=#0000bb]regKey[/color][color=#007700].[/color][color=#0000bb]SetValue[/color][color=#007700]([/color][color=#dd0000]"System_Used"[/color][color=#007700], [/color][color=#0000bb]FinalDateTime[/color][COLOR=#007700])
[/COLOR][color=#0000bb]regKey[/color][color=#007700].[/color][color=#0000bb]Close[/color][COLOR=#007700]()
Catch [/COLOR][color=#0000bb]ex [/color][color=#007700]As [/color][COLOR=#0000bb]Exception
End [/COLOR][COLOR=#007700]Try
[/COLOR][COLOR=#0000bb]End Sub
[/COLOR][color=#007700]Public Function [/color][color=#0000bb]DisplayApplicationStatus[/color][color=#007700]([/color][color=#0000bb]ByVal pDaysSystem_Used [/color][color=#007700]As [/color][color=#0000bb]Integer[/color][color=#007700], [/color][color=#0000bb]ByVal pTotalDays [/color][color=#007700]As [/color][color=#0000bb]Integer[/color][color=#007700]) As [/color][COLOR=#0000bb]String
[/COLOR][COLOR=#dd0000]'هذه تستخدم للتشييك على ان المستخدم قد احدث خطا عند تشغيل البرنامج بعد انتهاء المده التجريبيه او اقل من صفر يوم
If pTotalDays < 0 Then
Return "لقد حدث خطأ !لقد تجاوزت مده استخدامك عن المده المحدده, من فضلك قم بالاتصال بمطور البرنامج واخبره عن هذا الخطأ."
End If
'[/COLOR][COLOR=#0000bb]هذه تستخدم للتشييك على ان النسخه التجريبيه انتهت
[/COLOR][color=#007700]If [/color][color=#0000bb]pDaysSystem_Used [/color][color=#007700]>= [/color][COLOR=#0000bb]pTotalDays Then
[/COLOR][color=#007700]Return [/color][COLOR=#dd0000]"لقد انتهت مده استخدامك للنسخه التجريبيه !! من فضلك قم بالترقيه الى النسخه الكامله...!"
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If
[/COLOR][COLOR=#0000bb]Draw the bar
RemainsDays1 [/COLOR][color=#007700]= [/color][color=#0000bb]pTotalDays [/color][color=#007700]- [/color][COLOR=#0000bb]pDaysSystem_Used
[/COLOR][color=#007700]Return [/color][color=#dd0000]"لديك " [/color][color=#007700]+ ([/color][color=#0000bb]pTotalDays [/color][color=#007700]- [/color][color=#0000bb]pDaysSystem_Used[/color][color=#007700]).[/color][color=#0000bb]ToString [/color][color=#007700]+ [/color][COLOR=#dd0000]" يوم لانتهاء نسختك التجريبيه!!."
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]Function
Public Function [/COLOR][color=#0000bb]DiffDate[/color][color=#007700]([/color][color=#0000bb]ByVal OrigDay [/color][color=#007700]As [/color][color=#0000bb]String[/color][color=#007700], [/color][color=#0000bb]ByVal OrigMonth [/color][color=#007700]As [/color][color=#0000bb]String[/color][color=#007700], [/color][color=#0000bb]ByVal OrigYear [/color][color=#007700]As [/color][color=#0000bb]String[/color][color=#007700]) As [/color][COLOR=#0000bb]Integer
[/COLOR][COLOR=#007700]Try
[/COLOR][color=#0000bb]Dim D1 [/color][color=#007700]As [/color][color=#0000bb]Date [/color][color=#007700]= New [/color][color=#0000bb]Date[/color][color=#007700]([/color][color=#0000bb]Convert[/color][color=#007700].[/color][color=#0000bb]ToInt32[/color][color=#007700]([/color][color=#0000bb]OrigYear[/color][color=#007700]), [/color][color=#0000bb]Convert[/color][color=#007700].[/color][color=#0000bb]ToInt32[/color][color=#007700]([/color][color=#0000bb]OrigMonth[/color][color=#007700]), [/color][color=#0000bb]Convert[/color][color=#007700].[/color][color=#0000bb]ToInt32[/color][color=#007700]([/color][color=#0000bb]OrigDay[/color][COLOR=#007700]))
Return [/COLOR][color=#0000bb]Convert[/color][color=#007700].[/color][color=#0000bb]ToInt32[/color][color=#007700]([/color][color=#0000bb]DateDiff[/color][color=#007700]([/color][color=#0000bb]DateInterval[/color][color=#007700].[/color][color=#0000bb]Day[/color][color=#007700], [/color][color=#0000bb]D1[/color][color=#007700], [/color][color=#0000bb]DateTime[/color][color=#007700].[/color][color=#0000bb]Now[/color][COLOR=#007700]))
Catch
Return [/COLOR][COLOR=#0000bb]0
End [/COLOR][COLOR=#007700]Try
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]Function
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]Class
[/COLOR][color=#0000bb][/color][/COLOR]
تحياتى وبالتوفيق
|