Conditinal Statement in een NSIS section werkt niet

Pagina: 1
Acties:

  • Av3ng3rtje
  • Registratie: December 2002
  • Laatst online: 05-01 22:08
Hallo,

Ik ben op het gebied van NSIS installers nog niet heel bekend, maar kan wel aardig overweg met de documentatie van NSIS en kon twee dingen voor conditinal statements:

!if notatie
${if} notatie

beide werken niet in mijn Section. Het is de bedoeling dat bij GUI.INIT event een functie wordt uitgevoerd die in het register kijkt waar een geinstalleerd spel staat (ReadRegStr), Als die key niet bestaat moet hij in $R0 "" zetten. Ik heb in GUI.init al gekeken of de string $R0 de path krijgt of niet en dat is het geval.. vervolgens Pop ik $R0 weer van m'n stack af en kijk of deze leeg is of niet, als hij leeg is met de Section Read Only (SectionIn RO).

Ik denk eigenlijk dat ik van te voren al m'n secties readonly moet maken als $R0 == "".. alleen weet niet hoe..

Bovenaan me NSIS script

code:
1
!define MUI_CUSTOMFUNCTION_GUIINIT checkWow


Stukje Section code

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Section /o "CT Raid" ctraid

    Pop $R0
    
    ${if} $R0 == ""
        SectionIn RO
    ${else}
        StrCpy $INSTDIR "$R0Interface\Addons"
    
        SetOutPath $INSTDIR

        File /r "ctraid\*.*"
    ${endif}

SectionEnd


De stack code
code:
1
2
3
4
5
6
7
Function checkWow
    
    ReadRegStr $R0 HKLM "Software\Blizzard Entertainment\World of Warcraft" "InstallPath"

    Push $R0
    
FunctionEnd

[ Voor 7% gewijzigd door Av3ng3rtje op 26-04-2006 14:09 ]


  • Av3ng3rtje
  • Registratie: December 2002
  • Laatst online: 05-01 22:08
bump

  • Av3ng3rtje
  • Registratie: December 2002
  • Laatst online: 05-01 22:08
ik heb de oplossing gevonden ^^ !

Ik geef in de checkWow functie die ik met guiInit lanceer aan of de sectie readonly moet zijn of niet.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Function checkWow
    
    ReadRegStr $R0 HKLM "Software\Blizzard Entertainment\World of Warcraft" "InstallPath"

    ${if} $R0 == ""

        SectionSetFlags ${ctraid} 16
        SectionSetFlags ${threatmeter} 16
        SectionSetFlags ${dmgmeter} 16
        SectionSetFlags ${sct} 16
        SectionSetFlags ${tranqshot} 16
        SectionSetFlags ${decursive} 16

    ${endif}

    push $R0
    
FunctionEnd

[ Voor 15% gewijzigd door Av3ng3rtje op 27-04-2006 17:47 ]