在开发Office相关插件的时候,不可避免要做中英文的处理,因为界面语言需要跟随Office的语言。
判断Office的语言也很简单,通过读取注册表即可实现:
注册表路径如下:
HKEY_CURRENT_USER\Software\Microsoft\Office\15.0
通过在该注册表项下面找到你需要判断office组件。
这里通过判断Lync 2013的语言进行示例:
LANGUAGE_TYPE GetCurLanguage(){ LANGUAGE_TYPE language=CH; HKEY hRootKey=HKEY_CURRENT_USER; HKEY hKey = NULL; LONG lRet; CString strKeyPath=_T("Software\\Microsoft\\Office\\15.0\\Lync"); lRet = RegOpenKey(hRootKey, strKeyPath, &hKey); if (lRet != ERROR_SUCCESS) { return language; } TCHAR szPath[MAX_PATH] = {0}; DWORD dwData = 256; DWORD dwType = REG_DWORD; DWORD dwValue=0; lRet = RegQueryValueEx(hKey, _T("CurrentUILanguage"), NULL, &dwType, NULL, &dwData); lRet = RegQueryValueEx(hKey, _T("CurrentUILanguage"), NULL, &dwType, (LPBYTE)&dwValue, &dwData); if (lRet != ERROR_SUCCESS) { return language; } RegCloseKey(hKey); if (1033 == dwValue) { language=EN; } else if (2052==dwValue) { language=CH; } return language;}
通过获取到的dwValue值进行判断,1033是英文,2052是中文。
可以在Office语言首选项中对语言进行切换进行测试。