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

كيفية وضع سيريال داخل خطوات التحزبم ؟

بدأه ashkenas في 7 يوليو 2009 · 4 رد · 1,462 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اعمل على تحزيم برنامجي من خلال setup project التابع لفيجوال بيسك 2005 و هو يسير معي على ما يرام و لكن المشكلة انني احاول وضع خطوة Dialog يطلب من المستخدم ادخال سيريال او رقم كود لاكمال عملية التنزيل من خلال tetx dialog لكني لا أعلم كيف من الممكن عمل ذلك .

برجاء المساعدة و جزاكم الله خيرا.

#2

يمكنك عمل ذلك من خلال إضافة Dialog جديد والتعامل معه من خلال Installer Class

بالتوفيق :)

#3

كيف ممكن التعامل معه من خلال Installer Class؟؟ :S

تم تعديل هذه المشاركة بواسطة naji-m في 7 يوليو 2009 في 19:49

#4

يمكنك أيضا حماية برنامجك و دلك بعمل نافدة التحاور مباشرة على برنامجك و تشغلها عند أول تشغيل لبرنامجك بعد التثبيث. بالتأكيد, بالنسبة لمشروع دوت نت, ليست هناك حماية للبرنامج من دون obfuscation للمشروع حيث أن برنامجا ك Reflector يستطيع قراءة و ترجمة أي برنامج دوت نت و تحويله إلى مشروع نسخة طبق الأصل من المشروع الأصلي. و من هنا وجب على كل من يريد و ضع نظام حماية لمشروعه أن يقوم ببحث جيد عن فنون obfuscation لمشاريع دوت نت.

#5

من الممكن عمل حماية بإستخراج سيريال اللوحة الأم وتوليد سيريالات عشوائية إرتباطا لكل لوحة ام ويمكن إستخراج رقم التسلسلي للوحة الام بإستخدام تقنية WMI وهي ترمز إلى Windows Management Instrumentation أي “توجيه إدارة الويندوز”.

وهذا كود لإتخراج الرقم بإستعمال سي شارب لا تنسى إظافة مكتبة System.Management.dll لأن جميع العناصر التي تمكننا من التعامل مع تقنية WMI موجودة في الـ Namespace المسمى بـ System.Management والتي بدورها موجودة في

System.Management.dll الكود في تعليقات للشرح ولا تنسى إظافة كلمة using

مكتبة ال dll مرفقة في المرفقات

static void Main()
{
	Console.WriteLine("Motherboard Serial Number = \n\t{0}",
		GetMotherboardSerialNumber());
}
static string GetMotherboardSerialNumber()
{
	// نقوم بإنشاء العنصر
	// ManagementObjectSearcher
	// وهو الذي سوف يقوم باحتواء جملة الاستعلام وبتنفيذها
	// لاحظ أنه يمكنك استخدام العلامة
	// 
	// للحصول على جميع الأعدمة
	// Properties
	// في الجدول
	// Class
	// الذي يحوي بيانات الماذربورد وهو
	// Win32_BaseBoard
	ManagementObjectSearcher searcher =
		new ManagementObjectSearcher
			("SELECT SerialNumber, Product FROM Win32_BaseBoard");
	// تنفيذ الأمر
	// يحوي العنصر
	// ManagementObjectCollection
	// جميع البيانات المسترجعة من الاستعلام
	// والتي تتمثل في هيئة صفوف
	// Objects
	ManagementObjectCollection information = searcher.Get();
	string serialNumber = string.Empty;
	// المرور على جميع الصفوف
	// لأنها ماذربورد واحدة فسوف يكون هناك صف واحد
	foreach (ManagementObject obj in information)
	{
		// الاستعلام عن العمود
		// SerialNumber
		// إذا لم يحوي بيانات
		// يتم استخدام العمود
		// Product
		// كبديل
		if (obj.Properties["SerialNumber"]
			.Value.ToString().Trim() != string.Empty)
			serialNumber = obj.Properties["SerialNumber"]
				.Value.ToString().Trim();
		else
			serialNumber = obj.Properties["Product"]
				.Value.ToString().Trim();
		// لا توجد فائدة للسطر التالي لأنها ماذربورد واحدة
		break;
	}

	// يفضل استخدام الدالة
	// Dispose
	// لإلغاء العنصر
	// ManagementObjectCollection
	// من الذاكرة
	searcher.Dispose();

	return serialNumber;
}

System.Management.dll.zip

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

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

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

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

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