在开发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语言首选项中对语言进行切换进行测试。