2012-06-22 11 views
8

Ho un build di installazione dell'applicazione in NSIS. Il set richiede una chiave da creare nel seguente percorso per la mia applicazione per iniziare: - HKEY_LOCAL_MACHINE \ Software \\\ " "VersionNo" 0 HKEY_LOCAL_MACHINE \ Software \ Wow6432Node \\" "VersionNo" "11"Scrittura del valore di registro in un sistema a 64 bit

Nella sceneggiatura, ho utilizzato: -

 WriteRegDWORD HKLM "SOFTWARE\<Key1>\<Key2>\<Key3>" "VersionNo" 0 
     WriteRegStr HKLM "SOFTWARE\<Key1>\<Key2>" "VersionNo" "11" 

Questa chiave viene creata correttamente su un sistema Windows 7 a 32 bit. Tuttavia, quando installo l'installazione su un sistema Windows 7 a 64 bit, la chiave non viene creata nella posizione precedente. Invece crea la chiave in: -

 HKEY_LOCAL_MACHINE\Software\Wow6432Node\<Key1>\<Key2>\<Key3>" "VersionNo" 0 
     HKEY_LOCAL_MACHINE\Software\Wow6432Node\<Key1>\<Key2>" "VersionNo" "11" 

Ciò comporta che l'applicazione non si avvia dopo l'installazione.

- Qualcuno può suggerire comando/script per NSIS per creare obbligatoriamente le chiavi in ​​HKEY_LOCAL_MACHINE \ Software \ per un sistema a 64 bit invece di essere creato in HKEY_LOCAL_MACHINE \ Software \ Wow6432Node?

in trepidante attesa di una soluzione ....

risposta

27

Usa SetRegView per passare tra i 32-bit e 64-bit di registro. Il tuo codice dovrebbe essere simile a:

SetRegView 64 
WriteRegDWORD HKLM "SOFTWARE\<Key1>\<Key2>" "VersionNo" 0 
SetRegView 32 
WriteRegStr HKLM "SOFTWARE\<Key1>\<Key2>" "VersionNo" "11" 
+0

Grazie. La soluzione funziona bene. – Bomzinho

+9

@Bomzinho dovresti contrassegnare la risposta accettata come cortesia per Sergius –

Problemi correlati