[英]How to programmatically detect 32-bit or 64-bit visio version is installed?
如何以編程方式檢測32位或64位visio版本?
您可以檢查它是否安裝在Program Files (x86)
(32位)或Program Files
(64位)中,但這不是堅如磐石的。
GetBinaryType API可能是一個更可靠的解決方案。
您可以使用以下任一方法搜索Visio EXE
文件:
Environment.SpecialFolder.ProgramFiles
Environment.SpecialFolder.ProgramFilesX86
如果在X86程序文件文件夾中找到Visio EXE
文件,那么您就知道它是32位的。 另一個文件夾用於64位應用程序。
我不確定這是多么完整,因為Visio可能已安裝在Program Files
以外的其他Program Files
夾中。 在這種情況下,您仍然可以搜索EXE
文件,然后嘗試分析EXE
本身。
為此,請查看以下鏈接:
其中一種方法是查看Windows注冊表以查看Office節點下是否存在visio(HKLM \\ Software \\ Wow6432Node \\ Microsoft \\ Office ...)如果存在,則表示Visio的32位版本。 如果HKLM \\ Software \\ Microsoft \\ Office ... lookup返回值,則它可能表示64位版本的visio安裝。 希望這可以幫助。
這有答案。 Office在Outlook密鑰下添加了一個用於位數的注冊表項(即使未安裝Outlook):
- 注冊表路徑:HKEY_LOCAL_MACHINE \\ Software \\ Microsoft \\ Office \\ 14.0 \\ Outlook
- 注冊表項:比特
- 值:x86或x64
它也適用於HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Office\\15.0\\Outlook
(Office 2013)。
看看這個問題 。 找到exe后,使用存儲的關於程序的信息添加刪除注冊表entires評估exe。
當你需要確定VISIO是64位還是32位時,你能詳細說明一下嗎?
如果進程正在運行,則可以使用名為IsWow64Process的P / Invoke方法來確定它是否為64位。
您還可以使用IsWow64Process來確定操作系統是32位還是64位。 獲取操作系統的位空間后,即可確定要安裝的加載項版本。
根據我的理解,Office 2010和將來的版本,您可以使用VSTO來避免檢查VISIO是32位還是64位。 您可能需要考慮將來的版本加載項。
謝謝
此外,我知道這是無關的,但請投票支持這個建議(如果你有時間)因為它會徹底改變軟件開發: https : //connect.microsoft.com/VisualStudio/feedback/details/526951/screen-object-physicalwidthincentimeters -physicalheightincentimeters-DISPLAYMODE
嘗試Application.IsVisio32屬性
我認為從16位和32位版本的Visio之間有區別時,它仍然存在,但IsVisio32仍然存在(至少在Visio 2003 32位和Visio2010 32位。
沒有IsVisio64屬性,但如果可以,請查看64位安裝時IsVisio32的用途。
這是你工作的另一種方式:
您可以了解MS Visio的版本和路徑。 此主題的鏈接: https : //stackoverflow.com/q/1085468/616309
在GetMachineType(string fileName)
使用MS Visio程序路徑。 此主題的鏈接: https : //stackoverflow.com/q/885481/616309
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.