VB 5/6-Tipp 0733: Alle Sprachen auflisten
von Oliver Meyer
Beschreibung
Bezugnehmend auf Tippvorschlag "LCID in RFC1766-Zeichenfolge umwandeln", wird dieses Thema aufgegriffen um einen weiteren Tipp nachzulegen: Da man mit den Stringkürzeln, die die Funktion ConvertLCIDToRfc1766 liefert (z.B.: sv-FI), evtl. nicht gleich etwas anfangen kann, und man der FileVersioninfo-Klasse entnehmen kann, wie es besser geht, hier eine Funktion die einen LCID-Integer (bzw Long) in einen leserlichen Text verwandelt. Es werden in einer Unterroutine alle möglichen (und unmöglichen) LCID's durchlaufen (es werden auch LCIDs generiert, die keine Verwendung haben), mit der API-Funktion VerLanguageNameA in einen String konvertiert und in einer ListBox gesammelt.
Schwierigkeitsgrad: | Verwendete API-Aufrufe: | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Projekt1.vbp ------------- '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Listen-Steuerelement "List1" ' Steuerelement: Schaltfläche "BtnListLCIDString" Option Explicit Private Declare Function VerLanguageNameA Lib "kernel32.dll" ( _ ByVal wLang As Long, ByVal szLang As String, ByVal nSize As Long _ ) As Long Private Sub BtnListLCIDString_Click() Dim i As Long, j As Long Dim sBuf As String * 256 Dim HashCol As New Collection Dim c As Long Dim sLen As Long Dim sLCItem As String Dim sH As String Dim sItem As String Dim lcid As Long For i = 0 To &HFF For j = 0 To &H10 lcid = j * &H400 + i sLen = VerLanguageNameA(lcid, sBuf, 256) If sLen > 0 Then sLCItem = Left$(sBuf, sLen) If Not IsInList(HashCol, sLCItem) Then sH = Hex$(lcid) sH = String$(4 - Len(sH), "0") & sH sItem = "&H" & sH & " " & sLCItem c = c + 1 sH = CStr(c) sH = String$(3 - Len(sH), "0") & sH & " " sItem = sH & sItem Call List1.AddItem(sItem) End If End If Next Next End Sub Private Function IsInList(aCol As Collection, strKey As String) As Boolean On Error Goto Err1 Call aCol.Add(strKey, strKey) If Err.Number = 0 Then Exit Function Err1: IsInList = True End Function '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei Projekt1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.