Как программно определить, установлена ​​ли 32-битная или 64-битная версия Visio? - PullRequest
1 голос
/ 06 октября 2010

Как программно определить 32-битную или 64-битную версию Visio установлена?

Ответы [ 8 ]

2 голосов
/ 06 октября 2010

Вы можете проверить, установлен ли он в Program Files (x86) (32 бита) или Program Files (64 бита), но это не совсем верно.

API GetBinaryType , вероятно, является более надежным решением.

1 голос
/ 06 октября 2010

Одним из способов является поиск в реестре Windows, чтобы увидеть, существует ли visio в узле Office (HKLM \ Software \ Wow6432Node \ Microsoft \ Office ...) Если существует, это указывает на 32-битную версию Visio.Если поиск HKLM \ Software \ Microsoft \ Office ... возвращает значение, то это, возможно, указывает на 64-битную версию установки Visio.Надеюсь, это поможет.

1 голос
/ 06 октября 2010

Вы можете искать файл Visio EXE, используя:

  • Environment.SpecialFolder.ProgramFiles
  • Environment.SpecialFolder.ProgramFilesX86

Если вы найдете файл Visio EXE в папке с программными файлами X86, то вы знаете, что он 32-разрядный. Другая папка предназначена для 64-битных приложений.

Я не уверен, насколько это полностью защищено, поскольку Visio мог быть установлен в другую папку, кроме Program Files. В этом случае вы все равно можете найти файл EXE и затем попытаться проанализировать сам EXE.

Для этого перейдите по ссылкам:

0 голосов
/ 15 июля 2013

На это есть ответ. Office добавляет запись реестра для разрядности в разделе Outlook (даже если Outlook не установлен):

  • Путь к реестру: HKEY_LOCAL_MACHINE\ Software \ Microsoft \ Office \ 14.0 \ Outlook
  • Ключ реестра: Bitness
  • Значение: x86 или x64

Это также для меняпод HKEY_LOCAL_MACHINE\Software\Microsoft\Office\15.0\Outlook (Office 2013).

0 голосов
/ 23 ноября 2011

Это другой способ вашей работы:

0 голосов
/ 07 октября 2010

Попробуйте свойство Application.IsVisio32

Я думаю, что оно осталось от различий между 16 и 32-битными версиями Visio, но IsVisio32 все еще существует (по крайней мере, в Visio 2003 32-bit, и Visio2010 32-bit.

Нет свойства IsVisio64, но посмотрите, что IsVisio32 предлагает при 64-битной установке, если можете.

0 голосов
/ 06 октября 2010

Можете ли вы рассказать подробнее о том, когда вам нужно определить, является ли VISIO 64 или 32-битным?

Если процесс запущен, вы можете использовать метод P / Invoke под названием IsWow64Process, чтобы определить, является ли он 64-битным или нет.

Вы также можете использовать IsWow64Process, чтобы определить, является ли ОС 32- или 64-битной. Получив битовое пространство ОС, вы можете определить, какую версию надстройки установить.

Насколько я понимаю, в Office 2010 и будущих выпусках вы можете использовать VSTO, чтобы не проверять, является ли VISIO 32-разрядным или 64-разрядным. Возможно, вы захотите учесть это в будущих выпусках вашей надстройки.

Спасибо

Кроме того, я знаю, что это не имеет отношения, но, пожалуйста, проголосуйте за это предложение (если у вас есть время), так как оно произойдет революцией в разработке программного обеспечения https://connect.microsoft.com/VisualStudio/feedback/details/526951/screen-object-physicalwidthincentimeters-physicalheightincentimeters-displaymode

0 голосов
/ 06 октября 2010

Взгляните на этот вопрос .После того, как вы найдете exe-файл, используя информацию, хранящуюся о программе в реестре add remove, выполните оценку exe.

...