باستخدام EstimatedSize قيمة داخل برنامج إلغاء تثبيت مفتاح عرض بشكل صحيح حجم البرنامج في إضافة/إزالة "البرامج" القائمة

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

  •  11-07-2019
  •  | 
  •  

سؤال

لقد حاولت استخدام EstimatedSize القيمة خلال إنشاء إلغاء التثبيت مفتاح التسجيل للحصول على التطبيق لقد وضعت للأسف فإن قيمة المحدد لا تظهر في إضافة/إزالة البرامج القائمة بجانب البرنامج الدخول.لقد حاولت العثور على الإجراء المناسب لاستخدام هذه القيمة ولكن دون جدوى.أي شخص لديه أي خبرة في هذه المسألة ؟ مساعدتكم سيكون موضع تقدير.

ديفو حصلت لي على المسار الصحيح لذلك فكرت بعد خطوة بخطوة إرشادات حول كيفية عرض بشكل صحيح EstimatedSize القيمة.

  1. إنشاء مفتاح التسجيل مع جميع الخصائص ذات الصلة ، بما في ذلك EstimatedSize.هذه القيمة سوف تتكرر في ARPCache المفتاح في التسجيل
  2. العثور على مفتاح التسجيل داخل ARPCache مجلد حذف SlowInfoCache قيمة ثنائية ، وتعيين تغيير القيمة إلى 1.
  3. في المرة القادمة إضافة/إزالة "البرامج" القائمة فتح سوف ترى القيمة المحددة في EstimatedSize الدخول لا التعسفي ويندوز ولدت واحدة.
هل كانت مفيدة؟

المحلول

أنا أحسب أن تغيير قيمة EstimatedSize تحت

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{my-guid-value}

لا يكون لها أي تأثير مباشر.هذه القيمة المخزنة في المفتاح التالي:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Management\ARPCache\{my-guid-value}\SlowInfoCache

إلا بعد إزالة (إعادة تسمية) هذا SlowInfoCache القيمة التي تم تحديثها الحجم يظهر تحت إضافة أو إزالة البرامج.

التحيات ، ديفو

نصائح أخرى

كتابة قيمة التعسفي يعمل بشكل جيد بالنسبة لي على Windows7.

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

هذا هو NSIS *.nsi النصي, آسف, ولكن هناك فقط 3 خطوط نشطة.لا أعتقد أن عليك أن تعرف NSIS أن نرى أن أنا مجرد إنشاء مفتاح تعسفا و كتابة قيمة خياري في ذلك.أستطيع أن أقول لكم أيضا أنه عندما كنت في وضع سيء القيم هناك بالتأكيد تظهر في إضافة/إزالة البرامج بالضبط سيئة مثل ما كتبت.(افترضت قيمة كان من المفترض أن بالبايت في البداية, إذا 3.2 MB التطبيق يظهر كما 3.2 GB)

مقتطفات من فو.nsi :

    [...]

    ; ARP = just convenience variable to hold the long reg key path
    !define ARP "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}"

    ; include a function library that includes a file/directory size reporting command
    !include "FileFunc.nsh"   ; for ${GetSize} for EstimatedSize registry entry

    [...]

    Section "Install"

    ; [...copy all files here, before GetSize...]

    ; get cumulative size of all files in and under install dir
    ; report the total in KB (decimal)
    ; place the answer into $0  ($1 and $2 get other info we don't care about)
    ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2

    ; Convert the decimal KB value in $0 to DWORD
    ; put it right back into $0
    IntFmt $0 "0x%08X" $0

    ; Create/Write the reg key with the dword value
    WriteRegDWORD HKLM "${ARP}" "EstimatedSize" "$0"

    [...write the other keys in the same reg path...]

    SectionEnd

    [...]

على الرغم من أن هذا الموضوع قديم جدا ، بحث استغرق مني هنا حين تبحث عن كيفية إظهار حجم الطلب في إضافة/إزالة البرامج نافذة في نظام التشغيل Windows XP ، حتى أنا بعد ما وجدت فقط في حالة شخص آخر تجد أنه من المفيد:

فقط اذهب إلى مجلد التطبيق الخاص بك تحت:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\\{app_name}

وإضافة قيمة أبجدية رقمية تسمى "InstallLocation" قيمته هو المجلد الرئيسي من التطبيق الخاص بك.

إذا كان يتم القيام بذلك يدويا (وليس أثناء التثبيت) ، من أجل جعله يعمل لديك لإزالة المجلد:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Management\ARPCache\\{app_name}

لأنه بتخزين معلومات إلغاء التثبيت.

ما نوع المثبت لم تستخدمها ؟ MSI?

Windows Installer تحديد و تعيين هذه القيمة أثناء التثبيت (انظر MSDN: إزالة مفتاح التسجيل)

أعتقد أنه ليس من الممكن يدويا تعيين هذه القيمة.هناك الكثير من الأمور (بعض حقا "عرجاء" الأشياء) خلف الكواليس (http://blogs.msdn.com/oldnewthing/archive/2004/07/09/178342.aspx)

التحيات ، ديفو

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