Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Windows Scripting Host kann angegebene Datei nicht finden!

simonkopp / 7 Antworten / Baumansicht Nickles

Hallo,


Wenn ich ein Script wie z.B. dieses hier


dim osh
set osh = wscript.CreateObject("wscript.Shell")      'Shell-Objekt definieren 
osh.run "start D:\Programme\Virtualdub\Virtualdub.exe",0     'VirtualDub starten 
wscript.sleep 2000          '2 Sekunden warten (damit Programm starten kann) 
osh.Sendkeys "%F{p}"          'Mit ALT+F+p Virtualdub Capturemodus aktivieren
wscript.sleep 10000          '10 Sekunde warten zum TV-initialisieren


starte, dann gibt es die Meldung kann angegebene Datei nicht finden.


Ich verwende WinXP Home mit SP1


Und möchte wissen warum ich das gleiche Script in WinXP Prof ohne SP1 ohne Fehlermeldung ausführen konnte.


Pfad und Dateiname stimmen 100%ig. Schon tausend mal probiert. Auch mit anderen Pfaden und anderen Dateien.


Ich verzweifle noch.


Simon


 

bei Antwort benachrichtigen
REPI simonkopp „Windows Scripting Host kann angegebene Datei nicht finden!“
Optionen

Hinweis, wenn Du osh.run("dateiname",1,true) startest, brauchst Du kein sleep, da der Script wartete, bis der run Befehl ausgeführt wurde !
Man kann z.B. mit ret = osh.run .... einen Rückgabewert erhalten,den man entsprechend auswerten kann !
Ausserdem solltest die Option 1 verwenden, da bei 0 das zu startende Programm versteckt gestartet wird !!



repi

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
REPI Nachtrag zu: „Hinweis, wenn Du osh.run dateiname ,1,true startest, brauchst Du kein sleep, da...“
Optionen

Nachtrag :

So sollte der run Befehl aussehen :
Const Pfad = "Der Pfad zur Datei"
Const Datei = "der Name der Datei"

Set osh = WScript.CreateObject("WScript.Shell")

Ret = osh.run (Pfad & Dateiname,1,true)
WScript.Quit()

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
simonkopp REPI „Nachtrag : So sollte der run Befehl aussehen : Const Pfad Der Pfad zur Datei...“
Optionen

Const Pfad = "D:\Programme\VirtualDub\"
Const Datei = "Virtualdub.exe"

Set osh = WScript.CreateObject("WScript.Shell")

Ret = osh.run (Pfad & Dateiname,1,true)
WScript.Quit()

Jetzt kommt die Meldung Unable to wait for process

Simon

bei Antwort benachrichtigen
simonkopp REPI „Nachtrag : So sollte der run Befehl aussehen : Const Pfad Der Pfad zur Datei...“
Optionen

Bedeutet WScrip.Quit() das das Programm zu Ende ist oder was?
Man braucht es doch nicht wirklich oder?

Aber es funzt

DANKE DANKE DANKE DANKE

So siehts jetzt aus:

Const Pfad = "D:\Programme\VirtualDub"
Const Datei = "\Virtualdub.exe"
Set osh = WScript.CreateObject("WScript.Shell")
Ret = osh.run (Pfad&Datei,1,false)

bei Antwort benachrichtigen
REPI simonkopp „Windows Scripting Host kann angegebene Datei nicht finden!“
Optionen

Dieser Fehler bedeted, der Script kann auf den gestarteten Prozess (wie auch immer), nicht warten !

Du solltest mal ein wenig experimentieren, mit den verschiedenen Aufrufparametern ! Setzte erstmals true auf false !
Da ich VD nicht habe, kann ich nicht testen. Mit Notepad.exe ging es aber !

Habe auch noch einen Denkfehler : true , wartet bis die zu startenden Anwendung sich wieder beendet, da Du aber mit ihr weiterarbeitest, wie gesagt Parameter false verwenden und dann mit sleep arbeiten !

Hast Du die Hilfe zu WSH und VBS ??

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
REPI simonkopp „Windows Scripting Host kann angegebene Datei nicht finden!“
Optionen

Nein, WScrip.Quit() ist nicht zwingend erforderlich !

Viel Spaß noch !!

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
simonkopp Nachtrag zu: „Windows Scripting Host kann angegebene Datei nicht finden!“
Optionen

Dank den wer ich haben.

Mein ganzes Programm soll nämlich mal mein Videorekorder werden.
Das Programm soll Virtual Dub öffnen Capture Modus starten.
Aufnahme datei als Datum-Zeit benennen. (Vorher und nicht hinterher wie beim Projekt 2001)
DivX für die Filmlänge einstellen. Und Aufnahme starten.
Das zweite Programm Soll zu einer bestimmten Zeit die Aufnahme beenden und Windows durch ein Makro herunterfahren.
Natürlich geht der Computer vorher an. Aber ohne die Starthilfe des Projetes 2001 hätte ichs nett geschafft.
Ich weiß auch schon wie ichs programmier.

Simon

bei Antwort benachrichtigen