الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الرجاء المساعدة في عمل سيريال نمبر لبرنامجي مرتبط ب Motherbord

رائج
بدأه aboua lnaga في 7 يناير 2009 · 104 رد · 8,510 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه

بســم الله الـرحمــن الرحيــم

أولا : انااستخدم برنامج vb.net ومستواي فيه فوق المتوسط

ثانيا:

أريد طريقة

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

بالمزر بورد الخاصة بالجهاز الذي اريد ان يعمل البرنامج عليه

طلب أخر اذا سمحتم

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

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

اريد المساعدة في ذلك وما الاداة التي تجعل السكن يعمل عند اي جهاز

وشكرا

تحياتي

#2

مرحباً ( أخي, أختي ) الكريم(ـة) .

رجاءً حاول البحث في المنتدى عن موضوع الرقم التسلسلي للوحة الأم, ستجد مثال من الـ CodeProject يخبرك عن كيفية قراءة جميع معلومات الجهاز, بعد ذلك عليك إنشاء عملية حسابية تقوم ( بضرب أو طرح أو تقسيم, الخ ... ) الرقم المتسلسل .

أغلبية البرامج المحمية بأرقام مشابهة للذي تطلبه ( تقوم على هذا الأساس ) .

بالتوفيق :) .

تم تعديل هذه المشاركة بواسطة Bashar Rabat في 7 يناير 2009 في 02:22

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#3

شكرا جزيلا لك

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

رجاء المساعدة واكون شاكرا

#4

مرحباً

يمكنك تضمين هذه العملية في مشروعك, العملية تحتاج إضافة المرجع ( System.Management ) :

 

    [color= #000000; font-weight: bold;]Private [color= #000000; font-weight: bold;]Function GetMainBoardSR[color= #009900;]([color= #009900;]) [color= #b1b100;]As String

        Dim CO [color= #b1b100;]As [color= #000000; font-weight: bold;]New [color= #990000;]System[color= #339933;].Management[color= #339933;].ConnectionOptions

        Dim MS [color= #b1b100;]As [color= #000000; font-weight: bold;]New [color= #990000;]System[color= #339933;].Management[color= #339933;].ManagementScope[color= #009900;]([color= #0000ff;]"[color= #000099; font-weight: bold;]MachineID"[color= #339933;], CO[color= #009900;])

        Dim OQ [color= #b1b100;]As [color= #000000; font-weight: bold;]New [color= #990000;]System[color= #339933;].Management[color= #339933;].ObjectQuery[color= #009900;]([color= #0000ff;]"Select SerialNumber From Win32_BaseBoard"[color= #009900;])

        Dim OS [color= #b1b100;]As [color= #000000; font-weight: bold;]New [color= #990000;]System[color= #339933;].Management[color= #339933;].ManagementObjectSearcher[color= #009900;](MS[color= #339933;], OQ[color= #009900;])

        Dim SR [color= #b1b100;]As String [color= #339933;]= String[color= #339933;].[color= #990000;]Empty

        [color= #b1b100;]For [color= #990000;]Each OReturn [color= #b1b100;]As [color= #990000;]System[color= #339933;].Management[color= #339933;].ManagementObject In OS[color= #339933;].Get

            SR [color= #339933;]= OReturn[color= #009900;]([color= #0000ff;]"SerialNumber"[color= #009900;])[color= #339933;].ToString

            [color= #b1b100;]If Not SR [color= #339933;]= [color= #990000;]Chr[color= #009900;]([color= #cc66cc;]32[color= #009900;]) Then [color= #b1b100;]Return SR

        [color= #990000;]Next

    [color= #990000;]End [color= #000000; font-weight: bold;]Function

العملية الحسابية التي تكلمت عنها يجب أن تكون من صنعك, ليست بعملية معقدة !!

ملاحظة : لايمكن الإعتماد دوماً على الرقم التسلسلي لللوحة الأم, لأنه في بعض الأحيان ( لايكون متوفر ) .

تم تعديل هذه المشاركة بواسطة Bashar Rabat في 8 يناير 2009 في 04:20

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#5

هذا مشروع كامل عن كيفية قراءة جميع معلومات الجهاز :

How To Get Hardware Information (CPU ID, MainBoard Info, Hard Disk Serial, System Information , ...) مكتوب بلغة الـ #C .

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#6

تسلملي ياغالي

واسف علي كثرة الاسئلة

بس لي اخر سؤال اذا سمحت

تم نسخ الكود وكله تمام

معلش ازاي اخلي البرنامج يعمل بقي ؟

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

اعمل له سيريال يشتغل عنده فقط ومدة زمنية معينة

واكون شاكرا جدا جدا جدا

تحياتي

#7

مرحباً ( أخي, أختي ) الكريم(ـة) .

يمكنك التعامل مع الـ Registry أو مع خاصية داخل البرنامج .

امنحني بعض الوقت ( 15-20 دقيقة ) بينما أقوم ببناء مشروع لهذه الفكرة .

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#8

اوك

انا منتظرك يا غالي

ومتشكر جدا علي المساعدة

في انتظارك

#9

حسناً, أنتهيت .

إذا لم يتم قراءة الـ Serial Number للـ Mother Board يجب عليك إدخال القيمة االتالية :

2D30C

أعرف أنها قيمة قصيرة يمكنك تكبيرها بإستبدال القيمة المرجعية للـ MainBoardSR .

RegisterAPP.zip

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#10

مشكور جدا

جاري التجربة

ساقوم بإخبارك بالنتيجة

تحياتي

#11

اولا تشكر علي المشروع الجميل ده

ثانيا الي حد ما انا فهمت

اوضحلك فهمي

انا فتحت المشروع تمام

الي انا فهمته من حضرتك يا غالي

ان انا هضيف نافذة Login علي البرنامج بتاعي مثل التي في المشروع بالكود

بعد ما اعطي البرنامج الي المستخدم الي عايز البرنامج لما يجي يفتح البرنامج

هتطلع له النافذة بتاعة اللوجن فيها معلومات جهازه تمام كما في الصورة

esgm-73ac11f895.jpg

المفروض انه هيعطيني رقم السيريال بتاع البورده الي طلع له عشان اعمله سيريال يخص هذا الرقم فقط لا غير

معلش انا زهقتك لكن الرقم الي طلع ده في الصورة المفروض انه بتاعي

هل هو صحيح

ام استبدل القيم في الكود كما قولت انت

لحد الان هذه هي التي كانت النقطة الصعبة بالنسبة لي

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

واكون شاكرا جدا علي هذا المجهود الذي بذلته معي

واي شئ انا في الخدمة

تم تعديل هذه المشاركة بواسطة aboua lnaga في 8 يناير 2009 في 22:06

#12

سأخبرك شيء استخدمته, عندما بدأت البرمجة مع الـ VB لم تكن لدي القدرة لأصل الى فكرة قراءة أي من معلومات الجهاز لهذا قمت بالإعتماد على التاريخ :), والمعادلة على ما أذكر كانت على الشكل التالي :

TextBox3.Text = Format(Today, "dd") * 696969

TextBox1.Text = TextBox3.Text & "-00-00-00-" & (Today, "dd )

______________________

الان عليّ تناول العشاء ( تفضل :P ), عندما أنتهي سأعود لأجعل للمشروع خاصية التشغيل المحدود .

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#13

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

اقتباس
الان عليّ تناول العشاء ( تفضل ), عندما أنتهي سأعود لأجعل للمشروع خاصية التشغيل المحدود .

بالهناء والشفاء

اذا كنت موافق علي التواصل معي ايميلي هو

mido_net2020@hotmail.com

شكرا لك

في انتظارك

اقتباس
لأجعل للمشروع خاصية التشغيل المحدود .

إذا سمحت لي شرح بسيط

شكرا لك

معلش انا عارف اني انا كده رخم بس معلش استحملني

اعمل ايه

للضرورة احكام

في انتظارك يا غالي

#14

اعتذر على التأخير .

كان عليّ إنهاء بعض الأمور المنزلية :) .

لاحظ الخصائص الموجودة في الـ Settings الإعتماد يتم على LastDateUse وهي عبارة عن خاصية Double .

RegisterAPP.zip

تم تعديل هذه المشاركة بواسطة Bashar Rabat في 9 يناير 2009 في 00:45

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#15
اقتباس
اعتذر على التأخير .

كان عليّ إنهاء بعض الأمور المنزلية

ولا يهمك ياغالي

معلش في السؤال واستحمل غاباوتي شيوية

المفروض ان في الصورة الجاية انا هحدد المدة تمام

23254068zc1.jpg

لو فهمي للبرنامج صح يبقي نهينا النقطة بتاعة تحديد المدة

طيب معلش كيف اعمل معادلة السيريال مرتبطة بسيريال نمبر البوردة

اخر حاجة بقي عشان اريحك

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

وتكون شاكرا جدا

أقولك حاجة اشرحلي البرنامج لو قدرت

وشكرا جزيلا لك علي المجهود

تم تعديل هذه المشاركة بواسطة aboua lnaga في 9 يناير 2009 في 01:29

#16

مرحبأً مرة أخرى :P .

أولاً - لاشكر على واجب .

ثانياً - يمكنك أيضاً الإعتماد على الرقم المدخل أي مثلاً, تحديد ثلاية فئات ( 50, 100, 150 ) :

إذا كان المدخل يساوي ( MainBoardSN * 50 ) إذا المدة الزمنية لتشغيل البرنامج يجب أن تساوي 90 ( ثلاثة أشهر )

إذا كان المدخل يساوي ( MainBoardSN * 100 ) إذا المدة الزمنية لتشغيل البرنامج يجب أن تساوي 180 ( ستة أشهر )

إذا كان المدخل يساوي ( MainBoardSN * 50 ) إذا المدة الزمنية لتشغيل البرنامج يجب أن تساوي 360 ( سنة واحدة )

وإذا لم تساوي أي من المدرج المدة ستكون 30 ( شهر واحد ) .

ثواني ويكون المشروع جاهز ( سأعتمد على الـ Processor ID ) .

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#17

بصراحة انا مش عارف اقول لحضرتك ايه

ومش عارف اشكرك ازي علي الواجب ده ياغالي

اي شئ انا في الخدمة

تحياتي العطرة لك

#18

معلش علشان لا ازعجك مرة اخري

شرح بسيط منك بعد لما تخلص المشروع من ايديك الحلوة دية

ازاي اعمل السيريال وازي اشغل البرنامج

وبس مش هفتح فمي تاني

ههههه

وتكون شاكرا ولن انسي لك هذا الجميل

شكرا لك

#19

حسناً .

في بادىء الأمر يتم التأكد ومعالجة الخصائص الموجود في الـ My.Settings بعد ذلك ينتقل البرنامج ليتأكد من الـ Registry إذا لم يكن المفتاح منشأ يقوم بكتابته في الـ Registry وإذا كان المفتاح منشأ يتم التأكد من قيمته _

إذا كانت تساوي ( NotRegistered ) يتم استدعاء صندوق الحوار الخاص بالتسجيل .

بالنسبة لتحويل الـ CPU ID إذا كان أحد الاحرف ( كما تعلم جميع ( الحروف والرموز والأرقام ) تعامل على شكل حروف ) فإذا كان إحداها حرفاً بمعنى الكلمة يتم استبدله بالـ Byte المقابل له عن طريق العملية :

Dim TChr As Char = Chr(65) ' كمثال 65 يقابل حرف الـ A

System.Text.Encoding.GetBytes( TChr )

لست ادري ماالذي عليّ شرحه, حسناً لاتقلق, ليس لدي أي مشكلة والحوار من هواياتي .:) اسأل ماتشاء

بالمناسبة الملف المرفق يحوي مشروعان ( واحد كبرنامج أساسي ) و ( واحد أخر كمحلل للـ Serial Number ) الأن ستجد كم سهلة العملية التي كنت أتكلم عنها .

Full_Project.zip

تم تعديل هذه المشاركة بواسطة Bashar Rabat في 9 يناير 2009 في 03:06

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#20

تمت التجربة ياغالي

ولقد عمل البرنامج بشكل رائع

بصراحة انا مش عارف اقولك ايه علي التعب الي انت تعبته معايا ده

هجرب بقي علي البرنامج بتاعي وارد عليك حالا

شكرا لك كثيرا

معلش بقي اخر حاجة كلمتين

انا عايز احدد المدة الي انا عايزها وتكون شاكرا جدااااااااااااااااااااااااا

والمفروض اني هضع الاداة الرائعة بتاعتك علي البرنامج بتاعي

عند نقلها بالكود

يعطيني اخطاء لماذا

شكرا ولن اطلب لك حاجة تاني

تحياتي

تم تعديل هذه المشاركة بواسطة aboua lnaga في 9 يناير 2009 في 03:14

#21

بالنسبة للمدة, على تغيير المعادلة من LoginForm1 :

 

        [color= #b1b100;]If Not PasswordTextBox[color= #339933;].Text [color= #339933;]= String[color= #339933;].[color= #990000;]Empty Then

            Select [color= #b1b100;]Case PasswordTextBox[color= #339933;].Text

                [color= #b1b100;]Case Convert[color= #339933;].ToBase64String[color= #009900;]([color= #990000;]System[color= #339933;].Text[color= #339933;].Encoding[color= #339933;].[color= #000000; font-weight: bold;]Default[color= #339933;].GetBytes[color= #009900;](UsernameTextB
ox[color= #339933;].Text [color= #339933;]* Golden[color= #009900;])[color= #009900;])

                    MsgBox[color= #009900;]([color= #0000ff;]"You have entered the golden key, You can use the application for 36
0 days"[color= #009900;])

                    My[color= #339933;].Settings[color= #339933;].RegKind [color= #339933;]= [color= #cc66cc;]12 [color= #339933;]: DialogResult [color= #339933;]= [color= #cc66cc;]1

                [color= #b1b100;]Case Convert[color= #339933;].ToBase64String[color= #009900;]([color= #990000;]System[color= #339933;].Text[color= #339933;].Encoding[color= #339933;].[color= #000000; font-weight: bold;]Default[color= #339933;].GetBytes[color= #009900;](UsernameTextB
ox[color= #339933;].Text [color= #339933;]* Silver[color= #009900;])[color= #009900;])

                    MsgBox[color= #009900;]([color= #0000ff;]"You have entered the silver key, You can use the application for 18
0 days"[color= #009900;])

                    My[color= #339933;].Settings[color= #339933;].RegKind [color= #339933;]= [color= #cc66cc;]6 [color= #339933;]: DialogResult [color= #339933;]= [color= #cc66cc;]1

                [color= #b1b100;]Case Convert[color= #339933;].ToBase64String[color= #009900;]([color= #990000;]System[color= #339933;].Text[color= #339933;].Encoding[color= #339933;].[color= #000000; font-weight: bold;]Default[color= #339933;].GetBytes[color= #009900;](UsernameTextB
ox[color= #339933;].Text [color= #339933;]* Bronze[color= #009900;])[color= #009900;])

                    MsgBox[color= #009900;]([color= #0000ff;]"You have entered the bronze key, You can use the application for 90
 days"[color= #009900;])

                    My[color= #339933;].Settings[color= #339933;].RegKind [color= #339933;]= [color= #cc66cc;]3 [color= #339933;]: DialogResult [color= #339933;]= [color= #cc66cc;]1

                [color= #b1b100;]Case [color= #b1b100;]Else

                    MsgBox[color= #009900;]([color= #0000ff;]"You have entered an invalid serial number, You can use the applicat
ion for only 30 days"[color= #009900;])

                    My[color= #339933;].Settings[color= #339933;].RegKind [color= #339933;]= [color= #cc66cc;]1

            [color= #990000;]End Select

            My[color= #339933;].Settings[color= #339933;].Save[color= #009900;]([color= #009900;])

لاحظ إعداد الخاصية ( RegKind ) الإسم يدل على نوع التسجيل لكنها تحفظ عدد الأشهر, يمكنك تعديل وإضافة ماتريد, لكن عليك أيضأ تغير المعادلة من مشروع Keygen .

إذا تسألت أين يتم حساب المدة, فهذه العملية موجودة في الـ Form1 من المشروع الرئيسي, في الجملة الشرطية التالية :

If (Days < 0) Or (Days >= (30 * My.Settings.RegKind)) Then

كل ماعليك فعله هو استخدام عدد يعطي قيمة إذا ضرب بضعفه ( مرة, مرتين, ثلاث مرات ) يعطي نتيجة متوقعة, اي لا يحوي كسر ( عدد كسري ) .

بالنسبة للأداة هل تقصد عملية قراءة الـ CPU ID التي تدعى ( GetProcessorID ) ؟

إذا كان هذا ماتقصده, في قمة الكود الحاوي لهذه العملية أضف ( Imports System.Management ) .

إذا قام الـ Visual Basic بتسطير هذا السطر باللون الأخضر, إذاً عليك إضافة هذا المرجع الى المشروع :

انقر بالزر اليميني على اسم مشروعك ومن ثم انقر على Add Reference وابحث عن System.Management وحدده وانقر على ( Ok ) .

تم تعديل هذه المشاركة بواسطة Bashar Rabat في 9 يناير 2009 في 03:28

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#22

كلامك صحيح

لكن الاخطاء التي تظهر لي عند نسخ الكود والاداة الي مشروعي

تظهر كالاتي

هذا الخطأ في الفورم 1 لود

50744433lv3.jpg

وهذا في الفانكشن

72732487fl3.jpg

وهذا في حدث اوك للزر في الفورم لوجن

75452740ga3.jpg

وهذا في حدث الفورم لود في الوجن

65310803tg5.jpg

ما حلهما

منتظرك

#23

عليك إضافة الخصائص الى المشروع :

انقر نقرة مزدوجة على MyProject من مستكشف الحلول ( Solution Explorer ) ومن ثم اختار Settings سيظهر لك تحكم على هيئة DataGridView يحوي الأعمدة التالية :

Name Type Scope Value

عليك كتابة واختيار التالي :

Name-------------------Type-------------------Scope-------------------Value

DaysLeft--------------Integer-----------------User---------------------0

LastDateUse--------Double-----------------User---------------------0

OutOfDate-----------Boolean----------------User---------------------False

RegKind--------------Integer-----------------User---------------------1

تم حل المشكلة ( الأولى, الثالثة والرابعة )

المشكلة الثانية قمت بذكرها في ردي الأخير .

<------------------------------------------------------------------------------>

إذا كان هذا ماتقصده, في قمة الكود الحاوي لهذه العملية أضف ( Imports System.Management ) .

إذا قام الـ Visual BASIC بتسطير هذا السطر باللون الأخضر, إذاً عليك إضافة هذا المرجع الى المشروع :

انقر بالزر اليميني على اسم مشروعك ومن ثم انقر على Add Reference وابحث عن System.Management وحدده وانقر على ( Ok ) .

<------------------------------------------------------------------------------>

تم تعديل هذه المشاركة بواسطة Bashar Rabat في 9 يناير 2009 في 04:02

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#24

كلمة شكر ما تقضيش الي انت عملتله معايا

بصراحة انا مشعارف اقول لك ايه

يعي انت بسم الله ماشاء الله عليك مبرمج فاهم جدا وربنا يعينك علي هذا الفهم

وانا خدت منك نصائح كتير

ومشروعي اشتغل والحمد لله

وان مشكور ليك جدااااااااااااااا جدااااااااااااا جدااااااااااااا

ياغالي

واذا سمحت لي انا قمت بإضافة ايميلك عندي

تحياتي وشكرا علي المساعدة الرائعة دي

#25

لاشكر على واجب ( :) ) .

إذا أردت معرفة أي شيء أخر, لاتتردد في سؤال عنه, صدقني لا أرى أن هنالك شيء أجمل من مساعدة الأخرين :) .

تحياتي لك ولجميع الأخوة الأعضاء, بالنوفيق :D .

تم تعديل هذه المشاركة بواسطة Bashar Rabat في 9 يناير 2009 في 04:29

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…