hanymoaty قام بنشر أبريل 19, 2014 قام بنشر أبريل 19, 2014 السادة الأفاضل الأستاذ الفاضل ،، تحاتي قمت بإستخراج رقم الهارد في الخلية A1 عن طريق الكود و المعادبة التالية Function GetPhysicalSerial() As Variant Dim obj As ObjectDim WMI As ObjectDim SNList() As String, i As Long, Count As LongSet WMI = GetObject("WinMgmts:")For Each obj In WMI.InstancesOf("Win32_PhysicalMedia")If obj.SerialNumber <> "" Then Count = Count + 1NextReDim SNList(1 To Count, 1 To 1)i = 1For Each obj In WMI.InstancesOf("Win32_PhysicalMedia")SNList(i, 1) = obj.SerialNumberi = i + 1If i > Count Then Exit ForNextGetPhysicalSerial = SNListEnd Function ووضع المعادلة الأتية في الخلية A1 =GetPhysicalSerial() وبعد ذلك وضعت الكود التالي لربط رقم الهارد بفتح الملف Private Const A As String = "A12533225" Private Const B As String = "B15223662" Private Const C As String = "TOSHIBA MK6476GSX" Private Sub Workbook_Open() Dim s As String With GetObject("winmgmts:\\.\root\CIMV2") For Each itm In .ExecQuery("SELECT * FROM Win32_DiskDrive", , 48) s = s & itm.Model Next itm End With If s = A Or s = B Or s = C Then MsgBox "تم مطابقة الهارد بنجاح ", vbInformation, "تفضل بالدخول" Else MsgBox "هذا البرنامج يعمل على أجهزة معينه فقط", vbInformation, "سيتم إغلاق البرنامج" With ActiveWorkbook .Close .Saved = True End With Exit Sub End If End Sub لكن في كل مره تظهر رسالة ان البرنامج يعمل على اجهزة معينة و معنى ذلك انني افتقد ربط هذا الكود بقراءة رقم الهارد الموجود في الخلية A1 علما بإن الأكواد و المعادلات هى من المشاركة الموجودة من السادة الأفاضل على اللينك الأتي http://www.officena.net/ib/index.php?showtopic=43800 ارجوكم الحل بإذن الله 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.