الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[مخالف - لم يستخدم البحث :]كيفية جلب رقم الهارديسك ووضعه داخل صندوق نص

مغلق
بدأه dot.net2008 في 27 أغسطس 2011 · 8 رد · 763 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

أريد من برنامجي أن يقوم بإعطاء رقم الهارديسك للمستخدم في صندوق نص

لأني سمعت ان رقم الهارديسك لا يمكن أن يتغير حتى وبعد عمل Format للجهاز

وشكراً

#2

وعليكم السلام ورحمة الله وبركاته ...

في الواقع يا عزيزي الرقم التسلسلي ( الظاهري ) للهارددسك يتغير مع الفورمات ... ما تبحث عنه هو الرقم الفيزيائي التسلسلي ، وأيضاً تختلف عملية الحصول على الرقم الفيزيائي باختلاف الـ RAID الخاص بالدرايف وإعداداته ...

على كل حال ، جرب هذا الكود لجلب الرقم الفيزيائي للهارد ، ويجب أن تستدعي System.Management أولاً :

Imports System.Management

ضع TextBox واترك الاسم الافتراضي ثم ضع هذا الكود في حدث تحميل الفورم Form_Load :

        Dim HardDiskDrive As New ManagementObjectSearcher("select * from win32_DiskDrive")
        Dim HardDiskDriveSerial As String
        For Each HardDrive In HardDiskDrive.Get
            HardDiskDriveSerial = HardDrive("SerialNumber")
            TextBox1.Text = HardDiskDriveSerial
        Next

أتمنى لك التوفيق

* ملاحظة : إذا لم ينجح الكود فتأكد من أنك قمت بالدخول إلى النظام كـ Administrator ....

* ملاحظة : قم بإضافة المكتبة Management من Project ===== Add reference تحت مسمى : System.Management .

تم تعديل هذه المشاركة بواسطة عاشق للبرمجة في 27 أغسطس 2011 في 16:16

1

... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

%2525D8%2525A8%2525D8%2525B5%2525D9%252585%2525D8%2525A9%252B%2525D8%2525B9%2525D9%252584%2525D9%252585%252B%2525D9%252588%2525D8%2525B5%2525D8%2525B1%2525D8%2525AE%2525D8%2525A9%252B%2525D8%2525A7%25

#3
عاشق للبرمجة كتب:

وعليكم السلام ورحمة الله وبركاته ...

في الواقع يا عزيزي الرقم التسلسلي ( الظاهري ) للهارددسك يتغير مع الفورمات ... ما تبحث عنه هو الرقم الفيزيائي التسلسلي ، وأيضاً تختلف عملية الحصول على الرقم الفيزيائي باختلاف الـ RAID الخاص بالدرايف وإعداداته ...

على كل حال ، جرب هذا الكود لجلب الرقم الفيزيائي للهارد ، ويجب أن تستدعي System.Management أولاً :

Imports System.Management

ضع TextBox واترك الاسم الافتراضي ثم ضع هذا الكود في حدث تحميل الفورم Form_Load :

        Dim HardDiskDrive As New ManagementObjectSearcher("select * from win32_DiskDrive")
        Dim HardDiskDriveSerial As String
        For Each HardDrive In HardDiskDrive.Get
            HardDiskDriveSerial = HardDrive("SerialNumber")
            TextBox1.Text = HardDiskDriveSerial
        Next

أتمنى لك التوفيق

* ملاحظة : إذا لم ينجح الكود فتأكد من أنك قمت بالدخول إلى النظام كـ Administrator ....

* ملاحظة : قم بإضافة المكتبة Management من Project ===== Add reference تحت مسمى : System.Management .

السلام عليكم

أظن أن هذه الطريقة ستعيد الأرقام التسلسلية لجميع الأقراص (hard disk1,hard disk2, cd drives,...)

و أن علينا اعتماد القراءة الأولى التي يعيدها هذا الكود كالتالي:

Private Function HDD_serial() As String

Dim serial As String = ""

Dim searcher As New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")

For Each wmi_HD As ManagementObject In searcher.Get()

serial = wmi_HD("SerialNumber").ToString()

Exit For

Next

Return serial

End Function

تم تعديل هذه المشاركة بواسطة byte101 في 28 أغسطس 2011 في 07:49

1

لاتـُهيئ كفني ما متّ بعد = لم يزل في أضلعي برقٌ و رعدُ


أنــا اسـلامــي ..أنا عزّته = أنا خيل الله نحو النصــر تعــدو


أنــا تــاريـخـي …ألا تعــرفـه = خـالد ينبض في روحــي و سعدُ


لاتـــغرنـك منــي هدأتـــــي = لا يمــوت الثــأر و لــكن يســتعـدُ


لا يغرنـــك نصــلٌ موغـــلٌ = في عروقي …فـأنا منه أحـّـــدُ


إن ما ضُيع في ساح الوغى = في سوى ساحــاتـها لا يــستردُ


#4

الاخوة الافاضل

كل عام وأنتم بخير

تفضلوا المثال المرفق ربما يفي بالغرض

/index.php?showtopic=215220

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#5

الأخ الفاضل : byte101

أحسنت أخي الكريم ، بالنسبة للكود الذي كتبته أنا فيقوم بجلب الرقم التسلسلي للفوليوم وليس الفيزيائي للهارد :blush:

وتأكدت من ذلك من خلال هذا الكود :

Dim ManagementHDQu As New ManagementClass("win32_LogicalDisk")
    Dim ManagmentHDCollection As ManagementObjectCollection = ManagementHDQu.GetInstances()
    Dim OptGet As String = ""

TextBox1.ScrollBars = ScrollBars.Vertical
        For Each strt As ManagementObject In ManagmentHDCollection
            OptGet += "حرف المحرك : " & Environment.NewLine & Convert.ToString(strt("Name")) & Environment.NewLine
            OptGet += "اسم المحرك: " & Environment.NewLine & Convert.ToString(strt("VolumeName")) & Environment.NewLine
            OptGet += "السيريال نمبر للمحرك :" & Environment.NewLine & Convert.ToString(strt("VolumeSerialNumber")) & Environment.NewLine
            OptGet += "-----------------------"
            OptGet += Environment.NewLine

أما الكود الذي كتبته أنت فهو الأصح بلا شك ... لأن الكلاس PhysicalMedia في مكتبة system.management هو المسئول عن ذلك :)

شكرا لك أخي ...

الأخ محمد حياك الله أخي العزيز وأنت بخير إن شاء الله ...

لم يستنى لي تجربة البرنامج ، سأقوم بتجربته وأوافيك بالأخبار ...

تحية عطرة

تم تعديل هذه المشاركة بواسطة عاشق للبرمجة في 28 أغسطس 2011 في 10:29

... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

%2525D8%2525A8%2525D8%2525B5%2525D9%252585%2525D8%2525A9%252B%2525D8%2525B9%2525D9%252584%2525D9%252585%252B%2525D9%252588%2525D8%2525B5%2525D8%2525B1%2525D8%2525AE%2525D8%2525A9%252B%2525D8%2525A7%25

#6
عاشق للبرمجة كتب:

الأخ الفاضل : byte101

أحسنت أخي الكريم ، بالنسبة للكود الذي كتبته أنا فيقوم بجلب الرقم التسلسلي للفوليوم وليس الفيزيائي للهارد :blush:

وتأكدت من ذلك من خلال هذا الكود :

Dim ManagementHDQu As New ManagementClass("win32_LogicalDisk")
    Dim ManagmentHDCollection As ManagementObjectCollection = ManagementHDQu.GetInstances()
    Dim OptGet As String = ""

TextBox1.ScrollBars = ScrollBars.Vertical
        For Each strt As ManagementObject In ManagmentHDCollection
            OptGet += "حرف المحرك : " & Environment.NewLine & Convert.ToString(strt("Name")) & Environment.NewLine
            OptGet += "اسم المحرك: " & Environment.NewLine & Convert.ToString(strt("VolumeName")) & Environment.NewLine
            OptGet += "السيريال نمبر للمحرك :" & Environment.NewLine & Convert.ToString(strt("VolumeSerialNumber")) & Environment.NewLine
            OptGet += "-----------------------"
            OptGet += Environment.NewLine

أما الكود الذي كتبته أنت فهو الأصح بلا شك ... لأن الكلاس PhysicalMedia في مكتبة system.management هو المسئول عن ذلك :)

شكرا لك أخي ...

الأخ محمد حياك الله أخي العزيز وأنت بخير إن شاء الله ...

لم يستنى لي تجربة البرنامج ، سأقوم بتجربته وأوافيك بالأخبار ...

تحية عطرة

شكرا على تعقيبك أخي الكريم،

صراحة أنا وقعت في نفس الخطأ في البداية ثم تداركت ذلك :happy:

بالإضافة إلى أني علقت على ردك على أنه يعيد أكثر من قيمة و لم أنتبه أنك استخدمت win32_LogicalDisk

رب رمية من غير رامٍ!

لاتـُهيئ كفني ما متّ بعد = لم يزل في أضلعي برقٌ و رعدُ


أنــا اسـلامــي ..أنا عزّته = أنا خيل الله نحو النصــر تعــدو


أنــا تــاريـخـي …ألا تعــرفـه = خـالد ينبض في روحــي و سعدُ


لاتـــغرنـك منــي هدأتـــــي = لا يمــوت الثــأر و لــكن يســتعـدُ


لا يغرنـــك نصــلٌ موغـــلٌ = في عروقي …فـأنا منه أحـّـــدُ


إن ما ضُيع في ساح الوغى = في سوى ساحــاتـها لا يــستردُ


#7

شكرا على ردك أخي الكريم ..

فقط ملحوظة بسيطة ، عند تجربة الكود قام بإعطائي الرقم الفيزيائي بوجود بعض المسافات ، لا أعلم ما هو السبب ، فقمت بتنزيل برنامج ديمو يعرض الرقم الفيزيائي وتأكدت من أن الرقم صحيح كما هو مدون على الهارددسك .. إلا أن المسافات ليست موجودة ....

على كل حال المسافات ليست إشكالية طالما أن الرقم صحيح ...

كود بسيط لمسح المسافات للفائدة :

 TextBox1.Text = TextBox1.Text.Replace(" ", "")
TextBox1.Text = TextBox1.Text.Trim()

شكرا أخي مرة أخرى ...

... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

%2525D8%2525A8%2525D8%2525B5%2525D9%252585%2525D8%2525A9%252B%2525D8%2525B9%2525D9%252584%2525D9%252585%252B%2525D9%252588%2525D8%2525B5%2525D8%2525B1%2525D8%2525AE%2525D8%2525A9%252B%2525D8%2525A7%25

#8

السلام عليكم ،،

ممكن يكون هذا الكود مفيد ليك :



Dim hddsn As New ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_DiskDrive")


HDDSNTextBox.Text = Convert.ToString(hddsn.Get()(0)("SerialNumber"))





#9

الأخ الكريم/الأخت الكريمة

السلام عليكم ورحمة الله وبركاته

مرحباً بكم في منتدى الفريق العربي للبرمجة

تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات، فقرة استخدام البحث قبل السؤال.

قواعد طرح المشاركات

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

.:: Wish to become better and better ::.

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…