判斷本機是否安裝Microsoft Office或者wps


網上通用的方法是Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Kingsoft\Office\6.0\common")中獲取WPS安裝信息,由於本機是win7 64位系統,實際安裝后注冊表寫入路徑為SOFTWARE\Wow6432Node\Kingsoft\Office\6.0\common,本機安裝的是WPS2013,發現實際上common節點下並沒有可供判斷的值,並沒有存儲WPS安裝路徑,經測試,發現安裝路徑實際寫入路徑為HKEY_CURRENT_USER\Software\Kingsoft\Office\6.0\common,因此此處用這個路徑進行判斷,估計是WPS版本問題,此方法后期需要在實際應用中驗證

判斷本機是否安裝wps方法:

private bool isWpsInstall()
        {
            bool isInstall = false;
            RegistryKey wpsLibrary = Registry.CurrentUser.OpenSubKey(@"Software\Kingsoft\Office\6.0\common");
            if (wpsLibrary != null)
            {
                if (wpsLibrary.GetValue("InstallRoot") != null)
                {
                    string strpath = wpsLibrary.GetValue("InstallRoot").ToString();
                    if (File.Exists(strpath + @"\office6\wps.exe"))
                    {
                        isInstall = true;
                    }
                }
            }
            return isInstall;
        }

由於本機是win7 64位系統,office 2007安裝后,注冊表寫的位置是在SOFTWARE\Wow6432Node\Microsoft節點之下因此寫了officeLibrary1進行判斷,考慮到32位系統,注冊表的位置直接在SOFTWARE\Microsoft節點之下,因此增加了officeLibrary0進行判斷,滿足任一種,則判斷位office已安裝,但是實際測試的時候,發現本機win7 64位下也可以用officeLibrary0取到值,但實際本機的SOFTWARE\Microsoft\Office節點下並沒有對應的節點,因此,實際上用officeLibrary0進行判斷即可,具體原因未知

判斷本機是否安裝office代碼:

參數officever輸入要驗證的office版本,例如office2007為12.0

private bool isOfficeInstall(string officever)
        {
            bool isInstall = false;            
            RegistryKey officeLibrary0 = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Office\" + officever + @"\Common\InstallRoot");
            RegistryKey officeLibrary1 = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Microsoft\Office\" + officever + @"\Common\InstallRoot");
            if (officeLibrary0 != null)
            {
                if (officeLibrary0.GetValue("Path") != null)
                {
                    string strpath = officeLibrary0.GetValue("Path").ToString();
                    if (File.Exists(strpath + "WINWORD.EXE"))
                    {
                        isInstall = true;
                    }
                }
            }
            if (officeLibrary1 != null)
            {
                if (officeLibrary1.GetValue("Path") != null)
                {
                    string strpath = officeLibrary1.GetValue("Path").ToString();
                    if (File.Exists(strpath + "WINWORD.EXE"))
                    {
                        isInstall = true;
                    }
                }
            }
            return isInstall;
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM