Sprache des Systems ermitteln

17/07/2008 - 10:30 von Peter Schirmer | Report spam
Hallo zusammen,

hat jemand einen Link oder einen Codeschnippsel, wie ich unter VB
Classic die Sprache des Systems ermittle?

Ich schreibe eine Anwendung mit VB 2005 und ermittle dort die Sprache
mit My.Computer.Info.InstalledUICulture.TwoLetterISOLanguageName. Aber
wie realisiere ich das unter VB Classic? Ich brauche die VB Classic
Anwendung, weil zu dem Zeitpunkt noch kein .NET vorliegt.

Danke und Gruß
Peter
 

Lesen sie die antworten

#1 Susann Markward
17/07/2008 - 10:49 | Warnen spam
Hallo,

*Peter Schirmer* schrieb am 17.07.2008 10:30:
hat jemand einen Link oder einen Codeschnippsel, wie ich unter VB
Classic die Sprache des Systems ermittle?

Ich schreibe eine Anwendung mit VB 2005 und ermittle dort die Sprache
mit My.Computer.Info.InstalledUICulture.TwoLetterISOLanguageName. Aber
wie realisiere ich das unter VB Classic?



So ungefàhr ... (glaube ich) Hier habe ich mal einen Code-Schnipsel, wie
ich die landestypischen Datumsformate auslese (also ob das Datum so
24.03.2008, so 24/03/2008, oder eben anders dargestellt wird).

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 Declare Function GetSystemDefaultLCID Lib "kernel32" () As _
Long

Private Const LOCALE_SDATE = &H1D ' date separator

Private datDatum As Date
Private strDatum As String
Private strDateSeperator As String

Sub ...
Dim sReturn As String
Dim r As Long
Dim LCID As Long

LCID = GetSystemDefaultLCID()
r = GetLocaleInfo(LCID, LOCALE_SDATE, sReturn, Len(sReturn))

If r Then 'if successful ...
sReturn = Space$(r) 'pad the buffer with spaces
r = GetLocaleInfo(LCID, LOCALE_SDATE, sReturn, Len(sReturn))
If r Then 'if successful (r > 0)
'r holds the size of the string including the terminating null
strDateSeperator = Left$(sReturn, r - 1)
End If
End If
End Sub

Jetzt musst Du nur noch anstelle des Wertes "&H1D" denjenigen finden,
der für die Sprache zustàndig ist [1]. Den weiß ich gerade nicht aus dem
Kopf.

[1] Ich glaube LOCALE_IDEFAULTLANGUAGE oder LOCALE_ILANGUAGE (siehe
unter <http://msdn.microsoft.com/en-us/library/bb507201(VS.85).aspx>

Ähnliche fragen