التحقق من الشبكة المحلية والبيئة إلغاء الاختيار

StackOverflow https://stackoverflow.com/questions/250214

  •  05-07-2019
  •  | 
  •  

سؤال

أنا تحديث برنامج VBA (excel).عند بدء تشغيل البرنامج يفحص إذا كان يمكن العثور على دليل على ملف office server باستخدام:

FileSystemObject.FolderExists("\\servername\path")

إذا لم يتم العثور على هذا البرنامج بالتبديل إلى وضع غير متصل بالشبكة و يحفظ انتاجها إلى القرص الثابت المحلي (لنقل في وقت لاحق) ، بدلا من مباشرة إلى fileserver.

هذا يعمل حسنا, انها سريعة جدا إذا كان جهاز الكمبيوتر يمكن أن تصل إلى الطريق ، ومع ذلك فإنه في بعض الأحيان يمكن أن يستغرق بعض الوقت (ما يصل إلى دقيقة واحدة) للدعوة إلى FolderExists لإتمام/الوقت ، خاصة إذا كان هناك اتصال شبكة مفتوحة ولكن المسار المطلوب غير موجود (أيونحن على اتصال مع بعض LAN).

سؤالي(s):

  1. هل هناك أسرع/أفضل طريقة للتحقق من وجود مسار شبكة اتصال باستخدام VBA?

  2. هل هناك طريقة لجعل المستخدم إلغاء البحث به FolderExists() عند (s)لأنه يعلم أنها لا يمكن أن تنجح لأنها ليست في المكتب.أولا-هاء.هل هناك طريقة قبل الأوان إلى الخروج FolderExists() (أو أي وظيفة أخرى دعوة في هذا الشأن)

أريد الحل أن يكون اقل من إدخال المستخدم ممكن ، والذي هو السبب في أن الاختيار يتم تلقائيا بدلا من مجرد سؤال المستخدم إذا كان (s)هو في المكتب أو في المقام الأول.

هل كانت مفيدة؟

المحلول

إذا كنت على المجال:

التحقق من LOGONSERVER البيئية المتغيرة.

إذا كان هناك اثنين '\' الرموز قبل اسم الملقم توصيله إلى "active directory" و لذلك يجب عليك أن تفعل الاختيار الخاص بك.

وإلا فإنه ليس مسجلا في مكتب الشبكة حتى تتمكن من تجاوز الاختيار.

إذا لم تكن على المجال:

على الأرجح أفضل رهان هو أن تشغيل بينغ ضد الملقم الهدف.

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

MVPS.ORG و منتديات MSDN على حد سواء لديهم بعض نماذج التعليمات البرمجية من أجل ذلك ،

نصائح أخرى

يمكنني استخدام Dir الأمر استهداف مجلد مشترك على ملقم محاصرة خطأ عندما لم يتم العثور على.

Dir("\\Servername\aFolder\", vbDirectory)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top