منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : ما الخطأ فى الـ Functions المستخدم فى vb.net 2010
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم

إستخدمت  2     Function   فى تطبيق على فيجوال بيسك 2010
لكن ظهر به تلك العلامات الدالة على وجود أخطاء



ما المكتبات التى يجب إضافتها لهذا التطبيق ، وما احتاج إليه من Imports

PHP كود :
       Friend Shared Function GetProcessorId() As String
            Dim str2 
As String String.Empty
 
           Dim searcher As New ManagementObjectSearcher(New SelectQuery("Win32_processor"))
 
           Dim obj2 As ManagementObject
            For Each obj2 In searcher
.Get
                str2 
obj2("processorId").ToString
            Next
            Return str2
        End 
Function

 
       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 
وعليكم السلام ورحمة الله وبركاته

- في البداية عليك اضافة المكتبة من الـ المراجع (Project >> Add Reference)
من قسم الـ (Assemblies) قم بإَافة المرجع (System.Management)

- ثم قإم باستيراد المرجع (System.Management).

وسلامتك..
أشكرك جداً على اهتمامك وردك

عملت كما أشرت واختفت مشاكل الـ Function الأول

وأريد مساعدتك للتغلب على مشاكل الـ Function الثانى


(20-10-23, 09:34 PM)AhmedEissa كتب : [ -> ]
أشكرك جداً على اهتمامك وردك

عملت كما أشرت واختفت مشاكل الـ Function الأول

وأريد مساعدتك للتغلب على مشاكل الـ Function الثانى



PHP كود :
Dim obj2 As New ManagementObject(string.format("win32_logicaldisk.deviceid=""{0}:""",ltr)) 
مع مزيد شكرى وتقديرى

رجاء التعديل على الملف بما يلزم وإعادة رفعه ليعمل بدون أخطاء

https://www.mediafire.com/file/1soum6oj5...d.rar/file
جرب المثال ربما يكون المقصود
(21-10-23, 01:03 PM)bidaya كتب : [ -> ]
جرب المثال ربما يكون المقصود

شكراً لك ،
للأسف أخى الفاضل
ليس هو
أرغب فقط فى تعديل الملف الخاص بى لإصلاح رسالة الخطأ التى تظهر


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
تمام أخى عبدالله
يبدو أن السبب فعلاً فى عدم التوافق هو استخدامى لـ 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))

لكن ما زلت أتمنى أن يقوم أحد الإخوان بالتعديل على الملف الذى رفعته أعلاه
(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
لآن التحويل في الملف المرفق غير صحيح