VBS Problem mit end/end if

Hey,

kann mir einer bitte sagen was ich falsch mache?
- Ohne "end" kommt ne Fehlermeldung end fehlt...
- dann schreib ich end ans ende...
- dann kommt ne Fehlermeldung If fehlt...
- dann schreib ich if hinter end...
- dann kommt wieder die Fehlermeldung das end fehlt!!! X(

Wieso?!

Code:
Set shell = WScript.CreateObject("WScript.Shell")
answer=MsgBox("Notepad starten?", vbYesNoCancel,"Texte schreiben")

if Response = vbYes then
        set ws = CreateObject("Wscript.shell")
    ws.run "notepad"
    

if Response = vbNO then
    msgbox("Notepad wird nicht gestartet")

if Response = vbCancel then
    msgbox("Du hast die Aktion >Notepad starten< abgebrochen")
end if

Danke schonmal
 
Du musst für jedes if ein end if machen ;)
Wenn ich das richtig verstehe, wäre zusätzlich aber auch noch else für dich interessant

Code:
If Bedingung Then
    'Anweisungen1
[ElseIf Bedingung Then
    'Anweisungen2]
[Else
    'Anweisungen3]
End If

Man beachte, dass else und elseif Erweiterungen des if-Blockes sind. Das end if kommt dann nur am Ende des if-Blockes.
 
Wenn ich denn code einfach mal mit Response beibehalte und für jedes if ein end if ensetzte startet zwar die msgbox aber wenn ich dann auf ja, nein oder abbrechen drücke Passiert - GARNIX.

Code:
Set shell = WScript.CreateObject("WScript.Shell")
answer=MsgBox("Notepad starten?", vbYesNoCancel,"Texte schreiben")

if Response = vbYes then
        set ws = CreateObject("Wscript.shell")
    ws.run "notepad"
    End If
if Response = vbNo then
    msgbox("Notepad wird nicht gestartet")
    End If
if Response = vbCancel then
    msgbox("Du hast die Aktion >Notepad starten< abgebrochen")
    End If

Was überseh ich jetzt?
 
Was Set shell = WScript.CreateObject("WScript.Shell") macht sollte ich vllt nochmal rausfinden:P
Ich hab jetzt Response mit answer ausgetauscht...und funzt.
Dim ws fehlt dann wohl nicht...aber auch hier finde ich nochmal raus wofür man dies brauch ;)

Danke
 
Nur weil es ohne das Dim geht, heißt es nicht, dass es nicht fehlt ;)

Ich habe wegen dem Dim aber mal schnell nachgesehen. Das ist dafür da, um Variablen zu deklarieren. VBScript kann aber scheinbar auf die Deklaration verzichten, daher funktioniert es dann auch ohne.
Ich würde dir aber ans Herz legen, dir die Deklaration anzugewöhnen, denn in anderen Sprachen ist das meist notwendig und so sparst du dir zu viel Umgewöhnung
 
VBScript kann aber scheinbar auf die Deklaration verzichten, daher funktioniert es dann auch ohne.

Für diesen Fall gibt es in VB (und wahrscheinlich auch in VBS) das "option explicit"-Statement, welches du einfach am Anfang einfügst.

Der "Wscript.shell"-Schnipsel gibt afaik Zugriff auf den Namespace und konnektiert dich zur Windowsumgebung bzw. zum cmd und erlaubt dir die Ausführung von "notepad". Sonst müsstest du afaik C:\WINDOWS\notepad.exe ausführen (wobei der "WINDOWS"-Ordner auch anders heissen kann).

lG

Brabax
 
Zurück
Oben