منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
حمايه استخدام البرنامج عن طريق ملف خارجى - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90)
+--- قسم : مكتبة أكواد المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=111)
+---- قسم : مكتبة أكواد .net (http://vb4arb.com/vb/forumdisplay.php?fid=117)
+---- الموضوع : حمايه استخدام البرنامج عن طريق ملف خارجى (/showthread.php?tid=6342)



حمايه استخدام البرنامج عن طريق ملف خارجى - RaggiTech - 17-10-12

كاتب الموضوع : SUB NEW


الاخوه والاخوات الكرام

ما توصلت اليه اخيرا هو حمايه استخدام برنامجك المبرمج على اطار الدوت نت عن طريق ملف خارجى

اى ان البرنامج سيعمل عن طريق كود تفعيل تدخله له فى اول مره للاستعمال او بالاحرى

سيكون هناك برنامجين

البرنامج الاول هو البرنامج الرئيسى

البرنامج الثانى هو برنامج التفعيل

الفكره التى خطرت فى بالى ونفذتها فعلا على برنامج الان لدى العميل من اسبوع تقريبا

والبرنامج يعمل بكل كفاءه وايضا ضمنت عدم العبث بالبرنامج باستخدامه على اجهزه اخرى

اى ان البرنامج سيعمل على جهاز واحد فقط

الفكره ان البرنامج فى اول تشغيل له سيقوم بالبحث عن ملف نصى فى مجلد النظام او السى وبالتحديد فى مجلد الويندوز

وضعت كود فى بدايه تحميل الفورم وهو يقوم بالبحث عن الملف اذا وجده قام باكمال التحميل ويعمل

اذا لم يجده فهنا سيقوم البرنامج باغلاق نفسه ومن ثم تشغيل برنامج التفعيل الذى قمت بتصميمه ويتكون من تكست بوكس واحد وبوتون

التكست بوكس تدخل به كلمه مرور محدده مسبقا بداخل البرنامج وعندما يدخلها المستخدم بالطريقه الصحيحه يقوم برنامج التفعيل بالعمل وهنا سيظهر فورم به زرين

الزر الاول اسمه زر التفعيل وعندما يضغط عليه المستخدم سيقوم بانشاء الملف النصى فى مجلد النظام بدون ان يعمل المستخدم بذلك

وبعد ذلك هناك زر اسمه الخروج وهنا بعد الضغط على زر التفعيل يتم الخروج من برنامج التفعيل

الاكواد التى وضعتها لا تتعدى الخمس سطور ولكنها فكره قمت بعملها ونجحت

فاحببت انى لا اكتم ذلك عنكم لان ولعى بالحمايه ليس له نهايه وانا احب الحمايه للبرامج

لانى اقدر تعب المبرمجين من السهر بالليالى والاشهر وتاتى الايدى العابثه باستخدام جهد وعرق المبرمج بدون وجه حق

اسم برنامج التفعيل activate.exe وموجود فى مسار البرنامج الرئيسى ولكن نسيت ان اقوم بعمل كود يحذف هذا البرنامج بعد التحقق من وجود الملف النصى المنشا من قبله فى مجلد النظام فاحببت الا اضيفه الان وان شاء الله ساقوم بالتطوير لاصل لاقصى حد من الحمايه

الكود كالتالى

اولا قم بتصميم برنامجك الرئيسى وضع به الاكواد التاليه فى حدث الفورم لود لاول شاشه لبرنامجك

اى لو كان هناك مثلا سبلاش سكرين ضع بها هذا الكود فى الفورم لود

ولو كان بدايه برنامجك فورم تسجيل الدخول ضع بها هذا الكود فى حدث الفورم لود

اى باختصار ضع الكود فى فورم البدايه لبرنامجك

كود :
[color=#000000][COLOR=#0000bb]  [/color][color=#007700]If [/color][color=#0000bb]Not File[/color][color=#007700].[/color][color=#0000bb]Exists[/color][color=#007700]([/color][color=#dd0000]"c:\windows\MyTest.ini"[/color][color=#007700]) [/color][COLOR=#0000bb]Then
            MsgBox[/COLOR][color=#007700]([/color][color=#dd0000]"هذه النسخه غير مفعله من فضلك اتصل بمطور البرنامج  "[/color][COLOR=#007700])
            [/COLOR][color=#0000bb]MsgBox[/color][color=#007700]([/color][color=#dd0000]"يمكنك مراسلته على البريد الالكترونى الاتى وطلب رمز التفعيل"[/color][COLOR=#007700])
            [/COLOR][color=#0000bb]MsgBox[/color][color=#007700]([/color][color=#dd0000]"avocato2008@hotmail.com"[/color][COLOR=#007700])
            [/COLOR][color=#0000bb]Process[/color][color=#007700].[/color][color=#0000bb]Start[/color][color=#007700]([/color][color=#dd0000]"activate.exe"[/color][COLOR=#007700])
            [/COLOR][color=#0000bb]Me[/color][color=#007700].[/color][color=#0000bb]Close[/color][COLOR=#007700]()
            Exit [/COLOR][COLOR=#0000bb]Sub
        [/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]


اما برنامج الحمايه فكما قلت يتكون من تكست بوكس وبوتون و ToolTip1

كلمه المرور محدده مسبقا داخل البرنامج

لاحظ الكود التالى لفورم تسجيل الدخول الى برنامج التفعيل


كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]Public Class [/color][COLOR=#0000bb]Form2
    [/COLOR][color=#007700]Private [/color][color=#0000bb]Sub Button1_Click[/color][color=#007700]([/color][color=#0000bb]sender [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Object[/color][color=#007700], [/color][color=#0000bb]e [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]EventArgs[/color][color=#007700]) [/color][color=#0000bb]Handles Button1[/color][color=#007700].[/color][COLOR=#0000bb]Click
        [/COLOR][color=#007700]If [/color][color=#0000bb]TextBox1[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#dd0000]"" [/color][COLOR=#0000bb]Then
            MsgBox[/COLOR][color=#007700]([/color][color=#dd0000]"غير مسموح بقيمه فارغه"[/color][COLOR=#007700])
            [/COLOR][color=#0000bb]ToolTip1[/color][color=#007700].[/color][color=#0000bb]Active [/color][color=#007700]= [/color][COLOR=#0000bb]False
        End [/COLOR][COLOR=#007700]If
        If [/COLOR][color=#0000bb]TextBox1[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#dd0000]"emad0096594942529" [/color][COLOR=#0000bb]Then
            Me[/COLOR][color=#007700].[/color][color=#0000bb]Hide[/color][COLOR=#007700]()
            [/COLOR][color=#0000bb]Form1[/color][color=#007700].[/color][color=#0000bb]Show[/color][COLOR=#007700]()
        [/COLOR][color=#0000bb]End [/color][COLOR=#007700]If
    [/COLOR][COLOR=#0000bb]End Sub
    [/COLOR][color=#007700]Private [/color][color=#0000bb]Sub TextBox1_MouseMove[/color][color=#007700]([/color][color=#0000bb]sender [/color][color=#007700]As [/color][color=#0000bb]Object[/color][color=#007700], [/color][color=#0000bb]e [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Windows[/color][color=#007700].[/color][color=#0000bb]Forms[/color][color=#007700].[/color][color=#0000bb]MouseEventArgs[/color][color=#007700]) [/color][color=#0000bb]Handles TextBox1[/color][color=#007700].[/color][COLOR=#0000bb]MouseMove
        ToolTip1[/COLOR][color=#007700].[/color][color=#0000bb]Active [/color][color=#007700]= [/color][COLOR=#0000bb]False
    End Sub
    [/COLOR][color=#007700]Private [/color][color=#0000bb]Sub Form2_Load[/color][color=#007700]([/color][color=#0000bb]sender [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Object[/color][color=#007700], [/color][color=#0000bb]e [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]EventArgs[/color][color=#007700]) [/color][color=#0000bb]Handles MyBase[/color][color=#007700].[/color][COLOR=#0000bb]Load
        TextBox1[/COLOR][color=#007700].[/color][color=#0000bb]Focus[/color][COLOR=#007700]()
        =====================for [/COLOR][COLOR=#0000bb]help him about password
        Dim too [/COLOR][color=#007700]As New [/color][COLOR=#0000bb]ToolTip
        too[/COLOR][color=#007700].[/color][color=#0000bb]IsBalloon [/color][color=#007700]= [/color][COLOR=#0000bb]True
        too[/COLOR][color=#007700].[/color][color=#0000bb]ToolTipIcon [/color][color=#007700]= [/color][color=#0000bb]ToolTipIcon[/color][color=#007700].[/color][COLOR=#0000bb]Info
        too[/COLOR][color=#007700].[/color][color=#0000bb]ToolTipTitle [/color][color=#007700]= [/color][COLOR=#dd0000]"مساعده"
        [/COLOR][color=#0000bb]too[/color][color=#007700].[/color][color=#0000bb]StripAmpersands [/color][color=#007700]= [/color][COLOR=#0000bb]True
        too[/COLOR][color=#007700].[/color][color=#0000bb]SetToolTip[/color][color=#007700]([/color][color=#0000bb]TextBox1[/color][color=#007700], [/color][color=#dd0000]"ادخل كلمه المرور التى حصلت عليها من المبرمج لكى تستطيع الولوج الى برنامج  التفعيل "[/color][COLOR=#007700])
    [/COLOR][COLOR=#0000bb]End Sub
End [/COLOR][COLOR=#007700]Class  
[/COLOR][color=#0000bb][/color][/COLOR]

اما الفورم التالى بعد نجاح تسجيل الدخول يوجد به عدد 2 بوتون الاول اسمه تفعيل والاخر اسمه خروج

الكود كاملا للفورم


كود :
[color=#000000][COLOR=#0000bb]Imports System[/color][color=#007700].[/color][COLOR=#0000bb]IO
Imports System[/COLOR][color=#007700].[/color][COLOR=#0000bb]Text
[/COLOR][color=#007700]Public Class [/color][COLOR=#0000bb]Form1
    [/COLOR][COLOR=#dd0000]'تعريف بانشاء ملف فى مجلد النظام بالاسم والامتداد
    Dim fileLoc As String = "c:\windows\MyTest.ini"
    '[/COLOR][COLOR=#0000bb]عند الضغط على زر التفعيل يتم انشاء الملف النصى
    [/COLOR][color=#007700]Private [/color][color=#0000bb]Sub Button1_Click[/color][color=#007700]([/color][color=#0000bb]sender [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Object[/color][color=#007700], [/color][color=#0000bb]e [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]EventArgs[/color][color=#007700]) [/color][color=#0000bb]Handles Button1[/color][color=#007700].[/color][COLOR=#0000bb]Click
        Dim fs [/COLOR][color=#007700]As [/color][color=#0000bb]FileStream [/color][color=#007700]= [/color][COLOR=#0000bb]Nothing
        [/COLOR][color=#007700]If ([/color][color=#0000bb]Not File[/color][color=#007700].[/color][color=#0000bb]Exists[/color][color=#007700]([/color][color=#0000bb]fileLoc[/color][color=#007700])) [/color][COLOR=#0000bb]Then
            fs [/COLOR][color=#007700]= [/color][color=#0000bb]File[/color][color=#007700].[/color][color=#0000bb]Create[/color][color=#007700]([/color][color=#0000bb]fileLoc[/color][COLOR=#007700])
            [/COLOR][COLOR=#0000bb]Using fs
            End Using
        End [/COLOR][COLOR=#007700]If
        [/COLOR][COLOR=#dd0000]'الكود التالى اذا احببت انشاء ملف نصى فقط وليس بالامتداد العلوى ويتم قراء بيانات الملف النصى الى تكست بوكس  
        ' [/COLOR][color=#0000bb]Dim path [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][COLOR=#dd0000]"c:\windows\MyTest.txt"
        '  If File.Exists(path) = False Then
        ' [/COLOR][color=#0000bb]Create a file to write to[/color][COLOR=#007700].
        [/COLOR][COLOR=#dd0000]' Dim sw As StreamWriter = File.CreateText(path)
        '  [/COLOR][color=#0000bb]sw[/color][color=#007700].[/color][color=#0000bb]WriteLine[/color][color=#007700]([/color][color=#dd0000]"اسم العميل"[/color][color=#007700], [/color][color=#0000bb]My[/color][color=#007700].[/color][color=#0000bb]Computer[/color][color=#007700].[/color][color=#0000bb]Name[/color][COLOR=#007700])
        [/COLOR][COLOR=#dd0000]' sw.WriteLine("تاريخ التفعيل", DateAndTime.TimeOfDay)
        '  [/COLOR][color=#0000bb]sw[/color][color=#007700].[/color][color=#0000bb]WriteLine[/color][color=#007700]([/color][color=#dd0000]"كود التفعيل"[/color][COLOR=#007700])
        [/COLOR][COLOR=#dd0000]'  sw.Flush()
        '  [/COLOR][color=#0000bb]sw[/color][color=#007700].[/color][color=#0000bb]Close[/color][COLOR=#007700]()
        [/COLOR][COLOR=#dd0000]'   End If
        ' [/COLOR][color=#0000bb]Open the file to read from[/color][COLOR=#007700].
        [/COLOR][COLOR=#dd0000]'  Dim sr As StreamReader = File.OpenText(path)
        '  [/COLOR][color=#007700]Do While [/color][color=#0000bb]sr[/color][color=#007700].[/color][color=#0000bb]Peek[/color][color=#007700]() >= [/color][COLOR=#0000bb]0
        [/COLOR][COLOR=#dd0000]'TextBox1.Text = (sr.ReadLine())
        ' [/COLOR][COLOR=#0000bb]Loop
        [/COLOR][COLOR=#dd0000]'  sr.Close()
        ' [/COLOR][color=#0000bb]MsgBox[/color][color=#007700]([/color][color=#dd0000]"تم تفعيل البرنامج "[/color][COLOR=#007700])
        [/COLOR][COLOR=#dd0000]' TextBox1.Text = "تم تفعيل البرنامج"
    End Sub
    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        '[/COLOR][COLOR=#0000bb]الخروج من البرنامج او تشغيل البرنامج الرئيسى  
        System[/COLOR][color=#007700].[/color][color=#0000bb]Diagnostics[/color][color=#007700].[/color][color=#0000bb]Process[/color][color=#007700].[/color][color=#0000bb]Start[/color][color=#007700]([/color][color=#dd0000]"bank.exe"[/color][COLOR=#007700])
        [/COLOR][COLOR=#0000bb]End
    End Sub
End [/COLOR][COLOR=#007700]Class  
[/COLOR][color=#0000bb][/color][/COLOR]

هذا اقصى ما توصلت اليه بخبرتى البسيطه التى اكتسبتها على ايديكم

اذا اعجبتكم الفكره فهذا فضل من الله ونعمه واذا لم تعجبكم فهذا خطا منى ومن الشيطان

ولا ارجو فى كلتا الحالتين الا دعوه صالحه

ارجو من الجميع تطبيق الفكره والتعقيب اذا كان هناك شئ مبهم او غير واضح

تحياتى للجميع وبالتوفيق

اخوكم

الافوكاتو