27-04-23, 02:12 AM
(آخر تعديل لهذه المشاركة : 27-04-23, 02:13 AM {2} بواسطة ابو محمد محمد محمد.)
جزاك الله كل خير
جربتها من قبل ولا تفلح المشكلة تحدث عندما تكون هناك العديد من الاقراص بالكمبيوتر ويكون القرص C الذي عليه النظام ليس هو الاول في التسجيل
فمثلا هذا الاستعلام
لن يفيد لان القرص الذي عليه النظام ليس هو القرص الاول والنظام يفهرسه على انه الثاني او الثالث
ولهذا الخيار هو الاستعلام بحرف القرص وليس الفهرس
والحل هنا
ولكنه سي شارب ويحتاج الى تحويل وحولته عن طريق احد المواقع كالتالي:
ولكن يوجد خطاء يقول الـ Partition غير معروف
مع العلم مستخدمي سي شارب يقولون انه يعمل
التحويل ينقص شئ ما
جربتها من قبل ولا تفلح المشكلة تحدث عندما تكون هناك العديد من الاقراص بالكمبيوتر ويكون القرص 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 غير معروف
مع العلم مستخدمي سي شارب يقولون انه يعمل
التحويل ينقص شئ ما
