Toon posts:

[kix]Os bepalen

Pagina: 1
Acties:
  • 120 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik zou graag m.b.v. een kix script een onderscheiding willen maken tussen win95 en w2k wrksttn's.
Dit heb ik geprobeerd maar maar werkt niet:

if "%os%"=="windows_nt" goto winnt
end if

:winnt
(hier een mapping)

Hoe kan ik op de juiste manier testen met kix welk os er draait??

Verwijderd

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

Hierin staat een key die current version heet. Bij 2k is deze 5.0 bij nt4 is het 4.0 en bij 95/98/me/xp zijn het ook verschillende getallen. Als je dan een variabele laat vullen met de uitkomst van boverstaande regkey kan ja daarop mappings enzo laten maken.

[voorbeeld]
;
; exacte syntax weet ik niet precies uit m'n hoofd, check de manual effe.
;
$OS = (hoort nog readvalue voor geloof ik)HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
;
IF $OS = 5.0 $OS = Windows 2000
;
; of
;
IF $OS = 5.0 goto win2k
;
:win2k
net use x: \\servernaam\share
;
[/voorbeeld]

Kix heeft ook een variable die @DOS heet deze geeft meestel direct de OS versie aan.

[nog een voorbeeld]
;
; exacte syntax weet ik niet precies uit m'n hoofd, check de manual effe.
;
IF @DOS = 5.0 got win2k
;
win2k
net use x: \\servernaam\share
;
[/nog een voorbeeld]

Suuk6

Verwijderd

wat is kix :?:?

  • sverzijl
  • Registratie: Januari 2001
  • Laatst online: 12:50
(logon)scripttaal voor NT/2k/XP/win95/98 die 'enigszins' krachtiger is dan de standaard troep die MS meelevert. (overigens wel geschreven door iemand van MS, maar wordt niet officieel gesupport door MS)

http://www.kixtart.org/

  • Praetorian
  • Registratie: November 2001
  • Laatst online: 03-09 21:30
Ik ben toch al een hele tijd bezig met kix en had dit ook nodig, en kijk eens wat ik kreeg na een paar uurtjes vloeken *D :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
IF (@inwin = 1)
$NT_mode="yes"
ELSE
$NT_mode="no"
ENDIF

$os=""
$os_dos=@dos
$os_product=ReadValue("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions","ProductType")
$os_productSuite=ReadValue("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions","ProductSuite")
$os_service_pack=""
$os_subversion=ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion","SubVersionNumber")
SELECT
CASE ($NT_mode = "yes") AND ($os_product <> "WinNT") AND ($os_dos = "5.1") AND (Instr($os_productSuite,"Terminal Server") <> 0)
$os="XP_Terminal_Server"
CASE ($NT_mode = "yes") AND ($os_product <> "WinNT") AND ($os_dos = "5.1") ; - Windows XP Server
$os="XP_Server"
CASE ($NT_mode = "yes") AND ($os_product = "WinNT") AND ($os_dos = "5.1") AND ($os_productSuite = "personal") ; - Windows XP Home
$os="XP_Home"
CASE ($NT_mode = "yes") AND ($os_product = "WinNT") AND ($os_dos = "5.1") ; - Windows XP Professional
$os="XP_Professional"
CASE ($NT_mode = "yes") AND ($os_product <> "WinNT") AND ($os_dos = "5.0") AND (Instr($os_productSuite,"Terminal Server") <> 0)
$os="W2K_Terminal_Server"
CASE ($NT_mode = "yes") AND ($os_product <> "WinNT") AND ($os_dos = "5.0") ; - Windows 2000 -
$os="W2K_Server"
CASE ($NT_mode = "yes") AND ($os_product = "WinNT") AND ($os_dos = "5.0")
$os="W2K_Professional"
CASE ($NT_mode = "yes") AND ($os_product = "LANMANNT") ; - Windows NT -
$os="NT4_Domain_Controller"
CASE ($NT_mode = "yes") AND ($os_product = "ServerNT") AND (Instr($os_productSuite,"Terminal Server") <> 0)
$os="NT4_Terminal_Server"
CASE ($NT_mode = "yes") AND ($os_product = "ServerNT")
$os="NT4_Member_Server"
CASE ($NT_mode = "yes") AND ($os_product = "WinNT")
$os="NT4"
CASE ($NT_mode <> "yes") AND (@dos = "4.90")
$os="ME"
CASE ($NT_mode <> "yes") AND ($os_dos = "4.10") AND (INSTR(LCASE($os_subversion),"c") <> 0) ; - Windows 98 -
$os="W98c"
CASE ($NT_mode <> "yes") AND ($os_dos = "4.10") AND (INSTR(LCASE($os_subversion),"b") <> 0)
$os="W98b"
CASE ($NT_mode <> "yes") AND ($os_dos = "4.10") AND (INSTR(LCASE($os_subversion),"a") <> 0)
$os="W98a"
CASE ($NT_mode <> "yes") AND ($os_dos = "4.10")
$os="W98"
CASE ($NT_mode <> "yes") AND ($os_dos = "4.0") AND (INSTR(LCASE($os_subversion),"c") <> 0) ; - Windows 95 -
$os="W95c"
CASE ($NT_mode <> "yes") AND ($os_dos = "4.0") AND (INSTR(LCASE($os_subversion),"b") <> 0)
$os="W95b"
CASE ($NT_mode <> "yes") AND ($os_dos = "4.0") AND (INSTR(LCASE($os_subversion),"a") <> 0)
$os="W95a"
CASE ($NT_mode <> "yes") AND ($os_dos = "4.0")
$os="W95"
CASE 1
$os="???" ; - undetermined -
ENDSELECT
;
$os_service_pack=""
SELECT
CASE ($NT_mode = "yes") AND ($os_dos = "5.1") ; - Windows XP
$os_service_pack=ReadValue("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion","BuildLab")
IF (len($os_service_pack) <> 0)
$os_service_pack=LTRIM(RTRIM($os_service_pack))
$os=substr($os,1,3)+"_"+LTRIM(RTRIM($os_service_pack))
ENDIF
CASE ($NT_mode = "yes") AND ($os_dos <> "5.1") ; Windows NT4 + W2K
$os_service_pack=ReadValue("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion","CSDVersion")
IF (len($os_service_pack) <> 0)
$os_service_pack=LTRIM(RTRIM($os_service_pack))
IF (instr($os_service_pack,",") <> 0)
$os=substr($os,1,3)+"_"+substr($os_service_pack,instr($os_service_pack,",")-1,1)
ELSE
$os=substr($os,1,3)+"_"+substr($os_service_pack,len($os_service_pack),1)
ENDIF
ENDIF
CASE 1
; Windows 95, 98 + ME
ENDSELECT
;
$os_type=""
$os_dos=@dos
SELECT
CASE ($NT_mode = "yes") AND ($os_dos = "5.1") ; - Windows XP -
$os_type="XP"
CASE ($NT_mode = "yes") AND ($os_dos = "5.0") ; - Windows 2000 -
$os_type="W2K"
CASE ($NT_mode = "yes") ; - Windows NT -
$os_type="NT4"
CASE ($NT_mode <> "yes") AND ($os_dos = "4.90") ; - Windows ME -
$os_type="ME"
CASE ($NT_mode <> "yes") AND ($os_dos = "4.10") ; - Windows 98 -
$os_type="W98"
CASE ($NT_mode <> "yes") AND ($os_dos = "4.0") ; - Windows 95 -
$os_type="W95"
CASE 1
$os_type="???" ; - undetermined -
ENDSELECT
$os_type=LTRIM(RTRIM(substr($os_type+" ",1,3)))
;
IF ($NT_mode = "yes")
? "$$os "+$os ; <--- $os_type + service pack code
? "$$os_type "+$os_type
? "$$os_service_pack "+$os_service_pack
ELSE
? "$$os "+$os ; <--- $os_type + service pack code
? "$$os_type "+$os_type
ENDIF

Hij is nogal uitgebreid, je kan zo 1/4 weggooien voor bv het service pack gebeuren :)

Als je een beetje ervarind hebt kun je hier wel wat van brouwen.

Edit:

Ik verkr8 wel gelijk weer de lay-out zie ik >:)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

staat in je manual

voor uitleg zie de post van Koffie in SeM: [topic=523457]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.