سؤال

لدي برنامج Legacy VB6 الذي يقوم بتثبيت ملف Access في الدليل الفرعي لمجلد البيانات الشائعة (CSIDL_COMMON_APPDATA). لقد قمت الآن بتثبيت هذا البرنامج على نظام Vista 64 بت، والبرنامج يعمل بشكل جيد ويوفر للملف في C: ProgramData Wow Wowcat.mdb، ولكن هذا الملف لا يظهر في مستكشف Windows.

أريد الكتابة فوق قاعدة البيانات هذه، مع إصدار أحدث، مأخوذة من جهاز الكمبيوتر القديم الخاص بي، ولكن استخدام Explorer لا أستطيع رؤية الملف في C: ProgramData Wow (أظهر جميع الملفات المخفية والنظام). إذا ذهبت إلى الأمام ونسخ Wowcat.mdb الجديد على أي حال، فإن البرنامج لا يزال يعمل مع القديم.

يخطو الرمز في VB، إنه يفتح الملف بالتأكيد على: C: ProgramData Wow Wowcat.mdb. يبحث محرك الأقراص C: فقط النسخة الجديدة، فأين هو الشخص الذي يصل إليه البرنامج؟

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

المحلول

هذا بسبب إعادة توجيه المجلد في نظام التشغيل Windows Vista. إذا لم تكن لديك عادة الحقوق في كتابة شيء ما في مجلد C: Program، فسيتم إعادة توجيه Vista بصمت أولئك الذين يكتبون إلى مجلد "سر" داخل دليل المستخدم الخاص بك. لا يزال الملف مرئيا للمستخدم الذي قام بإنشاء الملف (وأي برامج تعمل مثل هذا المستخدم)، لكنها لن تكون مرئية لأي شخص آخر. لذلك من المحتمل أن يعمل البرنامج كمستخدم مختلف عن Explorer، وبالتالي لا يستطيع Explorer رؤيته.

راجع الإخراج التالي من DIR / AL على جهاز Vista 64 بت الخاص بي:

C:\ProgramData>dir /aL
 Volume in drive C has no label.
 Volume Serial Number is 74DB-58F8

 Directory of C:\ProgramData

02.11.2006  16:41    <JUNCTION>     Application Data [C:\ProgramData]
02.11.2006  16:41    <JUNCTION>     Desktop [C:\Users\Public\Desktop]
02.11.2006  16:41    <JUNCTION>     Documents [C:\Users\Public\Documents]
02.11.2006  16:41    <JUNCTION>     Favorites [C:\Users\Public\Favorites]
02.11.2006  16:41    <JUNCTION>     Start Menu [C:\ProgramData\Microsoft\Windows\Start Menu]
02.11.2006  16:41    <JUNCTION>     Templates [C:\ProgramData\Microsoft\Windows\Templates]
               0 File(s)              0 bytes
               6 Dir(s)  62 040 051 712 bytes free

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

نصائح أخرى

يتطلب القيام بذلك بشكل صحيح Windows Installer MSI أو المثبت Legacy يعمل مرتفعا يقوم بإنشاء مجلد فرعي تحت CommonAppdatafolder، يعطي التحكم الكامل للجميع (أو مجموعة مناسبة) إلى هذا المجلد، وأخيرا يضع MDB الخاص بك هناك. يمكنك أيضا إنشاء المجلد، ونقل ملف MDB هناك، وتعيين أذونات على الملف فقط.

من الممكن أيضا أن يقوم EXE نفسه بالقيام بذلك على المدى الأول إذا تم تشغيله مرتفعا أو يكشف عن الإغفال ويكتشف عملية مرتفعة للقيام بهذه المهمة. تم إملاء المعايير أن هذا الإجراء يجب أن يبدأ عبر عنصر قائمة أو زر مع أيقونة UAC Shield المعروضة ومع ذلك، وليس فقط عرض موجه UAC.

من الأسهل بكثير عبر حزمة MSI رغم ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top