hattori-hanzo
Goto Top

Hilfe Bei einem vbs Script

Hey Leute
Könnt ihr mir bitte sagen was daran falsch ist?
beschäftige mich erst seit kurzem mit vbs scripts.

kennwort = Inputbox("Gib dein Passwort ein!")  
kennwort = Ucase(kennwort)
if kennwort = "1234" then   
msgbox " Passwort korrekt",0,"In Ordnung"        
Set objShell = CreateObject("WScript.Shell")  
objShell.Run "cmd"  
WsCript.Sleep 200
WshShell.SendKeys "e"  
WsCript.Sleep 200
WshShell.SendKeys "x"  
WsCript.Sleep 200
WshShell.SendKeys "i"  
WsCript.sleep 400
WshShell.sendKeys "t"  
WsCript.sleep 1800
WshShell.SendKeys "{Enter}"  
WshShell.SendKeys "{Enter}"  
WshShell.SendKeys "{Enter}"  
WshShell.SendKeys "{Enter}"  
WshShell.SendKeys "{Enter}"  
WshShell.SendKeys "{Enter}"  
wsCript.Sleep 2500
else  
msgbox "Passwort falsch",0+16,"Hau ab"  
end if

Content-Key: 334816

Url: https://administrator.de/contentid/334816

Ausgedruckt am: 28.03.2024 um 22:03 Uhr

Mitglied: emeriks
emeriks 11.04.2017 um 10:59:56 Uhr
Goto Top
Hi,
was soll den falsch sein? Zum Mond fliegen kannst Du damit nicht. Willst Du aber bestimmt auch nicht.

  1. Was sillst Du erreichen?
  2. Was hast Du warum wie gemacht?
  3. Was genau geht nicht? Was genau ist die Frage? (Fehlermeldung)


E.
Mitglied: Hattori-Hanzo
Hattori-Hanzo 11.04.2017 um 11:16:19 Uhr
Goto Top
Ich will eigentlich nur das bei richtiger Kennworteingabe ein cmd Fenster aufgeht
Exit in einzelnen Buchstaben geschrieben wird und dann das fenster von "alleine" wieder zu geht.


Die Fehlermeldung ist:

Zeile: 7
Zeichen: 1
Fehler: Objekt erforderlich: `WshShell`
Code: 800A01A8
Quelle: Laufzeit in Microsoft VBScript

cmd geht ja auf. und dann kommt die fehlermeldung
Mitglied: emeriks
Lösung emeriks 11.04.2017 um 11:18:27 Uhr
Goto Top
Fehler beim Zusammenkopieren

Set objShell = CreateObject("WScript.Shell")
WshShell.SendKeys "e"

Fällt Dir da was auf?
Mitglied: Hattori-Hanzo
Hattori-Hanzo 11.04.2017 um 11:29:25 Uhr
Goto Top
also soll ich jetzt anstatt WshShell überall objShell nehmen?
Mitglied: emeriks
emeriks 11.04.2017 um 11:32:51 Uhr
Goto Top
Ein Klotz ist blau. 9 sind weiß. Damit alle einheitlich eine Farbe haben, kann man die 9 Klötze jetzt blau anmalen. Man kann aber auch ... ?
Mitglied: Hattori-Hanzo
Hattori-Hanzo 11.04.2017 um 11:35:56 Uhr
Goto Top
Den blauen weiß anmalen. ☻
Mitglied: Hattori-Hanzo
Hattori-Hanzo 11.04.2017 um 12:11:20 Uhr
Goto Top
Ich danke dir für deine Antwort. Kannst du mir auch sagen wie ich den buttons der msgBox verschiedene Aufgaben zuteilen kann?
Und geht es sogar die buttons um zu benennen?
Mitglied: emeriks
emeriks 11.04.2017 um 12:18:23 Uhr
Goto Top
Geht in VBscript nicht.

Schau mal hier
Mitglied: Hattori-Hanzo
Hattori-Hanzo 11.04.2017 um 12:24:25 Uhr
Goto Top
Den hab ich jetzt nicht verstanden.
Ja klar zu Google bin ich gekommen. Aber die weiterleitung ist ja geil.....
Mitglied: Hattori-Hanzo
Hattori-Hanzo 12.04.2017 um 09:49:55 Uhr
Goto Top
Hey emeriks
Hab mal wieder eine Frage zu diesem Script.
kennwort = Inputbox("Gib dein Passwort ein!")  
kennwort = Ucase(kennwort)
if kennwort = "1234" then   
msgbox " Passwort korrekt",512,"In Ordnung"        
Set objShell = CreateObject("WScript.Shell")  
Dim ObjShell
Set ObjShell = CreateObject("WScript.Shell")  
ObJShell.Popup "5","1",""  
ObJShell.Popup "4","1",""  
ObJShell.Popup "3","1",""  
ObJShell.Popup "2","1",""  
ObJShell.Popup "1","1",""  
objShell.Run "cmd"  
WsCript.Sleep 1000
objShell.SendKeys "cls"   
WsCript.Sleep 0
objshell.sendkeys "{Enter}"  
WsCript.Sleep 50
objShell.SendKeys "@"  
WsCript.Sleep 1000
objShell.SendKeys "e"  
WsCript.Sleep 800
objShell.SendKeys "c"  
WsCript.Sleep 800
objShell.SendKeys "h"  
WsCript.Sleep 800
objShell.SendKeys "o"  
WsCript.Sleep 800
objShell.SendKeys " "  
WsCript.Sleep 800
objShell.SendKeys "o"  
WsCript.Sleep 800
objShell.SendKeys "f"  
wscript.sleep 800
objShell.SendKeys "f"  
WsCript.Sleep 800
objShell.SendKeys "{Enter}"  
WsCript.Sleep 1000
objShell.SendKeys "ipconfig /all > IPconfigDaten.txt"  
WsCript.Sleep 50
objshell.sendkeys "{Enter}"  
wscript.sleep 0
objShell.SendKeys "cls"   
WsCript.Sleep 0
objshell.sendkeys "{Enter}"  
wscript.sleep 50
objShell.SendKeys "e"  
WsCript.Sleep 800
objShell.SendKeys "x"  
WsCript.Sleep 800
objShell.SendKeys "i"  
WsCript.sleep 800
objShell.sendKeys "t"  
WsCript.sleep 1800
objShell.SendKeys "{Enter}"  
objShell.SendKeys "{Enter}"  
objShell.SendKeys "{Enter}"  
objShell.SendKeys "{Enter}"  
objShell.SendKeys "{Enter}"  
objShell.SendKeys "{Enter}"  
wsCript.Sleep 2500
else  
msgbox "Passwort falsch",0+16,"Hau ab"  
end if

Der Skript funktioniert soweit.
Der Sinn dahinter ist:
1. Fenster auf Passwort rein Fenster sagt ok oder nicht ok.
2. Coundown von 5 zählt runter
3. cmd geht auf
4. Alles im fenster wird gelöscht. (microsoft corp.......)
5. @echo off befehl + {Enter} (von alleine. Wie alle befehle in cmd)
6. Die Daten aus ipconfig im Textdokumen auf dem Desktop erstellen.
7. Wieder wird alles gelösch (sinnlos ich weis, weil das fenster sowieo zu geht)
8. cmd schließt.

Meine Frage ist jetzt:
Wie bekomme ich es hin das die datei die auf dem desktop abgelegt wird nicht auf dem Desktop landet sondern auf einem USB Stick?

Mit Freundlichen Grüßen
Hattori-Hanzo
Mitglied: emeriks
emeriks 12.04.2017 aktualisiert um 10:35:03 Uhr
Goto Top
Meine Frage ist jetzt:
Wie bekomme ich es hin das die datei die auf dem desktop abgelegt wird nicht auf dem Desktop landet sondern auf einem USB Stick?
Indem Du erstmal das Einmaleins lernst?

Aufgabe an Dich: In welcher Zeile wird denn diese Datei erstellt? Welcher Befehl macht das? Und wie funktioniert das?
Mitglied: Hattori-Hanzo
Hattori-Hanzo 12.04.2017 um 11:46:14 Uhr
Goto Top
In Zeile 39 (objShell.SendKeys "ipconfig /all > IPconfigDaten.txt" )
"ipconfig /all ist der befehl und >IPconfigDaten.txt bezieht sich auf die textdatei.
aber woher weiß der script das er die datei auf dem desktop ablegen soll. ???
Mitglied: emeriks
emeriks 12.04.2017 um 11:54:37 Uhr
Goto Top
aber woher weiß der script das er die datei auf dem desktop ablegen soll. ???
Ich vermute mal, weil das Script aktuell dort liegt und von dort gestartet wird?
Und wenn die Textdatei jetzt auf einem anderen Laufwerk abgelegt werden soll, wie müsste der Pfad zur Textdatei dann lauten?
Mitglied: Hattori-Hanzo
Hattori-Hanzo 12.04.2017 um 12:50:09 Uhr
Goto Top
Meine Frage wäre erstmal :
Wo muß der Pfad hin und mit welchem Befehl?
Ich will ja den Script vom Stick starten und die Textdatei soll auf dem stick dann in einem ordner abgelegt werden.
Kann ich nicht im cmd ein Befehl einbauen der die Datei vom Desktop auf den Stick verschiebt? Das wäre dann sicher der komplizierte Weg.
Zur aufgabe:
Der Pfad wäre : anstatt C:\ auf E:\[Ordnename]
Mitglied: emeriks
emeriks 12.04.2017 um 13:56:38 Uhr
Goto Top
Also erstmal: "C:\" ist nicht "der Desktop"
Wo landet diese Datei nun bei Dir? C:\ oder Desktop?
Na wenn der Pfad des Ordners E:\Ordnername ist, wie lautet dann der Pfad einer Datei in diesem Ordner, z.B. von "IPconfigDaten.txt"?
Mitglied: Hattori-Hanzo
Hattori-Hanzo 12.04.2017 um 14:10:21 Uhr
Goto Top
Die Datei landete auf dem Desktop
Also C:\Benutzer\[Benutzername]\Desktop

Die Datei soll dann da landen E:\Ordner\IPconfigDaten.txt

Aber du hast recht. Weil die Datei auf dem Desktop gestartet wird wird die txt Datei auch da abgelegt.
Wenn ich den Script vom Stick starte geht es garnicht.
Mitglied: emeriks
emeriks 12.04.2017 aktualisiert um 14:18:59 Uhr
Goto Top
Mensch, muss man Dir alles vorsagen?
Du hast den gewünschten, vollständigen Pfad der Datei: E:\Ordner\IPconfigDaten.txt
Warum - zum Geier - benutzt Du diesen nicht im Script?
Wenn nur "IPconfigDaten.txt" nicht zum Ziel führt, wie muss er dann wohl statt dessen lauten?
Mitglied: Hattori-Hanzo
Hattori-Hanzo 13.04.2017 um 09:00:48 Uhr
Goto Top
In meinem falle erstellt er die datei garnicht wenn ich den
script vom stick bzw. in meinem falle vom handy starte.
Die datei wird einfach nicht erstellt.
Mitglied: emeriks
emeriks 13.04.2017 um 09:23:59 Uhr
Goto Top
OK.
ändere in
objShell.SendKeys "ipconfig /all > E:\Ordner\IPconfigDaten.txt"   
Das setzt natürlich voraus, dass das USB-Laufwerk als E: eingebunden ist und das dort dieser Ordner "Ordner" existiert.