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

الجهاز الاخر على الشبكة مقفل

مغلق
بدأه 1 من الناس في 14 مارس 2007 · 6 رد · 845 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

تحياتي للجميع

لقد استطعة من خلال هذا المنتدى الجميل ومن دروسة القيمة ان اقوم بعمل نسخ احتياطي لقاعدة البيانات بحيث يقوم البرنامج بنسخ قاعدة البيانات من جهازي ثم عمل مجلد باسم نفس تاريخ اليوم على جهاز اخر يعمل على نفس الشبكة ويضع نسخة من قاعدة البيانات فية .

المشكلة

هي تكمن في كون الجهاز الاخر في وضع ايقاف التشغيل .. ما ابحث عنه هو الكود الخاص بالتحقق من ان الجهاز الاخر في وضع التشغيل ويمكن الاتصال به والا يتجاوز الامر بدون رسائل خطا وتعطل البرنامج

الشكر للجميع

واتمنا الرد السريع

#2

الأخ الفاضل ...

VBPing.zip

من الواضح من سؤالك أن الجهازين متصلين بشبكة، وأثناء عملهم يمكنهم تبادل المعلومات، ولو أفترضنا أنه يتم الاتصال بينهم من خلال بروتوكول TCP/IP وبالتالى لكل منهم IP Address خاص به.

يمكنك إذا استخدام أحد خدمات الشبكة للتحقق من أن الجهاز يعمل أم لا، عند طريق محاولة الاتصال على خدمة أو Port تكون متأكد أنه مفتوح ويعمل، أو بطريقة بسيطة من خلال خدمة PING وتعرف أحياناً بأسم (ICMP echo-request / echo-reply)، وهى أحد خدمات بروتوكول TCP/IP ، وتقوم هذه الخدمة بإرسال رسالة (Packet) - مثلاً تحتوى كلمة hello - للعنوان IP Address فإذا كان الجهاز يعمل ومظبوط على الشبكة يقوم بإرجاع الرسالة للكمبيوتر الذى ارسلها، والحقيقة لهذه الخدمة عدة أستخدامات منها قياس زمن لاسال والاستقبال، عدد النقاط (غالباً روتر والنقاط تعرف بـ Hops) التى مرت عليها الرسالة للوصول للهدف، ... الخ، مرفق مثال لتوضيح أستخدام Ping VBPing.zip، ولمزيد من التفاصيل راجع: RFC 1574

كذلك إذا أكتشفت ن الجهاز مغلق فيمكنك تشغيله من جهاز أخر (داخل الشبكة LAN) من خلال خاصية Woke-On-LAN، وبعد الإنتهاء من عملية النسخ الإحتياطى يمكنك إغلاقة (Shutdown) راجع المثالين: مطلوب كود لاغلاق واعادة تشغيل win XP يعمل على فجوال بيسك 6 ويكون مجرب و إغلاق وإعادة تشغيل الجهاز

ملحوظة: لاتنسى ضبط الـ Firewall كى يسمح بأستخدام ICMP ومن خدماتها Ping

لمزيد الأستخدام لخدمة Ping من VB راجع: Microsoft Knowledge Base Q300197: How to ping an IP address with Visual Basic by using ICMP

شكراً

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#3

اخي الكريم كل الشكر والتقدير لك

سوف اقوم بتوضيح ما اود الوصول الية

اريد من البرنامج ان يقوم يوميا بإنشاء مجلد يحمل نفس تاريخ اليوم ويضع قاعدة البيانات به ولمدة شهر وبعد انقضاء الشهر يقوم البرنامج بحذف المجلد الاول واستبدالة بمجلد اخر يحمل تاريخ اليوم الحالي ...... وهكذا اي لا يزيد عدد المجلدات عن ثلاثين مجلد

قمت بكتابة هذا الكود في بداية تشغيل البرنامج اي قبل ان يتصل البرنامج بقاعدة البيانات والتي هي موجوده اصلا على نفس الجهاز لكي يتم نسخها على جهاز اخر قبل البدء في استخدام البرنامج ولكن المشكلة وكما قلت لك في السابق حين يريد البرنامج تنفيذ الكود والجهاز الاخر في وضع ايقاف التشغيل او كابل الشبكة غير موصول

d = Format(Date, "dd") & "_" & Format(Date, "m") & "_" & Format(Date, "yyyy")

اخذت التاريخ الحالي نسقت الاسم بطريقة تقبل التسمية للمجلد

past_d = Format(Date, "dd") & "_" & Format(Date, "m") - 1 & "_" & Format(Date, "yyyy")

نفس التاريخ الحالي بس الشهر الماضي

Y= "\\PC1\packup\" & past_d

مسار المجلد الذي انشئ الشهر الماضي بنفس اليوم

If Fsys.FolderExists(Y) = True Then

Fsys.DeleteFolder Y

'End If

اذا وجدت المجلد احذفه

x = "\\PC1\packup\" & d

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

If Fsys.FolderExists(x) = False Then

Fsys.CreateFolder "\\PC1\packup\" & d

FileCopy App.Path & "\test1.mdb", x & "\test1.mdb"

اذا لم تجد المجلد في الجهاز الاخر قم بإنشاء مجلد يحمل نفس التاريخ ضع قاعدة البيانات به

End If

اشكرك بعنف

#4
اقتباس
المشكلة

هي تكمن في كون الجهاز الاخر في وضع ايقاف التشغيل .. ما ابحث عنه هو الكود الخاص بالتحقق من ان الجهاز الاخر في وضع التشغيل ويمكن الاتصال به والا يتجاوز الامر بدون رسائل خطا وتعطل البرنامج

أنا فهمت من الاخ 1 من الناس عندما يقوم بإرسال الملف لجهاز مغلق يقوم نظام الوندوز بتجميد البرامج لحين ماينتهي من البحث عن الجهاز المراد إرسال الملف إليه ، يستغرق وقت لا بأس به إذا كان جهاز الشبكة مغلق.

لذلك كما قال الأخ أسامة :

اقتباس
يمكنهم تبادل المعلومات، ولو أفترضنا أنه يتم الاتصال بينهم من خلال بروتوكول TCP/IP وبالتالى لكل منهم IP Address خاص به.

هذا الأمر شرحه الأخ أسامة في مثاله للتأكد أن الجهاز مفتوح ،ويمكنك إستخدام الأداة ون سوك لذلك.

فما هو طلبك بالضبط.

#5

d = Format(Date, "dd") & "_" & Format(Date, "m") & "_" & Format(Date, "yyyy")

اخذت التاريخ الحالي نسقت الاسم بطريقة تقبل التسمية للمجلد

past_d = Format(Date, "dd") & "_" & Format(Date, "m") - 1 & "_" & Format(Date, "yyyy")

نفس التاريخ الحالي بس الشهر الماضي

Y= "\\PC1\packup\" & past_d

مسار المجلد الذي انشئ الشهر الماضي بنفس اليوم

If Fsys.FolderExists(Y) = True Then

Fsys.DeleteFolder Y

'End If

اذا وجدت المجلد احذفه

x = "\\PC1\packup\" & d

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

If Fsys.FolderExists(x) = False Then

Fsys.CreateFolder "\\PC1\packup\" & d

FileCopy App.Path & "\test1.mdb", x & "\test1.mdb"

اذا لم تجد المجلد في الجهاز الاخر قم بإنشاء مجلد يحمل نفس التاريخ ضع قاعدة البيانات به

End If

اخواني الكرام

الكود هذا يعمل مية مية وبدون كتابة رقم الاي بي للجهاز الاخر فقط قمت بكتابة اسم الجهاز الاخر (pc1)

هل استطيع كتابة كود خاص باسم الجهاز الاخر بدون رقم الايبي للتحقق من تشغيله قبل تنفيذ الكود

مع الشكر والتقدير

#6

الأخ الفاضل ...

VBPing_up1.zip

نسخة معدلة

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#7

الاخ اسامة

راح اجرب الكود إن شاء الله مع برنامجي يوم السبت

وما اقد اقولك الا

حقيقة انت افضل من يمثل المبرمجين وبيض الله وجهك وما قصرت وفالك المليون

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

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