Hej, 1. Hej Andreas, > <b>Om samma kod utförs i service-programmet så returneras alltid svenska namn oavsett landsinställning.</b> Hej, > <b>Båda har engelskt OS</b>Regional Settings
Håller på att utveckla en appl. i vb6 där en del går som en service och en del är ett konsol-interface.
1. Om jag i konsol-programmet utför t ex WeekDayName(1) eller Format(Now, "MMMM") så returneras en veckodag resp. aktuell månad som tar hänsyn till landsinställningar för påloggad användare.
Om samma kod utförs i service-programmet så returneras alltid svenska namn oavsett landsinställning.
Är det någon som har en förklaring/lösning på detta?
2. Har även behov av att veta vilket decimal-tecken som används i datorn. I dagsläget avgör jag det med följande kod:
tmpStrDecChr = CSng("1.05")
If tmpStrDecChr <> "1.05" Then
decChrComma = True
Else
decChrComma = False
End If
Finns det något snyggare sätt?
mvh,
LeifSv: Regional Settings
Alla service körs under en anan användare. Du kan ange en speciel användare annars används standrard kontot.
2.
Du kan ju använda format funktionen:
<code>
Dim strText As String
strText = Format$(0, ".")
</code>
Eller API anrop:
<code>
Private Const LOCALE_SDECIMAL As Long = &HE&
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
Public Function DecimalSeparator(Optional Locale As Long) As String
Dim cchData As Long
Dim lpLCData As String
Dim lReturn As Long
cchData = 255
lpLCData = Space(cchData)
lReturn = GetLocaleInfo(Locale, LOCALE_SDECIMAL, lpLCData, cchData)
If lReturn > 0 Then
DecimalSeparator = Left$(lpLCData, lReturn - 1)
End If
End Function
</code>Sv: Regional Settings
Tack för dina kommentarer.
2. Behovet av att veta decimal-tecken är i beräkningssyfte (avrundning). Ska prova API-anropet.
1. Vet du om man kan ändra landsinställningar för Standardkontot (LocalSystem)?
mvh,
LeifSv: Regional Settings
> <b>Är det någon som har en förklaring/lösning på detta?</b>
I WinNT4/2000/XP så har varje användare sin egna inställing för Regional Settings. Tex så kan man ha en användare som har tyska konfigurerat och en annan användare som har spanska konfigurerat oberoende av varandra, precis som du har märkt.
Men, även själva operativsystemet har en Regional Settings. Default är den detsamma som språket på operativsystemet, engelskt operativsystem har engelsk Regional Settings osv. Detta styrs genom bockrutan "Default user account settings" i WinXP och "Set as system default" i WinNT4/2000.
Så, antingen så har du ett svenskt operativsystem, eller så har du konfigurerat systemet att ha samma Regional Settings som ditt egna konto.
Hur du gör för att lösa ditt problem vet jag inte, men här har du iallafall förklaringen till varför det blir så!Sv: Regional Settings
De två datorer jag provat kör NT4 resp. 2K. Båda har engelskt OS och bara Administrator kontot används. Oavsett vilken landsinställning jag sätter på Administrator kontot så blir det svenska namn i service-programmet (medans konsol-programmet ändrar sig efter landinställning).
Var finns bockrutan "Set as system default"?
mvh,
LeifSv: Regional Settings
[..]
> <b>så blir det svenska namn </b>
Då är det för att du har konfigurerat ditt system att använda svenska!
> <b>Var finns bockrutan "Set as system default"?</b>
Kolla min Print Screen:
<URL:http://www.dehlin.nu/rickard/owa/setasdefault.gif>