[VB] CountryCode

Pagina: 1
Acties:

  • FragNeck
  • Registratie: Augustus 2000
  • Laatst online: 21-05 16:15
Ik heb een vraagje, het is de bedoeling dat ik een script laat kiezen tussen 2 setups ivm 2 windows versies. (NL en UK)

Ik heb nu dit, maar het werkt niet...
Weet iemand misschien hoe het wel werkt?

code:
1
2
3
4
5
6
7
8
9
10
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objItem in colItems

   If objItem.CountryCode = 1043 Then gSetupProgr = "q329623_WXP_SP2_x86_NLD.exe"
   If objItem.CountryCode = 1033 Then gSetupProgr = "q329623_WXP_SP2_x86_ENU.exe"


End If

[ Voor 10% gewijzigd door FragNeck op 21-07-2004 14:47 ]

http://eu.battle.net/d3/en/profile/Paus-2178/hero/2313958


Verwijderd

Je sluit een For Each af met een End If.

Dat zou me een reden kunnen lijken :p


Edit: Overigens, als ik 't ding bij mij test, dan krijg ik als CountryCode attribuut de waarde "1" (als ik 'm ff debug-echo tussendoor).

Dus het script zoals het er nu staat modulo de syntaxfout werkt niet.

[ Voor 52% gewijzigd door Verwijderd op 21-07-2004 14:55 ]


Verwijderd

Verwijderd schreef op 21 juli 2004 @ 14:54:
Je sluit een For Each af met een End If.

Dat zou me een reden kunnen lijken :p
This guy is wright. er begint nergens een "if"

  • FragNeck
  • Registratie: Augustus 2000
  • Laatst online: 21-05 16:15
Oke, daar moet dan een Next als ik het goed begrijp.

maar als ik hier kijk, http://www.microsoft.com/...ter/network/scrnet39.mspx

Dan zie ik daar een "countrycode" staan, die kan ik toch als module gebruiken?
Of moet ik dan de Win32_NetworkLoginProfile WMI gebruiken?

Oke, ik heb nu dit:

code:
1
2
3
4
5
6
7
8
9
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkLoginProfile")
For Each objItem in colItems

   If objItem.CountryCode = 1043 Then gSetupProgr = "q329623_WXP_SP2_x86_NLD.exe"
   If objItem.CountryCode = 1033 Then gSetupProgr = "q329623_WXP_SP2_x86_ENU.exe"

Next


zie ik iets over het hoofd?

[ Voor 45% gewijzigd door FragNeck op 21-07-2004 15:06 ]

http://eu.battle.net/d3/en/profile/Paus-2178/hero/2313958


Verwijderd

zoals je daar ziet, begint de "if" pas na de "next"

Next
Function WMIDateStringToDate(dtmWMIDate)
If Not IsNull(dtmWMIDate) Then
WMIDateStringToDate = CDate(Mid(dtmWMIDate, 5, 2) & "/" & _
Mid(dtmWMIDate, 7, 2) & "/" & Left(dtmWMIDate, 4) _
& " " & Mid (dtmWMIDate, 9, 2) & ":" & _
Mid(dtmWMIDate, 11, 2) & ":" & Mid(dtmWMIDate, _
13, 2))
End If
End Function

en jij hebt dit stukje waar de "if begint er niet in staan.

Verwijderd

Ik heb even gezocht; CountryCode van Win32_OperatingSystem retourneert wèl de goede waarde, maar niet op dezelfde schaal als jij de getallen zoekt. De 1 betekent U.S., 49 betekent Germany, en ik heb geen idee wat Nederland is.

Als de locale getallen zoekt (en daar vergelijk je mee in jouw voorbeeld, dus ik neem aan van wel), dan kun je die krijgen uit de functie GetLocale.

Als volgt:
code:
1
2
3
4
5
6
7
8
9
nLocale = GetLocale
gSetupProgr = ""
If nLocale = 1043 Then gSetupProgr = "q329623_WXP_SP2_x86_NLD.exe"
If nLocale = 1033 Then gSetupProgr = "q329623_WXP_SP2_x86_ENU.exe"
If gSetupProgr = "" Then
   MsgBox "Cannot install, unrecognized locale!", vbCritical, "Error"
   WScript.Quit 1
End If
CreateObject("WScript.Shell").Run gSetupProgr

  • FragNeck
  • Registratie: Augustus 2000
  • Laatst online: 21-05 16:15
Thx :)

Dit werkt, echter wel met Dim nLocale ervoor :P

http://eu.battle.net/d3/en/profile/Paus-2178/hero/2313958


Verwijderd

Mja, ik had 't ook in VBScript geschreven (getuige de WScript.Quit).

Verwijderd

Verwijderd schreef op 21 juli 2004 @ 15:12:
Ik heb even gezocht; CountryCode van Win32_OperatingSystem retourneert wèl de goede waarde, maar niet op dezelfde schaal als jij de getallen zoekt. De 1 betekent U.S., 49 betekent Germany, en ik heb geen idee wat Nederland is.
31 misschien :?
Pagina: 1