利用VB如何判断系统是中文版还是英文版或者是其它语言?

解决方案 »

  1.   

    用WMI,记得先引用WMI Scripting
    http://www.mvps.org/vbnet/index.html?code/wmi/wmoperatingsystem.htm
    具体这个属性
    OSLanguage
      

  2.   

    使用GetLocaleInfo api来试试Const LOCALE_USER_DEFAULT = &H400
    Const LOCALE_SENGCOUNTRY = &H1002 '  English name of country
    Const LOCALE_SENGLANGUAGE = &H1001  '  English name of language
    Const LOCALE_SNATIVELANGNAME = &H4  '  native name of language
    Const LOCALE_SNATIVECTRYNAME = &H8  '  native name of country
    Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
    Private Sub Form_Load()
        MsgBox "You live in " & GetInfo(LOCALE_SENGCOUNTRY) & " (" & GetInfo(LOCALE_SNATIVECTRYNAME) & ")," & vbCrLf & "and you speak " & GetInfo(LOCALE_SENGLANGUAGE) & " (" & GetInfo(LOCALE_SNATIVELANGNAME) & ").", vbInformation
    End Sub
    Public Function GetInfo(ByVal lInfo As Long) As String
        Dim Buffer As String, Ret As String
        Buffer = String$(256, 0)
        Ret = GetLocaleInfo(LOCALE_USER_DEFAULT, lInfo, Buffer, Len(Buffer))
        If Ret > 0 Then
            GetInfo = Left$(Buffer, Ret - 1)
        Else
            GetInfo = ""
        End If
    End Function
      

  3.   

    Declare Function GetSystemDefaultLangID Lib "kernel32" Alias "GetSystemDefaultLangID" () As Integer 
    说明 
    取得系统的默认语言ID 
    返回值 
    Integer,系统的默认语言ID 
    Below are the Language ID's 0x0000 Language Neutral 
    0x0400 Process Default Language 
    0x0401 Arabic (Saudi Arabia) 
    0x0801 Arabic (Iraq) 
    0x0c01 Arabic (Egypt) 
    0x1001 Arabic (Libya) 
    0x1401 Arabic (Algeria) 
    0x1801 Arabic (Morocco) 
    0x1c01 Arabic (Tunisia) 
    0x2001 Arabic (Oman) 
    0x2401 Arabic (Yemen) 
    0x2801 Arabic (Syria) 
    0x2c01 Arabic (Jordan) 
    0x3001 Arabic (Lebanon) 
    0x3401 Arabic (Kuwait) 
    0x3801 Arabic (U.A.E.) 
    0x3c01 Arabic (Bahrain) 
    0x4001 Arabic (Qatar) 
    0x0402 Bulgarian 
    0x0403 Catalan 
    0x0404 Chinese (Taiwan Region) 
    0x0804 Chinese (PRC) 
    0x0c04 Chinese (Hong Kong SAR, PRC) 
    0x1004 Chinese (Singapore) 
    0x0405 Czech 
    0x0406 Danish 
    0x0407 German (Standard) 
    0x0807 German (Swiss) 
    0x0c07 German (Austrian) 
    0x1007 German (Luxembourg) 
    0x1407 German (Liechtenstein) 
    0x0408 Greek 
    0x0409 English (United States) 
    0x0809 English (United Kingdom) 
    0x0c09 English (Australian) 
    0x1009 English (Canadian) 
    0x1409 English (New Zealand) 
    0x1809 English (Ireland) 
    0x1c09 English (South Africa) 
    0x2009 English (Jamaica) 
    0x2409 English (Caribbean) 
    0x2809 English (Belize) 
    0x2c09 English (Trinidad) 
    0x040a Spanish (Traditional Sort) 
    0x080a Spanish (Mexican) 
    0x0c0a Spanish (Modern Sort) 
    0x100a Spanish (Guatemala) 
    0x140a Spanish (Costa Rica) 
    0x180a Spanish (Panama) 
    0x1c0a Spanish (Dominican Republic) 
    0x200a Spanish (Venezuela) 
    0x240a Spanish (Colombia) 
    0x280a Spanish (Peru) 
    0x2c0a Spanish (Argentina) 
    0x300a Spanish (Ecuador) 
    0x340a Spanish (Chile) 
    0x380a Spanish (Uruguay) 
    0x3c0a Spanish (Paraguay) 
    0x400a Spanish (Bolivia) 
    0x440a Spanish (El Salvador) 
    0x480a Spanish (Honduras) 
    0x4c0a Spanish (Nicaragua) 
    0x500a Spanish (Puerto Rico) 
    0x040b Finnish 
    0x040c French (Standard) 
    0x080c French (Belgian) 
    0x0c0c French (Canadian) 
    0x100c French (Swiss) 
    0x140c French (Luxembourg) 
    0x040d Hebrew 
    0x040e Hungarian 
    0x040f Icelandic 
    0x0410 Italian (Standard) 
    0x0810 Italian (Swiss) 
    0x0411 Japanese 
    0x0412 Korean 
    0x0812 Korean (Johab) 
    0x0413 Dutch (Standard) 
    0x0813 Dutch (Belgian) 
    0x0414 Norwegian (Bokmal) 
    0x0814 Norwegian (Nynorsk) 
    0x0415 Polish 
    0x0416 Portuguese (Brazilian) 
    0x0816 Portuguese (Standard) 
    0x0418 Romanian 
    0x0419 Russian 
    0x041a Croatian 
    0x081a Serbian (Latin) 
    0x0c1a Serbian (Cyrillic) 
    0x041b Slovak 
    0x041c Albanian 
    0x041d Swedish 
    0x081d Swedish (Finland) 
    0x041e Thai 
    0x041f Turkish 
    0x0421 Indonesian 
    0x0422 Ukrainian 
    0x0423 Belarusian 
    0x0424 Slovenian 
    0x0425 Estonian 
    0x0426 Latvian 
    0x0427 Lithuanian 
    0x0429 Farsi 
    0x042a Vietnamese 
    0x042d Basque 
    0x0436 Afrikaans 
    0x0438 Faeroese 
      

  4.   

    你是不是觉得msgbox中的'确认'之类的按钮不能改变语言而担心发布的软件出现语言问题呢!这种担心是多余的,因为这个按钮的语言是根据操作系统的dll来自动决定的.在英文操作系统中自动会变成英文的.