21-10-23, 11:44 PM
(21-10-23, 07:22 PM)عبدالله الدوسري كتب :
Visual Basic 2010
لا يدعم خاصية ( Interpolated Strings ) وهي علامة الدولار
هذة الميزة ، تسمى ( Interpolated Strings ) ، بالعربي يعني ميزة تسمح للنص أن يكون مجزء على عدة اسطر، وتسمح بكتابة المتغيرات داخل النص بوضع متغيرات داخل قوسين من هذا النوع {}، مثل المتغير {ltr} كتب داخل قوسين ضمن السلسلة النصية
متوفرة فقط في Visual Basic 2015 فما فوق
إذا كنت لا تستطيع إستخدام هذة الخاصية ، استبل الكود التالي : ( الموجود لديك )
كود :Public Shared Function GetVolumeSerial(ByVal ltr As Object) As String
Dim obj2 As New ManagementObject($"win32_logicaldisk.deviceid="{ltr}:"")
obj2.Get()
Return obj2("VolumeSerialNumber").ToString
End Function
بهذا الكود : طريقة 1
كود :Public Shared Function GetVolumeSerial(ByVal ltr As Object) As String
Dim Path As String = "win32_logicaldisk.deviceid="" & ltr & :"""
Dim obj2 As New ManagementObject(Path)
obj2.Get()
Return obj2("VolumeSerialNumber").ToString
End Function
طريقة 2
كود :Public Shared Function GetVolumeSerial(ByVal ltr As Object) As String
Dim obj2 As New ManagementObject(Str("win32_logicaldisk.deviceid="" & ltr & :"""))
obj2.Get()
Return obj2("VolumeSerialNumber").ToString
End Function
ممتاز
تم التقييم +1
(21-10-23, 10:01 PM)AhmedEissa كتب : تمام أخى عبدالله
يبدو أن السبب فعلاً فى عدم التوافق هو استخدامى لـ Visual Basic 2010
لأن كلا الكودين السابقين لم ينجحا على هذا الإصدار ، والثانى بالتحديد أعطى الرسالة
Argument 'Number' cannot be converted to a numeric value
الوحيد الذى توافق هى تعليمة الأخ Ahmed5
Dim obj2 As New ManagementObject(string.format("win32_logicaldisk.deviceid=""{0}:""",ltr))
لكن ما زلت أتمنى أن يقوم أحد الإخوان بالتعديل على الملف الذى رفعته أعلاه
واضح ان الملف المرفوع تم تحويله من #C إلى VB
الرجاء وضع الملف الأصلي بلغة #C
لآن التحويل في الملف المرفق غير صحيح

![[صورة مرفقة: 631004262.png]](https://www10.0zz0.com/2023/10/20/17/631004262.png)