Vbs funktioniert nicht aus dem Kontextmenü von Vista-Explorer

21/02/2009 - 20:24 von ce-Martin | Report spam
Hallo,
bei mir funktioniert ein vb-Skript nicht mehr, wenn aus aus dem Kontextmenü
des Vista (Datei)Explorers aufgerufen wird.
Das gleiche Skript funktioniert ohne Probleme, wenn es direkt per
Doppelklick aus dem Explorer aufgerufen wird.
Die Benutzerkontensteuerung habe ich schon ausgeschaltet, auch ein Aufruf
als Administrator funktioniert nicht. Alle möglichen Rechte habe ich
zugewiesen.

Das Eingabefenster poppt auf, nach Bestàtigung der Eingabe wird das Fenster
kommentarlos geschlossen, das/die Verzeichnisse werden aber nicht angelegt.
Es gibt leider keine Fehlermeldung. Das Script ist rd. 6 Jahre alt.
Ich bin leider nur Anwender und kann nur einfachste Anpassungen vornehmen,
daher hier meine Anfrage.
Wer kann mir helfen, bei Win-XP habe ich aus dem Kontextmenü keinerlei
Probleme, auf Grund des Rechnerwechsels bin ich auf Vista angewiesen.
Ein einfaches, àhnliche Script, das ein Datum-Unterordner "JJ-MM-TT"
erstellt funktioniert einwandfrei.
Wer kann mir helfen ?

Herzliche Grüße
M. Schrick


Kurz zum Script:
Man kann mehrere neue Ordner, auch beliebig Unterordner o. durchnummerierte
Ordner in einem Rutsch erstellen. Das Script stammt nicht von mir, ich habe
es vor etlichen Jahren aus einem Forum übernommen, der Urheber war
offensichtlich ein Franzose.

Hier der Quelltext:

Anfang-

'Create a new folder in current folder
'
dim fso
dim sNewFolder
dim lSuccess
dim lPos, rPos, mPos, x
dim arrSubFolders
dim sPath

On error resume next

set fso = CreateObject("Scripting.FileSystemObject")
sNewFolder = ".\" & InputBox( "Neuer Ordnername: z.B
Data;Programm;Save\Games;Backup{1,12} ")

arrSubFolders = Split( sNewFolder, ";")

For x = 0 TO UBound( arrSubFolders)

sPath =arrSubFolders(x)
lPos = InStr( sPath, "{")
rPos = InStr( sPath, "}")
mPos = InStr( sPath, ",")

If (lPos > 0) AND (rPos > 0) Then
lSuccess = BuildNumPath( Left( sPath, lPos-1), Mid( sPath, lPos+1,
mPos-lPos-1), Mid( sPath, mPos+1, rPos-mPos-1))
Else
lSuccess = BuildPath( fso, sPath)
End If
Next

'=Function BuildPath( fso, strPath)

On error resume next


BuildPath = False

If fso.FolderExists( strPath) Then
' folder exists -> stop
BuildPath = True
Else
' doesn't exist : build it
BuildPath = BuildPath( fso, fso.GetParentFolderName( strPath))
BuildPath = BuildPath( fso, fso.CreateFolder( strPath))
End If

End Function

'==Function BuildNumPath( strPath, nStart, nEnd)

Dim n

For n = Cint( nStart) TO CInt( nEnd) Step 1
fso.CreateFolder( strPath + Cstr( n))
Next
BuildNumPath = True
End Function

- Ende
 

Lesen sie die antworten

#1 Nils Kaczenski [MVP]
22/02/2009 - 12:22 | Warnen spam
Moin,

ce-Martin schrieb:
Das Eingabefenster poppt auf, nach Bestàtigung der Eingabe wird das Fenster
kommentarlos geschlossen, das/die Verzeichnisse werden aber nicht angelegt.
Es gibt leider keine Fehlermeldung.



naja, wie soll das Skript auch einen Fehler melden, wenn du die
Fehlerbehandlung ausschaltest?

On error resume next



Kommentiere die Zeile mal aus. Dann solltest du einen Fehler angezeigt
bekommen.


Schöne Grüße, Nils

Nils Kaczenski - MVP Windows Server
www.faq-o-matic.net
Antworten bitte nur in die Newsgroup!
PM: Vorname at Nachname .de
https://mvp.support.microsoft.com/p....Kaczenski

Ähnliche fragen