2013-08-14 4 views
0

Я получил некоторые problem..in C#Почему я не вижу «wow6432node» при использовании process.start («regedit.exe»)?

Когда я исполняю regedit.exe через мой код, в системе x64 OS это не показывало

HKLM\SOFTWARE\'wow6432node' 

но когда я исполняю regedit.exe через Window Key + R это показать мне wow6432node

как я могу найти wow6432node? Я не знаю, как показать ...

вот мой код

 private void RegeditCall_Click(object sender, EventArgs e) 
     { 
      Process.Start("C:\\Windows\\regedit.exe"); 
     } 

или

 private void RegeditCall_Click(object sender, EventArgs e) 
     { 
      Process.Start("regedit.exe"); 
     } 

ответ

0

Вы пробовали:

System.Diagnostics.Process.Start("regedit.exe"); 

Я испытал это код на машине x64 с LinqPad и работает.

Here is orginal topic

Редактировать

Это может быть полезно http://www.rhyous.com/2011/01/24/how-read-the-64-bit-registry-from-a-32-bit-application-or-vice-versa/

+0

Спасибо за ваш ответ! Но .. Это не сработало .. –

+0

@ jeongseok-park Я думаю, что это связано с проблемой priviliges. Но я только догадываюсь. Какое приложение вы получили? веб или выиграть формы? –

+0

Мой тип алликации - это Winforms. , и я хочу увидеть результат «Process.Start (« regedit.exe »)« так же, как «Window Key + R», но это другое. Execute regedit.exe через 'cmd.exe' также отличается от результата «Window Key + R» –

0

Я только что один и тот же вопрос: Проверьте ваш C# приложение не для x86.

Если 32-разрядный процесс выполняет regedit, тогда окна запустит 32-битную версию regedit. В этой версии HKLM \ Software фактически указывает на HKLM \ Software \ Wow6432Node.

Если вы используете start -> run -> regedit (Предполагая, что вы работаете с 64-битной версией окон), это запустит 64-битную версию regedit. Теперь вы можете увидеть ключ HKLM (или HKCU) Wow6432Node.

Смежные вопросы