تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
لا استطيع الحصول على الرقم التسلسلي للقرص C
#5
جزاك الله كل خير

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

كود :
SELECT * FROM Win32_DiskDrive  WHERE Index = '0'

لن يفيد لان القرص الذي عليه النظام ليس هو القرص الاول والنظام يفهرسه على انه الثاني او الثالث

ولهذا الخيار هو الاستعلام بحرف القرص وليس الفهرس

والحل هنا

كود :
class Program
{
   static void Main(string[] args)
   {
       const string drive = "C:";

       Console.WriteLine("Drive {0}'s Model Number is {1}", drive, GetModelFromDrive(drive));
   }

   public static string GetModelFromDrive(string driveLetter)
   {
       // Must be 2 characters long.
       // Function expects "C:" or "D:" etc...
       if (driveLetter.Length != 2)
           return "";

       try
       {
           using (var partitions = new ManagementObjectSearcher("ASSOCIATORS OF {Win32_LogicalDisk.DeviceID='" + driveLetter +
                                            "'} WHERE ResultClass=Win32_DiskPartition"))
           {
               foreach (var partition in partitions.Get())
               {
                   using ( var drives = new ManagementObjectSearcher("ASSOCIATORS OF {Win32_DiskPartition.DeviceID='" +
                                                        partition["DeviceID"] +
                                                        "'} WHERE ResultClass=Win32_DiskDrive"))
                   {
                       foreach (var drive in drives.Get())
                       {
                           return (string) drive["Model"];
                       }
                   }
               }
           }
       }
       catch
       {
           return "<unknown>";
       }

       // Not Found
       return "<unknown>";
   }
}

ولكنه سي شارب ويحتاج الى تحويل وحولته عن طريق احد المواقع كالتالي:

كود :
Class Program
   Private Shared Sub Main(ByVal args As String())
       Const drive As String = "C: "
       Console.WriteLine("Drive {0}'s Model Number is {1}", drive, GetModelFromDrive(drive))
   End Sub

   Public Shared Function GetModelFromDrive(ByVal driveLetter As String) As String
       If driveLetter.Length <> 2 Then Return ""

       Try

           Using partitions = New ManagementObjectSearcher("ASSOCIATORS OF {Win32_LogicalDisk.DeviceID='" & driveLetter & "'} WHERE ResultClass=Win32_DiskPartition")

               For Each Partition In partitions.[Get]()

                   Using drives = New ManagementObjectSearcher("ASSOCIATORS OF {Win32_DiskPartition.DeviceID='" & Partition("DeviceID") & "'} WHERE ResultClass=Win32_DiskDrive")

                       For Each drive In drives.[Get]()
                           Return CStr(drive("Model"))
                       Next
                   End Using
               Next
           End Using

       Catch
           Return "<unknown>"
       End Try

       Return "<unknown>"
   End Function
End Class


ولكن يوجد خطاء يقول الـ Partition غير معروف
مع العلم مستخدمي سي شارب يقولون انه يعمل
 التحويل ينقص شئ ما
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
RE: لا استطيع الحصول على الرقم التسلسلي للقرص C - بواسطة ابو محمد محمد محمد - 27-04-23, 02:12 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تقريب الأعداد العشرية إلى الرقم الأعلى مباشرة العيدروس 2 372 20-01-25, 12:51 AM
آخر رد: العيدروس
  استفسار هل استطيع جلب بيانات من موقع الى الفروم بالفجول alachk 0 325 02-09-24, 09:15 PM
آخر رد: alachk
  [VB.NET] طريقة عرض الرقم MOHAMMED ALZWI 4 396 30-07-24, 12:44 AM
آخر رد: MOHAMMED ALZWI
  الحصول على اول 3 ارقام Mohamed20 4 2,300 23-05-24, 02:47 PM
آخر رد: Nori Ashour
  ارجو التعديل على الدالة المرفقة - الدالة تعيد الرقم -1 new_programer 4 546 20-03-24, 01:18 PM
آخر رد: تركي الحلواني
  [سؤال] كود اظهار رساله في حال وجود الرقم في اكثر من عمود مبرمج صغير 1 6 957 09-01-24, 01:41 AM
آخر رد: Taha Okla
  خطأ عن مقارنه الرقم التفعيل Ashraf Elafify 2 502 31-12-23, 11:49 PM
آخر رد: Ashraf Elafify
  كود لعدم تكرار الرقم في قاعدة البيانات yossefsaad370 1 691 28-10-23, 10:29 AM
آخر رد: atefkhalf2004
  كود لا يكرر الرقم yossefsaad370 1 432 26-10-23, 09:54 AM
آخر رد: قناص المدينة
  تكرار الرقم القومى salah525 1 436 02-10-23, 10:14 PM
آخر رد: سالم العنزي

التنقل السريع :


يقوم بقرائة الموضوع: