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






طريقة عرض أجهزة الشبكة في الفورم على شكل ايقونات في Vb.net 2005
يمكن من أسبوع تقريباً إلا الآن رأيت هذا السؤال ثلاث مرات بمواضيع مختلفة
طيب إذا لم تعرف الطريقة فلو تم وضعهم لك في ملف خارجي ،يمشي الحال معاك وتقرأ الملف من برنامجك
لا لا انا برمجة Client and Server والأن اريد عندما يعمل ال Client في جهاز الزبون يخرج لي جهازه في الفورم وبعدين انت عارف شو بدي اعمل ححط بعض الخيارات مثل ايقاف التشغيل وانتهاء الوقت هكذا واريد عند تثبيت ال Client في إي جهاز في المقهى يخرج لي ايقونة جهاز كمبيوتر التي احددها انا انا اريد فقط هذا والباقي انا كلو عرفه
وهذا الأمر موجود في جميع برامج أدارة مقاهي الأنترنت
السلام عليكم ورحمة الله وبركاته
بالنسبة لعرض الأيقونات يمكنك استعمال الأداة 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 الموجودة في المشروع
ثم نكتب الكود هذا من أجل عرض الأجهزة على الليست
[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
بالتوفيق للجميع
اولاً شكراً لك على المساعدة لكن هناك مشكلة اضفت كلاس جديد وكل شي ماشي تمام ما في اي خطئ لكن عندما وضعت
هذا الكود في زر الأمر في الفورم
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
اذا وضعت الكود داخل كلاس فلكي تستعمله فيجب عليك انشاء نسخة من الكلاس
[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

