Die gebruik van die EstimatedSize waarde binne 'n program verwyder die sleutel tot die program grootte in die Voeg korrek vertoon / Remove Programs lys

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

  •  11-07-2019
  •  | 
  •  

Vra

Ek het probeer om die EstimatedSize waarde gebruik tydens die skepping van 'n uninstaller register sleutel vir 'n app Ek het ontwikkel, ongelukkig is die waarde wat ek spesifiseer nie verskyn in die Add / Remove Program lys langs inskrywing my program se. Ek het probeer om die behoorlike prosedure te vind vir die gebruik van hierdie waarde, maar dit was tevergeefs. Iemand enige ervaring oor hierdie kwessie? Jou hulp sal waardeer word.

Divo het my op die regte pad sodat ek gedink ek sou stap-vir-stap instruksies oor hoe om die EstimatedSize waarde korrek vertoon. Post

  1. Skep die register sleutel met alle relevante eienskappe, insluitend EstimatedSize. Hierdie waarde sal herhaal word in die ARPCache sleutel in die register
  2. Vind die register sleutel binne-in die gids ARPCache, die SlowInfoCache binêre waarde te verwyder, en stel die veranderde waarde tot 1.
  3. Volgende keer die Add / Remove Programs lys is oop jy sal die waarde wat u verskaf in die EstimatedSize inskrywing sien, nie die arbitrêre Windows gegenereer een.
Was dit nuttig?

Oplossing

Ek uitgepluis het dat die verandering van die waarde van EstimatedSize onder

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

geen direkte effek het. Hierdie waarde is die kas in die volgende sleutel:

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

Eers nadat ek verwyder (hernoem) hierdie SlowInfoCache waarde, verskyn die opgedateer grootte onder Software .

Groete, Divo

Ander wenke

Skryf 'n arbitrêre waarde werk goed vir my op Windows7.

Ek gebruik NSIS wat nie outomaties hierdie waarde te vul of skryf hierdie sleutel of enigiets magiese hier doen. Maar jy kan die register sleutels jouself te skep, en sit alles wat jy wil in dit self, die gebruik van gewone script opdragte.

Dit is NSIS * .nsi script, jammer, maar daar is net 3 aktiewe lyne. Ek dink nie jy hoef te weet NSIS om te sien dat ek net die skep van die sleutel arbitrêr en skryf 'n waarde van my keuse daarin. Ek kan jou ook vertel dat, toe ek besig was om slegte waardes in daar, dit seker opgedaag het in byvoeg / verwyder programme presies so erg as wat ek geskryf het. (Ek aanvaar die waarde was veronderstel om in Bytes op die eerste, So, my 3.2 MB app het opgedaag as 3,2 GB)

uittreksel uit foo.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

    [...]

Hoewel hierdie onderwerp is baie oud, 'n soektog het my hier terwyl op soek na hoe om die aansoek grootte te wys in die Add / Remove Programs venster in Windows XP, so ek plaas wat ek gevind het net in geval iemand anders dit nuttig vind:

Gaan net na die gids van jou aansoek onder:

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

en voeg 'n alfanumeriese waarde genoem "installeringligging" wie se waarde is die belangrikste gids van jou aansoek.

As u dit met die hand doen (nie tydens die installasie), ten einde te maak dit werk wat jy hoef te gids te verwyder:

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

omdat dit caches die verwydering van inligting.

Watter soort installeerder het jy gebruik? MSI?

Windows Installer sal bepaal en stel hierdie waarde tydens die installasie (sien MSDN: verwyder register sleutel )

Ek dink dit is nie moontlik om hierdie waarde met die hand stel. Daar is 'n baie gaan op ( 'n paar baie "lam" dinge) agter die skerms ( http://blogs.msdn.com/oldnewthing/archive/2004/07/09/178342.aspx )

Groete, Divo

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top