كيف اجعل رقم السى دي الليزى (القرص) الذى وضعه الصانع للسى دى
يظهر فى التكست
وشكرا لكم
كيف اجعل رقم السى دي الليزى (القرص) الذى وضعه الصانع للسى دى
يظهر فى التكست
وشكرا لكم
رُب ( وامعتصماه ) إنطلقت *** ملْء أفـواه الصبايا اليُتـم
لامـسـت أسْـماعـهـم لاكـنهـا *** لمْ تلامس نخْوة المعتصم
السلام عليكم ورحمة الله وبركاته
يمكن ذلك بكل بساطة من خلال دوال API
الدالتين :
GetDriveType
GetVolumeInformation
نضع أولا إعلان هاتين الدالتين فى موديول هكذا ..
Public Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long Public Declare Function GetVolumeInformation 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 ثم انشاء وظيفة صغيرة لترجع لنا سيريال الدرايف المعطى لها كالتالى : Public Function GetSerialNumber(strDrive As String) As Long If Len(strDrive) = 1 Then strDrive = strDrive & ":\" If Len(strDrive) = 2 And Right$(strDrive, 1) = ":" Then strDrive = strDrive & "\" If Len(strDrive) = 3 Then Dim SerialNum As Long Dim Res As Long Dim Temp1 As String Dim temp2 As String Temp1 = String$(255, Chr$(0)) temp2 = String$(255, Chr$(0)) Res = GetVolumeInformation(strDrive, Temp1, Len(Temp1), SerialNum, 0, 0, temp2, Len(temp2)) GetSerialNumber = SerialNum End If End Function ثم فى حدث تحميل الفورم نعمل تشك على كل الدريفز الموجودة , ثم نختار منهم سواقة الأقراص ونأتى بالسيريال لها فقط Private Sub Form_Load() Dim i As Integer Dim sCD As String For i = 65 To 90 If GetDriveType(Chr(i) & ":\") = 5 Then sCD = Chr(i): Exit For Next Text1.Text = Val(GetSerialNumber(sCD) * -1) End Sub ملحوظة هامة : لو أن السيريال فى مربع النص =0 إذن إما انه لاتوجد اسطوانة فى الجهاز أو أن الجهاز غير مستعد للقراءة وارجو أن يكون الكود سهل ومفهوم.
لآ إله إلا الله محمد رسول الله
جزاك الله الف خير اخ Siner
وزادنا من علمة
تحياتى لك
رُب ( وامعتصماه ) إنطلقت *** ملْء أفـواه الصبايا اليُتـم
لامـسـت أسْـماعـهـم لاكـنهـا *** لمْ تلامس نخْوة المعتصم
السلام عليكم
ارجوا منكم المشاركه للوصل للحل
جربت كود الاخ Siner وكل شئ تمام برمجت الفورم فى حدث الـ Load على ان يفحص رقم القرص الليزري
فإن وجده مطابق يشتغل الفورم ويحمل
لكن شئ غريب يحدث !!!
عند عمل نسخ للبرنامج فى السي دي وبعد مايخلص النسخ
تظهر رساله البرنامج إلى مسويه ان كود السي دي غير مطابق للكود ( إن كود السي دي بيتغير كل مره بنعمل فيها نسخ ملفات للسي دي )
فهل من حل ؟
تم تعديل هذه المشاركة بواسطة Yemen VB6 في 24 أغسطس 2007 في 15:44
رُب ( وامعتصماه ) إنطلقت *** ملْء أفـواه الصبايا اليُتـم
لامـسـت أسْـماعـهـم لاكـنهـا *** لمْ تلامس نخْوة المعتصم
اقتباستظهر رساله البرنامج إلى مسويه ان كود السي دي غير مطابق للكود ( إن كود السي دي بيتغير كل مره بنعمل فيها نسخ ملفات للسي دي )
لأنه متغير من أسطوانة لأخرى.
أنسخ على الأسطوانة الفارعة اى ملف و ليكن ملف نصى فارغ و لا تقفل الأسطوانة ( يعنى تسمح لها بأن ينسخ عليها من جديد ).
أستخدم الكود السابق لمعرفة رقم الأسطوانة.
ضعه بالمشروع و أنشئ EXE يكون به الرقم و أكمل نسخ الأسطوانة.
لكن جربها الأول مع أسطوانة واحدة أن نفعت فكرر العملية مع كل أسطوانة.
إقرأ معى:
----
المثقفون العرب .. المزورون العرب: تأبين محمود درويش نموذجا
ماذا خسر العالم بانحطاط المسلمين ؟!! للعلامه: أبو الحسن الندوى (كتاب هام لكل مسلم).
المنهجية ومقدمات في الطلب (لطلاب العلم الشرعى)
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…