IsDefaultLanguageWasX
来源:互联网 发布:董事长助理面试 知乎 编辑:程序博客网 时间:2024/06/05 21:56
前言
看到explorer.exe中有个判断系统默认语言的函数, 整理一下
记录
// test.cpp : Defines the entry point for the console application.// code on vs2013#include "stdafx.h"#include <windows.h>#include <stdlib.h>BOOL __stdcall IsDefaultLanguageWasChineseSimplified();BOOL __stdcall IsDefaultLanguageWasChineseTraditional();BOOL __stdcall IsDefaultLanguageWasEnglishUsa();BOOL __stdcall IsDefaultLanguageWasEnglishUk();BOOL __stdcall IsDefaultLanguageWasX(WORD wPrimaryLangID);int _tmain(int argc, _TCHAR* argv[]){ BOOL bRc = FALSE; bRc = IsDefaultLanguageWasChineseSimplified(); printf("default Language %s Chinese simplified\n", bRc ? "is" : "is not"); bRc = IsDefaultLanguageWasChineseTraditional(); printf("default Language %s Chinese traditional\n", bRc ? "is" : "is not"); bRc = IsDefaultLanguageWasEnglishUsa(); printf("default Language %s English USA\n", bRc ? "is" : "is not"); bRc = IsDefaultLanguageWasEnglishUk(); printf("default Language %s English UK\n", bRc ? "is" : "is not"); /** run result default Language is Chinese simplified default Language is not Chinese traditional default Language is not English USA default Language is not English UK 请按任意键继续. . . */ system("pause"); return 0;}BOOL __stdcall IsDefaultLanguageWasEnglishUsa(){ return IsDefaultLanguageWasX(SUBLANG_ENGLISH_US);}BOOL __stdcall IsDefaultLanguageWasEnglishUk(){ return IsDefaultLanguageWasX(SUBLANG_ENGLISH_UK);}BOOL __stdcall IsDefaultLanguageWasChineseTraditional(){ return IsDefaultLanguageWasX(LANG_CHINESE_TRADITIONAL);}BOOL __stdcall IsDefaultLanguageWasChineseSimplified(){ return IsDefaultLanguageWasX(LANG_CHINESE_SIMPLIFIED);}BOOL __stdcall IsDefaultLanguageWasX(WORD wPrimaryLangID){ LANGID langID = 0; BOOL bRc = FALSE; WORD SubLangID = 0; langID = GetUserDefaultLangID(); if (PRIMARYLANGID(langID) == wPrimaryLangID) { SubLangID = SUBLANGID(langID); if ((SUBLANG_DEFAULT == SubLangID) || (SUBLANG_SYS_DEFAULT == SubLangID)) { bRc = TRUE; } } return bRc;}
0 0