Jump to content
Sign in to follow this  
passt

Prozeduren in WSH?

Recommended Posts

Hi NG.

 

W2k3 Server + Win2k, WinXP Clients.

 

Da wir es endlich übers Herz gebracht haben, uns vom größten Teil unserer NT4 Rechner zu trennen, beginne ich mich jetzt ins Thema Anmeldescripts in VBS einzuarbeiten.

 

Wie kann ich innerhalb einer VBS Datei eine Procedur erstellen und auch aufrufen?

Folgender Code schlägt leider fehl:

' Ausführen des Scripts:
' CSCRIPT //X MEIN_SKRIPT.VBS 

Option Explicit
On Error Resume Next
Dim sRoot, sKey, sValname, sRegTyp as String

' Test
sRoot = "HKCU"
sKey = "\Software\123TEST321\"
sValname = "Personal"
sRegTyp = "REG_SZ"

SchreibeRegKey(sRoot, sKey, sValName, sRegType) 
' Hier wird beim Compilieren ein Fehler anzeigt
' Was auch logisch ist! Aber wie soll ich es stattdessen machen?


Sub SchreibeRegKey(Root, Key, Valname, RegTyp)
 Dim valx
 Dim WSHShell
 Set WSHShell = WScript.CreateObject("WScript.Shell")
 ' WSHShell.RegDelete(Root+key+valname)
 WSHShell.RegWrite(Root+key+valname) 
 valx = WshShell.ExpandEnvironmentStrings("\\fileserver\123users\%USERNAME%")
 WSHShell.RegWrite Root+Key+valname, valx, RegTyp
WScript.Quit
End Sub

Ich hoffe, ich bin hier nicht ganz falsch und mir kann jemand helfen.

 

Gruß

Peter

Share this post


Link to post

Welcher Fehler wird dir denn angezeigt?

 

Ich habe den groben Verdacht, das selbst der Aufruf deiner Sub aus einer Function oder einer anderen Sub passieren muss, da sonst der Interpreter / Compiler nicht weiß, wo das Ding anfängt und wo es endet.

Share this post


Link to post

Sorry, ich komme jetzt erst dazu mich zu melden.

 

Verwende ich c:\windows\system32\CSCRIPT.exe erhalte ich die nur bedingt aussagekräftige Aussage "blabla.vbs(8, 36) Kompilierungsfehler in Microsoft VBScript: Anweisungsende erwartet". Damit kann ich leider nix anfangen.

 

Kopiere ich den Code in VB Editor, der mit MS Office 2000 installiert wird, so erhalte ich beim Debuggen bereits in der zweiten Zeile:

On Error Resume Next

"Fehler beim Kompilieren: Außerhalb einer Prozedur ungültig"

 

Hm, jetzt bin so schlau wie vorher.

 

Irgendwelche Ideen?

 

Gruß

Peter

Share this post


Link to post

Ok, jetzt habe ich die richtige als Ursache der Kompilerfehlermeldung lokalisiert.

Dim sRoot, sKey, sValname, sRegTyp as String

Dies sorgt für den Fehler "Anweisungsende erwartet".

 

Warum nur?

Share this post


Link to post

"Fehler beim Kompilieren: Außerhalb einer Prozedur ungültig"

[/Quote]

 

Die Dimensionierung der Variablen solltest du mal lieber in eine Sub oder Function reinpacken.

 

Dann ungefähr so hier:


' Ausführen des Scripts:
' CSCRIPT //X MEIN_SKRIPT.VBS

Option Explicit
On Error Resume Next
Init

Sub Init()
Dim sRoot, sKey, sValname, sRegTyp as String

' Test
sRoot = "HKCU"
sKey = "\Software\123TEST321\"
sValname = "Personal"
sRegTyp = "REG_SZ"

SchreibeRegKey(sRoot, sKey, sValName, sRegType)
End Sub

Sub SchreibeRegKey(Root, Key, Valname, RegTyp)
Dim valx
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
' WSHShell.RegDelete(Root+key+valname)
WSHShell.RegWrite(Root+key+valname)
valx = WshShell.ExpandEnvironmentStrings("\\fileserver\123users\%USERNAME%")
WSHShell.RegWrite Root+Key+valname, valx, RegTyp
WScript.Quit
End Sub
[/Code]

Share this post


Link to post

So, jetzt komme ich Schritt für Schritt weiter.

Ich habe bei Borncity's WSH Bazar einen Anfänger-Kurs der Computerbild zu VBScript gefunden ;)

 

VBScript kennt nur den Variablentyp Variant und somit muss man das 'as String' komplett weglassen.

 

Der nächste Kompilierungsfehler lässt aber nicht auf sich warten. Ich darf die Prozedur nicht mit Klammern aufrufen :( Hmrpf, ist das ein getüftel!

Share this post


Link to post

@phoenixcp

Das sieht zwar eleganter aus, ändert aber nichts am neuen Kompilierungsfehler.

 

Warum müssen alle Programmiersprachen so unterschiedlich sein :(

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...