المشاركات : 85
المواضيع 54
الإنتساب : Nov 2012
السمعة :
0
الشكر: 98
تم شكره 39 مرات في 28 مشاركات
26-10-18, 12:13 PM
(آخر تعديل لهذه المشاركة : 26-10-18, 12:14 PM {2} بواسطة dr.mostashar.)
(22-02-16, 01:51 PM)السيد الغالي كتب : (22-02-16, 09:43 AM)السيد الغالي كتب : بعد اذن الاستاذ احمد عبد العليم وفقه الله
ارى ان تتم العملية بالطريقة التالية :
يتم اولا تحديد رقم المعالج ويكون ذلك تلقائيا اي عند تحميل الفورم ويقارن في حقل بجدول بقاعدة البيانات فاذا كان هذا الحقل فارغا وهو الاستخدام للمرة الاولى يتم خزن هذا الرقم في قاعدة البيانات فاذا تم فتح المشروع مرة اخرى سيقارن رقم المعالج مع ذلك الحقل في قاعدة البيانات فان كان متوافقا معه يفتح المشروع بشكل اعتيادي وان كان خلاف ذلك يضهر رسالة تفيد بعدم التطابق وهو ما يحصل عند نقل البرنامج الى جهاز اخر باعتبار ان رقم المعالج مختلف من جهاز الى اخر . ارجو ان تكون هذه الفكرة واضحة . وساقوم ان شاء الله بعمل مشروع بسيط لعمل ذلك .
الفكرة جميلة في حال تم نقل البرنامج وقاعدة البيانات من نفس الجهاز الذي تم تثبيت البرنامج فيه أول مره , لأن رقم المعالج الخاص بالجهاز سيكون مخزن بقاعدة البيانات
لكن السؤال , لو تم بيع البرنامج كحزمة تثبيت , سيكون البرنامج قابل للتثبيت على كل جهاز , لكون الحقل الخاص برقم المعالج بقاعدة البيانات فارغ افتراضيا , وسيعتبر أن تثبيته على أي جهاز مسموح
المشاركات : 459
المواضيع 3
الإنتساب : Jan 2014
السمعة :
70
الشكر: 4548
تم شكره 3084 مرات في 332 مشاركات
السلام عليكم
نعم استاذي الكريم . يتم التثبيت ولكن لا يعمل !
تحيــــــــــــــــــــــــــــاتي لكـــــــــــــــــــم
المشاركات : 3,815
المواضيع 36
الإنتساب : Mar 2014
السمعة :
724
الشكر: 7238
تم شكره 6709 مرات في 3265 مشاركات
(26-10-18, 12:13 PM)dr.mostashar كتب : الفكرة جميلة في حال تم نقل البرنامج وقاعدة البيانات من نفس الجهاز الذي تم تثبيت البرنامج فيه أول مره , لأن رقم المعالج الخاص بالجهاز سيكون مخزن بقاعدة البيانات
لكن السؤال , لو تم بيع البرنامج كحزمة تثبيت , سيكون البرنامج قابل للتثبيت على كل جهاز , لكون الحقل الخاص برقم المعالج بقاعدة البيانات فارغ افتراضيا , وسيعتبر أن تثبيته على أي جهاز مسموح
بخصوص هذا يمكن معالجتها من خلال
عند فتح البرنامج بعد التثبيت
يتطلب كا تفعيل البرنامج واللى هيكون دور على صاحب البرنامج
التدخل من خلال teamviewer أو ارسال تواصل مع العميل حتى اتمام تسليمه كود التفعيل
وعند ادخاله يتم تعبئة الجدول بالكود المطلوب وهو كود المعالج لاضافته بقاعدة البيانات
تحياتى لك
وتمنياتى لك التوفيق
المشاركات : 85
المواضيع 54
الإنتساب : Nov 2012
السمعة :
0
الشكر: 98
تم شكره 39 مرات في 28 مشاركات
(30-10-18, 04:55 AM)elgokr كتب : (26-10-18, 12:13 PM)dr.mostashar كتب : الفكرة جميلة في حال تم نقل البرنامج وقاعدة البيانات من نفس الجهاز الذي تم تثبيت البرنامج فيه أول مره , لأن رقم المعالج الخاص بالجهاز سيكون مخزن بقاعدة البيانات
لكن السؤال , لو تم بيع البرنامج كحزمة تثبيت , سيكون البرنامج قابل للتثبيت على كل جهاز , لكون الحقل الخاص برقم المعالج بقاعدة البيانات فارغ افتراضيا , وسيعتبر أن تثبيته على أي جهاز مسموح
بخصوص هذا يمكن معالجتها من خلال
عند فتح البرنامج بعد التثبيت
يتطلب كا تفعيل البرنامج واللى هيكون دور على صاحب البرنامج
التدخل من خلال teamviewer أو ارسال تواصل مع العميل حتى اتمام تسليمه كود التفعيل
وعند ادخاله يتم تعبئة الجدول بالكود المطلوب وهو كود المعالج لاضافته بقاعدة البيانات
تحياتى لك
وتمنياتى لك التوفيق
أشكرك على الرد , لكن إن تم عمل فورمات لنظام التشغيل وإعادة تثبيت البرنامج مره آخرى ستفقد قاعدة البيانات كود المعالج وسيكون قابل للتثبيت والعمل مره آخرى على نفس الجهاز دون مشاكل , مازلت أرى أن رقم المعالج ليس له أي دور في حماية البرنامج إطلاقا أو أني لم أفهم دور رقم المعالج إلى الآن.
لكني أأيدك على أن يقوم صاحب البرنامج بارسال كود تفعيل مؤقت (صالح لمدة يوم مثلاً حسب خوارزمية رياضية معينة) يقوم من خلاله المستخدم بتفعيل البرنامج بهذه المدة , وإلا يتم طلب الرقم مره آخرى بعد اثبات شراء البرنامج
المشاركات : 3
المواضيع 2
الإنتساب : Mar 2021
السمعة :
0
الشكر: 1
تم شكره 0 مرات في 0 مشاركات
(22-02-16, 09:12 PM)السيد الغالي كتب : الاخت layan2000
الاخ عبد العزيز
السلام علكم
ماذا عساني ان اقول بحقكم على تلك الكلمات الرائعة التي اخذت مأخذها في وجداني . فشكرا لكما .
واسمحوا لي اخوتي الاعزاء ان اقدم ما كتبتموه بحقي متواضعا وعلى طبق من ذهب الى زميلاي وصديقاي العزيزين الاستاذ احمد منصور والاستاذ احمد عبد العليم لجهودهم المتواصله في خدمة هذا الصرح المبارك .
اما بخصوص تسائل الاخت layan2000
وهي لو قمت بالتسجيل على الجهاز رقم 1 وبعد التفعيل وعمل البرنامج قمت بنسخ الرقم الموجود بقاعدة البيانات ولصقة في الجهاز رقم 2 في قاعدة البيانات وتشغيل البرنامج
هل سيعمل او يطلب التفعيل ؟؟
الجواب نعم سيطلب منك التفعيل لان رقم المعالج يختلف بين الجهازين وان الرقم الموجود في قاعدة بيانات الجهاز رقم 1 هو رقم المعالج الخاص به
السلام عليكم اخوانى الكرام
هل من الممكن ان اجد شرح لهذة الاكواد بلغة سى شارب c# جزاكم الله خيرا
المشاركات : 124
المواضيع 50
الإنتساب : Jan 2016
السمعة :
3
الشكر: 106
تم شكره 61 مرات في 44 مشاركات
(26-03-21, 07:38 AM)omar5 كتب : (22-02-16, 09:12 PM)السيد الغالي كتب : الاخت layan2000
الاخ عبد العزيز
السلام علكم
ماذا عساني ان اقول بحقكم على تلك الكلمات الرائعة التي اخذت مأخذها في وجداني . فشكرا لكما .
واسمحوا لي اخوتي الاعزاء ان اقدم ما كتبتموه بحقي متواضعا وعلى طبق من ذهب الى زميلاي وصديقاي العزيزين الاستاذ احمد منصور والاستاذ احمد عبد العليم لجهودهم المتواصله في خدمة هذا الصرح المبارك .
اما بخصوص تسائل الاخت layan2000
وهي لو قمت بالتسجيل على الجهاز رقم 1 وبعد التفعيل وعمل البرنامج قمت بنسخ الرقم الموجود بقاعدة البيانات ولصقة في الجهاز رقم 2 في قاعدة البيانات وتشغيل البرنامج
هل سيعمل او يطلب التفعيل ؟؟
الجواب نعم سيطلب منك التفعيل لان رقم المعالج يختلف بين الجهازين وان الرقم الموجود في قاعدة بيانات الجهاز رقم 1 هو رقم المعالج الخاص به
السلام عليكم اخوانى الكرام
هل من الممكن ان اجد شرح لهذة الاكواد بلغة سى شارب c# جزاكم الله خيرا
اخواني افضل طريقة للحماية شرحها المهندس عثمان خورشيد في فيديو خاص على قناته في اليوتوب
استفيدو منها
المشاركات : 100
المواضيع 23
الإنتساب : Apr 2017
السمعة :
10
الشكر: 0
تم شكره 111 مرات في 63 مشاركات
كود :
Option Explicit
Private Declare Function GetVolumeInformationA Lib "kernel32" _
Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, _
ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, _
lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _
lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, _
ByVal nFileSystemNameSize As Long) As Long
Private Declare Function GetProcessorInfo Lib "kernel32" _
Alias "GetSystemInfo" (lpSystemInfo As SYSTEM_INFO) As Long
Private Type SYSTEM_INFO
dwOemID As Long
dwPageSize As Long
lpMinimumApplicationAddress As Long
lpMaximumApplicationAddress As Long
dwActiveProcessorMask As Long
dwNumberOfProcessors As Long
dwProcessorType As Long
dwAllocationGranularity As Long
dwReserved As Long
End Type
Private Sub Form_Load()
Dim processorID As String
processorID = GetProcessorID()
MsgBox "Processor ID: " & processorID
End Sub
Private Function GetProcessorID() As String
Dim sysInfo As SYSTEM_INFO
Dim serialNum As Long
Dim serialNumStr As String
Dim volName As String
Dim fileSysName As String
Dim maxCompLen As Long
Dim fileSysFlags As Long
GetProcessorInfo sysInfo
GetVolumeInformationA "C:\", volName, 255, serialNum, maxCompLen, _
fileSysFlags, fileSysName, 255
serialNumStr = Right("00000000" & Hex$(serialNum), 8)
GetProcessorID = Mid(serialNumStr, 7, 2) & Mid(serialNumStr, 5, 2) & _
Mid(serialNumStr, 3, 2) & Mid(serialNumStr, 1, 2)
End Function
|