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

طريقة عرض أجهزة الشبكة في الفورم على شكل ايقونات في Vb.net 2005

بدأه محمد أبراهيم في 16 سبتمبر 2008 · 5 رد · 2,208 مشاهدة · في برمجة الشبكات والتطبيقات الموزعة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ما هي طريقة عرض أجهزة الشبكة في الفورم على شكل ايقونات في VB.NET 2005 confused.gifconfused.gifconfused.gifconfused.gifconfused.gifconfused.gifconfused.gif

#2

يمكن من أسبوع تقريباً إلا الآن رأيت هذا السؤال ثلاث مرات بمواضيع مختلفة

طيب إذا لم تعرف الطريقة فلو تم وضعهم لك في ملف خارجي ،يمشي الحال معاك وتقرأ الملف من برنامجك

#3

لا لا انا برمجة Client and Server والأن اريد عندما يعمل ال Client في جهاز الزبون يخرج لي جهازه في الفورم وبعدين انت عارف شو بدي اعمل ححط بعض الخيارات مثل ايقاف التشغيل وانتهاء الوقت هكذا واريد عند تثبيت ال Client في إي جهاز في المقهى يخرج لي ايقونة جهاز كمبيوتر التي احددها انا انا اريد فقط هذا والباقي انا كلو عرفه

وهذا الأمر موجود في جميع برامج أدارة مقاهي الأنترنت

#4

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

بالنسبة لعرض الأيقونات يمكنك استعمال الأداة ListView لهذه المهمة

لو حملت الكلاس الموجودة في المشاركة هذه

حملوا الان class لجلب ip + اسماء الاجهزة من الشبكة

كنت قد استفدت منها كثيرا

باختصار يمكننا الاستفادة منها بالشكل التالي:

بعد ادراج فضاءات الاسماء التي نحتاجها هنا

Imports System.[color= #66cc66;]IO

   Imports System.[color= #66cc66;]Collections.[color= #66cc66;]Specialized

نقوم باقتباس الدالة الموجودة في الكلاس المشار إليها لكن مع تغيير بسيط جدا

 

  [color= #800000;]Public [color= #800000;]Function GetNames[color= #66cc66;]([color= #66cc66;]) [color= #800000;]As StringCollection

          [color= #800000;]Dim _startInfo [color= #800000;]As ProcessStartInfo = [color= #800000;]New ProcessStartInfo[color= #66cc66;]([color= #ff0000;]"net", [color= #ff0000;]"view"[color= #66cc66;])

          _startInfo.[color= #66cc66;]CreateNoWindow = [color= #800000;]True

          _startInfo.[color= #66cc66;]UseShellExecute = [color= #800000;]False

          _startInfo.[color= #66cc66;]RedirectStandardOutput = [color= #800000;]True

          [color= #800000;]Dim _process [color= #800000;]As Process = Process.[color= #66cc66;]Start[color= #66cc66;](_startInfo[color= #66cc66;])

          [color= #800000;]Dim _reader [color= #800000;]As StreamReader = _process.[color= #66cc66;]StandardOutput

          [color= #800000;]Dim _machineNames [color= #800000;]As StringCollection = getMachineNameFromProcessOutput[color= #66cc66;](_reader.[color= #66cc66;]ReadT
oEnd[color= #66cc66;]([color= #66cc66;])[color= #66cc66;])

          [color= #800000;]Return _machineNames

      [color= #800000;]End [color= #800000;]Function

      [color= #800000;]Public [color= #800000;]Function getMachineNameFromProcessOutput[color= #66cc66;](ByVal processOutput [color= #800000;]As [color= #800000;]String[color= #66cc66;]) [color= #800000;]As StringC
ollection

          [color= #800000;]Dim _AllMachine [color= #800000;]As [color= #800000;]String = processOutput.[color= #66cc66;]Substring[color= #66cc66;](processOutput.[color= #66cc66;]IndexOf[color= #66cc66;]([color= #ff0000;]""[color= #66cc66;])[color= #66cc66;])

          [color= #800000;]Dim _machine [color= #800000;]As StringCollection = [color= #800000;]New StringCollection[color= #66cc66;]([color= #66cc66;])

          [color= #800000;]Do [color= #800000;]While _AllMachine.[color= #66cc66;]IndexOf[color= #66cc66;]([color= #ff0000;]""[color= #66cc66;]) <> [color= #cc66cc;]-1

              _machine.[color= #66cc66;]Add[color= #66cc66;](_AllMachine.[color= #66cc66;]Substring[color= #66cc66;](_AllMachine.[color= #66cc66;]IndexOf[color= #66cc66;]([color= #ff0000;]""[color= #66cc66;]), _AllMachine.[color= #66cc66;]IndexOf[color= #66cc66;](
[color= #ff0000;]" ", _AllMachine.[color= #66cc66;]IndexOf[color= #66cc66;]([color= #ff0000;]""[color= #66cc66;])[color= #66cc66;]) - _AllMachine.[color= #66cc66;]IndexOf[color= #66cc66;]([color= #ff0000;]""[color= #66cc66;])[color= #66cc66;]).[color= #66cc66;]Replace[color= #66cc66;]([color= #ff0000;]"", [color= #800000;]String.[color= #66cc66;]Empty[color= #66cc66;])[color= #66cc66;])

              _AllMachine = _AllMachine.[color= #66cc66;]Substring[color= #66cc66;](_AllMachine.[color= #66cc66;]IndexOf[color= #66cc66;]([color= #ff0000;]"", _AllMachine.[color= #66cc66;]IndexOf[color= #66cc66;]([color= #ff0000;]"
"[color= #66cc66;]) + [color= #cc66cc;]2[color= #66cc66;])[color= #66cc66;])

          [color= #800000;]Loop

          [color= #800000;]Return _machine

  [color= #800000;]End [color= #800000;]Function

بعدها نقوم باضافة imageList و ListView إلى المشروع

نضيف ايقونة أو صورة داخل الimageList

بعدها نحدد خاصية LargeImageList للأداة ListView باختيار الأداة imagelist الموجودة في المشروع

post-23361-1222012618_thumb.jpg

ثم نكتب الكود هذا من أجل عرض الأجهزة على الليست

 

  [color= #800000;]Dim machine [color= #800000;]As [color= #800000;]String

  [color= #800000;]Dim machineNames [color= #800000;]As StringCollection = GetNames[color= #66cc66;]([color= #66cc66;])

  [color= #800000;]For Each machine In machineNames

     ListView1.[color= #66cc66;]Items.[color= #66cc66;]Add[color= #66cc66;](machine, [color= #cc66cc;]0[color= #66cc66;])

  [color= #800000;]Next

المشروع المرفق بالنسخة 2008 لكن نفس الكود يعمل على ال2005

ListComputer.zip

بالتوفيق للجميع

#5

اولاً شكراً لك على المساعدة لكن هناك مشكلة اضفت كلاس جديد وكل شي ماشي تمام ما في اي خطئ لكن عندما وضعت

هذا الكود في زر الأمر في الفورم

Dim machine As String
 Dim machineNames As StringCollection = GetNames()
 For Each machine In machineNames
 ListView1.Items.Add(machine, 0)

خرج لي هذا الخطئ

Error	1	Name 'GetNames' is not declared.	 C:\Users\Documents\Visual Studio  2005\Projects\WindowsApplication1\Form4.vb	245	40	 WindowsApplication1
#6

اذا وضعت الكود داخل كلاس فلكي تستعمله فيجب عليك انشاء نسخة من الكلاس

[color= #800000;]Dim machinesClass [color= #800000;]As [color= #800000;]New Class1

ثم تستدعي الدالة التي ترجع لك قائمة الأجهزة داخل الشبكة

[color= #800000;]Dim machineNames [color= #800000;]As StringCollection = machinesClass.[color= #66cc66;]GetNames[color= #66cc66;]([color= #66cc66;])

انا في الكود الذي أرفقته في المثال لم أنشئ كلاس والدالة كانت داخل كود الفورم

لذلك كان الوصول إليها مباشرة

تم تعديل هذه المشاركة بواسطة DreamNet في 22 سبتمبر 2008 في 19:41

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

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

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

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

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