Vbs funktioniert nicht aus dem Kontextmenü von Vista-Explorer

20/02/2009 - 17:38 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.
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 Thorsten Albers
20/02/2009 - 19:00 | Warnen spam
ce-Martin <aaa> schrieb im Beitrag
...
bei mir funktioniert ein vb-Skript nicht mehr, wenn aus aus dem


Kontextmenü
des Vista (Datei)Explorers aufgerufen wird.



1. Diese Newsgroup beschàftigt sich mit Visual Basic und >nicht< mit Visual
Basic Script - beide unterscheiden sich nicht unerheblich. Für letzteres
gibt es eigene Newsgroups.
2. 'Funktioniert nicht' ist alles andere als eine hilfreiche
Fehlerbeschreibung, da es von 'mein Rechner làuft grün an' bis 'das E-Werk
brennt' alles heißen kann.

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.



Da wàre es recht geschickt, sich erst einmal hinzusetzen, den Quellquode
durchzugehen und zu verstehen. Dann würdest Du sehen, daß a) das auch recht
einfach selbst zu schreiben ist, und daß b) das Script nicht viel taugt, da
seine einzige Fehlerbehandlung aus einem lokalen 'On Error Resume Next'
besteht.

Thorsten Albers

albers (a) uni-freiburg.de

Ähnliche fragen