Sto lavorando su un sistema Windows a 64 bit e il mio programma applicativo funziona con privilegi elevati. Ho un problema con il seguente semplice pezzo di codice:C# legge dati di registro errati su sistema operativo a 64 bit
myKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
if (myKey != null)
{
string[] HKLMvaluenames = myKey.GetValueNames();
}
Ma per alcune serie ragione HKLMvaluenames è popolata con i valori dalla seguente chiave:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
C'è un modo per risolvere questo problema?
Il codice deve essere eseguito in modalità a 32 bit, a causa di una dipendenza esterna/non gestita o qualcosa del genere? –
La tua applicazione è compilata come app a 32 bit? Wow64 è il livello di compatibilità a 32 bit per SO Windows a 64 bit. – Oded
@Nick: Non devo correre in 32 bit ma voglio che la mia applicazione sia in grado di funzionare anche su sistemi operativi a 32 bit (questo è molto importante). @Oded: Sì, so cosa è wow64. La mia applicazione è compilata usando VX2010 Express, quindi credo di non poter nemmeno scegliere come compila. Posso controllarlo da qualche parte? – baal80