تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كود عمل نسخة تجريبية من صنعى للمناقشة
#1
السلام عليكم ورحمة الله
قمت بعمل كود للنسخة التجريبية والحمد لله الكود يعمل معى ولكن احببت ان اعرضة للمناقشة حتى يستفيد منه الاعضاء واستفاد من اخطائى فكل الناس تخطأ ولكن المهم ان استفيد من خطئى
وهذا الكود مع الشرح
كود :
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        'اولا يتم عمل ملف فى نسخة الويندوز ويتم قراءة هذا الكود بهذة الطريقة

        Dim KeyName As String = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
        Dim valueName As String = "manduh"
        Dim inwin1 As String = "in"
        Dim Value As Object = inwin
        inwin = Registry.GetValue(KeyName, valueName, Value.ToString())
        'اذا لم يكن هناك ملف فىالنسخة يتم الاتى
        If inwin = "" Then
            'هنا تم عمل تاريخ نهاية النسخة بعد 15يوما
            Dim MpTryApi As String = Now.AddDays(15D)
            'تم عمل جدول فى قاعدة البيانات يتم تخزين فية التاريخ
            Dim datess As String
            If Not DataAccess.con.State = ConnectionState.Open Then
                DataAccess.con.Open()
            End If
            Dim da1 As New OleDbDataAdapter("SELECT * from testing_pro where (id=1) ", DataAccess.con)
            Dim dt1 As New DataTable
            da1.Fill(dt1)
            datess = dt1.Rows(0).Item("datess").ToString
            DataAccess.con.Close()

            'تم استعراض التاريخ الموجود فى قاعدة البيانات
            'وعند عمل قادة البيانات يتم عمل اول صف ويشمل على خانة التاريخ خالية
            'فى حالة ان التاريخ يكون فارغ يتم الاتى
            If datess = "" Then
                'فى حالة انه فارغ يتم اضافة تاريخ اليوم وهذا التاريخ عندما يتم تشغيل البرنامج الاول مرة

                Dim idtest As String = "1"
                If Not DataAccess.con.State = ConnectionState.Open Then
                    DataAccess.con.Open()
                End If
                DataAccess.cmd.Connection = DataAccess.con
                DataAccess.cmd.CommandText = "UPDATE testing_pro SET datess='" & datenaw & "' WHERE id=" & idtest
                DataAccess.cmd.ExecuteNonQuery()
                DataAccess.con.Close()
                'فى حالة ان التاريخ موجود يكون استخدم البرنام من قبل
                'يتم اضافة سطر جديد
            ElseIf datess >= Date.Today.ToString("yyyy/MM/dd") Then

                If Not DataAccess.con.State = ConnectionState.Open Then
                    DataAccess.con.Open()
                End If
                DataAccess.cmd.Connection = DataAccess.con
                DataAccess.cmd.CommandText = "INSERT INTO testing_pro( datess)" & _
                                  " VALUES ( '" & datenaw & "')"
                DataAccess.cmd.ExecuteNonQuery()
                DataAccess.con.Close()
                'بعد ذلك يتم احتساب عدد الايام المستخدمة للبرنامج عن طريق حساب عدد الايام من التواريخ الموجود فى قاعدة البيانات
                Dim dateend As DateTime
                If Not DataAccess.con.State = ConnectionState.Open Then
                    DataAccess.con.Open()
                End If

                Dim da2 As New OleDbDataAdapter("SELECT * from testing_pro order by id   ", DataAccess.con)
                Dim dt2 As New DataTable
                da2.Fill(dt2)
                dateend = dt2.Rows(0).Item("datess").ToString
                DataAccess.con.Close()

                Dim danew As Integer

                danew = DateDiff(DateInterval.Day, CDate(dateend), CDate(datenaw))
                'فى حالة ان عدد الايام 15 ايام يتم الاتى

                If danew = "15" Then
                    'ويتم هنا اضافة قيمة فى نسخة الويندوز
                    Value = inwin1
                    Registry.SetValue(KeyName, valueName, Value)
                    MsgBox("انتهت الفترة التجريبية للبرنامج")
                    Me.Close()
                    Return
                    'فى حالة ان عدد الايام أكبر 16 ايام يتم الاتى

                ElseIf danew > "16" Then
                    'ويتم هنا اضافة قيمة فى نسخة الويندوز
                    Value = inwin1
                    Registry.SetValue(KeyName, valueName, Value)
                    MsgBox("انتهت الفترة التجريبية للبرنامج")
                    Me.Close()
                    Return
                    ' عندما يقوم العميل بتغيير التاريخ الى اقل من التاريخ الاول يتم الاتى

                ElseIf danew < "0" Then
                    'ويتم هنا اضافة قيمة فى نسخة الويندوز
                    Value = inwin1
                    Registry.SetValue(KeyName, valueName, Value)
                    MsgBox("انتهت الفترة التجريبية للبرنامج")
                    Me.Close()
                    Return
                ElseIf danew < "15" Then
                    'الان يجد البرنامج ان عدد الايام اقل من 15 يوما
                    'واجهتى مشكلة هنا انه عندما يقوم العميل باعادة تغير التاريخ قبل تشغيل البرنامج
                    'يستطيع تشغيل البرنامج اكثر من 15 يوما
                    'تم هنا الحماية ايضا عن طريق عدد مرات تشغيل البرنامج
                    'من خلال احتساب عدد مراة العمل الافتراضية للبرنامج

                    Dim countdate As Integer = "0"
                    If Not DataAccess.con.State = ConnectionState.Open Then
                        DataAccess.con.Open()
                    End If
                    Dim da3 As New OleDbDataAdapter("SELECT COUNT(datess) AS datess FROM testing_pro ", DataAccess.con)
                    Dim dt3 As New DataTable
                    da3.Fill(dt3)
                    countdate = dt3.Rows(0).Item("datess").ToString
                    DataAccess.con.Close()
                    'تم احتساب مجموع عمليات الدخول على البرنامج من خلال جمع عدد التاوريخ الموجود فى قاعدة البيانات

                    'وليكون عدد الدخول على البرنامج 3مرات فى اليوم يكون المجموع مرات الدخول اسناء الفترة التجريبية 45مرة

                    If countdate = "45" Then
                        Value = inwin1
                        Registry.SetValue(KeyName, valueName, Value)
                        MsgBox("انتهت الفترة التجريبية للبرنامج")
                        Me.Close()
                        Application.Exit()
                    ElseIf countdate < "30" Then
                        MsgBox(countdate)
                        Form1.Show()
                        Me.Hide()
                    End If
                End If

            End If
            lodeng.Close()
        ElseIf inwin = "Micros" Then
            MsgBox(" عفوا تم استخدام النسخة التجريبية من قبل")
            Application.Exit()

        End If
    End Sub
ملحوظة :-

وانا اسف اذا كان الكود كبير وذلك للتأكد من الحماية ممن يقوم بسرقة العمل
فالبرنامج يتم العمل فية لأوقات كبيرة وتفكير كثير ولكن من يريد السرقة لا يفكر فى هذا المجهود الكبير
الرد }}}}
تم الشكر بواسطة:
#2
سؤال هل الكود ده يوضع فى app.config ؟
الرد }}}}
تم الشكر بواسطة:
#3
اين اضع هذا الكود حتى يشتغل؟؟
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  عمل نسخة تجريبية لبرنامجك مع أكواد التفعيل amgadtamer 18 4,532 09-05-16, 12:51 AM
آخر رد: NOHA MOCADMI
  برنامج تحميل من صنعى (Download Manager) mostafa.vb 3 1,140 09-09-15, 05:51 AM
آخر رد: midosafwat
  مفكره جديده من صنعى mostafa.vb 3 609 01-07-13, 06:35 AM
آخر رد: mostafa.vb

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم