منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] طريقة تثبيت البرنامج في حاسوب واحد - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] طريقة تثبيت البرنامج في حاسوب واحد (/showthread.php?tid=35679)



طريقة تثبيت البرنامج في حاسوب واحد - rochdi191 - 16-07-20

السلام عليكم

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

قمت ببرمجة الكود اولا يفنح رسالة اريد التفعيل



عند الضعط ok يظهر الفورم التالي يجلب كل المعلومات العميل كما في الصورة




و بعد اجراء معادلة اقوم بوضع اجلب كود التفعيل ويتم وضعه في التكست بوكس والضعظ على زر التفعيل
فتظهر رسالة صح



المطلوب الان يا اخوتي

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

و هذا الكود بجلب المعلومات الخاصة بالجهاز


Imports System.Management
Imports Microsoft.Win32
Imports System.Security.AccessControl
Public Class Form11

    Private Sub Form11_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        TxtWindows.Text = My.Computer.Info.OSFullName
        TxtNamepc.Text = System.Environment.MachineName
        Txtlangpc.Text = My.Computer.Info.InstalledUICulture.EnglishName
        Dim cmicWmi As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")
        Dim diskid As String 'DigitalID
        Dim diskserialnumber As String ' this is we will call it the serial number for the time being
        Dim diskmodel As String ' serial unmber

        For Each cmicWmiobj As Managementobject In cmicWmi.get
            diskid = cmicWmiobj("signature")
            diskserialnumber = cmicWmiobj("serialnumber")
            diskmodel = cmicWmiobj("model")
        Next
        Dim x As String
        Txtharddiskserial.Text = diskserialnumber
        Txtserial.Text = diskid
        Txt4.Text = Val(Txtserial.Text) * 13 + 1225 - 1650

        x = Txtharddiskserial.Text
        Dim activekey As RegistryKey
        activekey = Registry.LocalMachine.OpenSubKey("SOFTWARE", True)
        activekey = Registry.LocalMachine.OpenSubKey("SOFTWARE\Progtest", True)
        If activekey Is Nothing Then
            activekey = Registry.LocalMachine.OpenSubKey("SOFTWARE", True)
            activekey.CreateSubKey("Progtest")

            activekey = Registry.LocalMachine.OpenSubKey("SOFTWARE\Progtest", True)
            activekey.SetValue("System_Key", x)
            activekey.Close()

        End If




    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        If Txtnumbercactivate.Text = Txt4.Text Then
            MsgBox("نمت عملية تفعيل البرنامج بنجاح")
            ''My.Settings.isActive = True
            'My.Settings.Save()
        Else
            MsgBox("رقم التفعيل الذي ادخلته غير صحيح الرجاء التاكد")
            Application.Exit()
        End If

    End Sub
End Class


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

Imports Microsoft.Win32
Public Class StartForm1
    Public Function check_key() As String
        Try
            Dim checkkey As registrykey
            Dim CK_Key As String
            checkkey = Registry.LocalMachine.OpenSubKey("SOFTWARE\FoxSoftware", True)
            CK_Key = checkkey.getvalue("System_Key")
            Return CK_Key


        Catch ex As Exception
            Return ""
        End Try
    End Function
    Private Sub StartForm1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Dim x As String
        x = check_key()
        If x = String.Empty Then
            MsgBox(" Need Active")
            Form11.ShowDialog()
        Else
            MsgBox("مرحبا بك")
        End If


RE: طريقة تثبيت البرنامج في حاسوب واحد - boudyonline - 16-07-20

اجعل التفعيل عن طريق متغير في Setting


RE: طريقة تثبيت البرنامج في حاسوب واحد - rochdi191 - 16-07-20

(16-07-20, 03:28 AM)boudyonline كتب : اجعل التفعيل عن طريق متغير في Setting

هل من مثال اخي boudyonline
جزاك الله خيرا اخي


RE: طريقة تثبيت البرنامج في حاسوب واحد - essawq - 16-07-20

(16-07-20, 04:21 PM)rochdi191 كتب :
(16-07-20, 03:28 AM)boudyonline كتب : اجعل التفعيل عن طريق متغير في Setting

هل من مثال اخي boudyonline
جزاك الله خيرا اخي

تفضل اخي تابع هنا
http://vb4arb.com/vb/showthread.php?tid=35445&page=3
لكن الطريقة تختلف لتفعيل البرنامج ومن السيتنق
تحياتي لك


RE: طريقة تثبيت البرنامج في حاسوب واحد - حريف برمجة - 16-07-20

ببساطة بعد تفعيل البرنامج مباشرة تخزين قيمة في settings

وعند تشغيل البرنامج يستعلم عن القيمة تم التفعيل أو لا ،، وبناء على النتيجة تظهر الفورم المطلوبة .


RE: طريقة تثبيت البرنامج في حاسوب واحد - aljzazy - 16-07-20

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

على سبيل المثال نقوم بانشاء فنكشين من نوع سترينج تعود بقيمة

كود :
Public Function check_Key() As String
       Try
           Dim Checkkey As RegistryKey
           Dim CK_Key As String
           Checkkey = Registry.LocalMachine.OpenSubKey("SOFTWARE\FoxSoftware", True)
           CK_Key = Checkkey.GetValue("System_key")
           Return CK_Key
       Catch ex As Exception
           Return ""
       End Try
   End Function
وبعد ذلك نقوم بحدث اللود للشاشة الرئيسية
كود :
  Dim x As String
       x = check_Key()
       If x = String.Empty Then
           MsgBox(" need active")
           Form1.ShowDialog()
       Else
           MsgBox(" مرحبا بك ")
       End If
وهذا السورس كود يمكن ان يساعدك


RE: طريقة تثبيت البرنامج في حاسوب واحد - rochdi191 - 16-07-20

(16-07-20, 07:59 PM)aljzazy كتب :
حياك الله اخي الكريم
بالبداية انا لست دكتور او حتى مهندس
بعد تفعيل البرنامج نحن قمنا بتخزين رقم التفعيل في الريجيستري
يمكننا بعد ذلك وفي حدث اللود للشاشة ان نقوم بالبحث عن رقم
التفعيل حسب المسار الذي قمنا به بتفعيل البرنامج فاذا كان الملف
موجود فهذا يعني ان البرنامج قد تم تفعيله من قبل ونظهر له شاشة
تسجيل الدخول مثلا اما اذا كان الرقم غير موجود  بالريجستري فهذا
يعني ان البرنامج غير مفعل ونظهر له شاشة التفعيل

على سبيل المثال نقوم بانشاء فنكشين من نوع سترينج تعود بقيمة

كود :
Public Function check_Key() As String
       Try
           Dim Checkkey As RegistryKey
           Dim CK_Key As String
           Checkkey = Registry.LocalMachine.OpenSubKey("SOFTWARE\FoxSoftware", True)
           CK_Key = Checkkey.GetValue("System_key")
           Return CK_Key
       Catch ex As Exception
           Return ""
       End Try
   End Function
وبعد ذلك نقوم بحدث اللود للشاشة الرئيسية
كود :
  Dim x As String
       x = check_Key()
       If x = String.Empty Then
           MsgBox(" need active")
           Form1.ShowDialog()
       Else
           MsgBox(" مرحبا بك ")
       End If
وهذا السورس كود يمكن ان يساعدك

شكرا جزيلا يا دكتور اشكرك على تواضعك
لقد قمت بالعملية نفسها يا استاذ وقمت جعل البرنامج يثبت على نسخة exe وبعد تثبيته يطلب منك التفعيل لكن عند غلق و فتح مرة اخرى يطلب مني اعادة التفعيل


RE: طريقة تثبيت البرنامج في حاسوب واحد - aljzazy - 16-07-20

اذا كان لديك برنامج any desk يمكن المساعدة


RE: طريقة تثبيت البرنامج في حاسوب واحد - rochdi191 - 16-07-20

(16-07-20, 09:12 PM)aljzazy كتب : اذا كان لديك برنامج any desk يمكن المساعدة

نعم لدي يا استاذ
جاري الاتصال بك على الخاص


RE: طريقة تثبيت البرنامج في حاسوب واحد - rochdi191 - 16-07-20

جزاك الله خيرا استاذ aljzazy على المساعدة تم حل المشكل بفضل الله ثم الاستاذ aljzazy