Запись в реестре отличается в Windows 7 64 бит - PullRequest
4 голосов
/ 20 октября 2011

Я установил программное обеспечение Foxit Reader (PDF reader)

Мое приложение проверяет, установлено ли это программное обеспечение, проверяя, существует ли следующая запись.

HKEY_LOCAL_MACHINE \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Foxit Software \ Foxit Reader

Кажется, он работал нормально во всех ОС Windows, кроме 64-битной Windows 7. При расследовании я обнаружил, что запись реестра для этого программного обеспечения находится в другом месте. ниже находится местоположение.

HKEY_LOCAL_MACHINE \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Wow6432Node \ Foxit Software

Как проверить, установлен ли Foxit Reader или нет, и он должен работать во всех версиях ОС Windows.

Спасибо. Любая помощь высоко ценится. :)

Ответы [ 2 ]

4 голосов
/ 20 октября 2011

EDIT:

Wow6432Node - это место, где живут 32-битные записи. 64 бит находится на HKLM \ Software. В .net 4.0 была добавлена ​​возможность легко читать.

См. Например, код:

http://www.rhyous.com/2011/01/24/how-read-the-64-bit-registry-from-a-32-bit-application-or-vice-versa/

Без 4.0 вам придется импортировать advapi32.dll и использовать RegOpenKeyEx, RegCloseKey и RegQueryValueEx.

0 голосов
/ 20 октября 2011

Я бы, наверное, проверил оба места.Вы могли бы специально искать в 32-битном каталоге реестра, но тогда вы не сможете обнаружить 64-битную версию Foxit (если она когда-либо будет создана).

...